###前提・実現したいこと
現在, オライリー・ジャパンの”ゼロから作るDeep Learning”を使って機械学習を勉強しています。
3.4.3の”実装のまとめ”を今やっています。
テキストに載っていたとおりの, 下記のコードを実行すると(文字・数値は多少変えています)下にあるようなエラーが出るのですが, これはコード自体が間違っているのでしょうか?
また, どうしてエラーになってしまうのか教えていただけるとうれしいです。
###該当のソースコード
python
1def initialnetwork(): 2 network = {} 3 network['W1'] = np.array([[0.3, 0.8, 0.6], [0.5, 0.9, 0.1]]) 4 network['W2'] = np.array([[0.7, 0.2], [0.4, 0.8], [0.3, 0.5]]) 5 network['W3'] = np.array([[0.7, 0.5], [0.3, 0.9]]) 6 network['B1'] = np.array([0.1, 0.2, 0.3]) 7 network['B2'] = np.array([0.1, 0.2]) 8 network['B3'] = np.array([0.1, 0.2]) 9 10 return network 11 12def forward(network, x): 13 W1, W2, W3 = initialnetwork['W1'], initialnetwork['W2'], initialnetwork['W3'] 14 B1, B2, B3 = initialnetwork['B1'], initialnetwork['B3'], initialnetwork['B3'] 15 16 a = np.dot(X, W1) + B1 17 A = sigmoid(a) 18 b = np.dot(A, W2) + B2 19 B = sigmoid(b) 20 y = np.dot(B, W3) + B3 21 Y = identityfunction(y) 22 return Y 23 24 25network = initialnetwork 26X = np.array ([0.3, 0.4]) 27Y = forward(network, X) 28print (Y)
###発生している問題・エラーメッセージ
Traceback (most recent call last): File "C:〇〇", line 13, in <module> W1, W2, W3 = initialnetwork['W1'], initialnetwork['W2'], initialnetwork['W3'] TypeError: 'function' object is not subscriptable
###補足
initialnetworkを関数化せず, ただの辞書型として定義して実行するのは試してみました。
その場合はきちんと実行されました。
initialnetwork = {} initialnetwork['W1'] = np.array([[0.3, 0.8, 0.6], [0.5, 0.9, 0.1]]) initialnetwork['W2'] = np.array([[0.7, 0.2], [0.4, 0.8], [0.3, 0.5]]) initialnetwork['W3'] = np.array([[0.7, 0.5], [0.3, 0.9]]) initialnetwork['B1'] = np.array([0.1, 0.2, 0.3]) initialnetwork['B2'] = np.array([0.1, 0.2]) initialnetwork['B3'] = np.array([0.1, 0.2]) def forward(initialnetwork,X): W1, W2, W3 = initialnetwork['W1'], initialnetwork['W2'], initialnetwork['W3'] B1, B2, B3 = initialnetwork['B1'], initialnetwork['B3'], initialnetwork['B3'] a = np.dot(X, W1) + B1 A = sigmoid(a) b = np.dot(A, W2) + B2 B = sigmoid(b) y = np.dot(B, W3) + B3 Y = identityfunction(y) return Y X = np.array ([0.3, 0.4]) Y = forward(initialnetwork, X) print (Y)
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/05/31 01:49