ご覧いただきありがとうございます。
助けてくださると大変嬉しいです。
サンプルコードをコピペしているがエラーをはく
ゼロから作るdeeplearningの第3章にて、pklファイルを読み込むために絶対パスで指定したのですが、
その後のpredict関数でエラーをはくようになりました。
# coding: utf-8 import os import pickle import sys sys.path.append(os.pardir) # パスに親ディレクトリ追加 import numpy as np from python.dataset.mnist import load_mnist from python.common.functions import sigmoid, softmax from PIL import Image print(sys.version) #ニューラルネット def get_data(): (x_train, t_train), (x_test, t_test) = \ load_mnist(normalize=True, flatten=True, one_hot_label=False) return x_test, t_test def init_network(): with open('/Users/hinak/Desktop/python/cp3/sample_weight.pkl','rb') as f: network = pickle.load(f) def predict(network, x): W1, W2, W3 = network['W1'], network['W2'], network['W3'] b1, b2, b3 = network['b1'], network['b2'], network['b3'] a1 = np.dot(x, W1) + b1 z1 = sigmoid(a1) a2 = np.dot(z1, W2) + b2 z2 = sigmoid(a2) a3 = np.dot(z2, W3) + b3 y = softmax(a3) return y x, t = get_data() network = init_network() accuracy_cnt = 0 for i in range(len(x)): y = predict(network, x[i]) p= np.argmax(y) # 最も確率の高い要素のインデックスを取得 if p == t[i]: accuracy_cnt += 1 print("Accuracy:" + str(float(accuracy_cnt) / len(x)))
エラーメッセージ
Traceback (most recent call last): File "/Users/hinak/Desktop/python/cp3/doukana.py", line 41, in <module> y = predict(network, x[i]) File "/Users/hinak/Desktop/python/cp3/doukana.py", line 24, in predict W1, W2, W3 = network['W1'], network['W2'], network['W3'] TypeError: 'NoneType' object is not subscriptable
私としましては、やはりファイルの読み込みがうまく行ってないのではと考えています。
そのほかにも、sample_weight.pklファイルをatomで開くと文字化けしていることが原因ではないかと思います。
ちなみに、上記のpyファイルとsample_weight.pklファイルは同じディレクトリにいます。
どなたかご教授願えませんでしょうか。
どうぞよろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。