写真のような感じで、どう見ても同階層にファイルが存在するのに、
FileNotFoundError: [Errno 2] No such file or directory: 'sample_weight.pkl'
のエラーが出ます。
ソースコード
python
1# coding: utf-8 2import numpy as np 3import pickle 4from mnist import load_mnist 5 6def sigmoid(x): 7 return 1 / (1 + np.exp(-x)) 8 9def softmax(x): 10 if x.ndim == 2: 11 x = x.T 12 x = x - np.max(x, axis=0) 13 y = np.exp(x) / np.sum(np.exp(x), axis=0) 14 return y.T 15 16 x = x - np.max(x) # オーバーフロー対策 17 return np.exp(x) / np.sum(np.exp(x)) 18 19 20def get_data(): 21 (x_train, t_train), (x_test, t_test) = load_mnist(normalize=True, flatten=True, one_hot_label=False) 22 return x_test, t_test 23 24 25def init_network(): 26 with open("sample_weight.pkl", 'rb') as f:#問題の箇所 27 network = pickle.load(f) 28 return network 29 30 31def predict(network, x): 32 W1, W2, W3 = network['W1'], network['W2'], network['W3'] 33 b1, b2, b3 = network['b1'], network['b2'], network['b3'] 34 35 a1 = np.dot(x, W1) + b1 36 z1 = sigmoid(a1) 37 a2 = np.dot(z1, W2) + b2 38 z2 = sigmoid(a2) 39 a3 = np.dot(z2, W3) + b3 40 y = softmax(a3) 41 42 return y 43 44 45x, t = get_data() 46network = init_network() 47accuracy_cnt = 0 48for i in range(len(x)): 49 y = predict(network, x[i]) 50 p= np.argmax(y) # 最も確率の高い要素のインデックスを取得 51 if p == t[i]: 52 accuracy_cnt += 1 53 54print("Accuracy:" + str(float(accuracy_cnt) / len(x)))
(ゼロから始めるディープラーニング より)
回答4件
あなたの回答
tips
プレビュー
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
2018/09/26 12:01
2018/09/26 12:10