前提・実現したいこと
kerasを用いたニューラルネットワークで、学習の結果を逐次histを使って記録していきたいのですが、name errorが出てきてしまいます。
発生している問題・エラーメッセージ
File "/home/.../hoge.py", line 65, in <module> hist_acc_t = hist_acc_t + hist.history['acc'] NameError: name 'hist' is not defined
該当のソースコード
python
1data = pd.read_csv('SPSS.csv', sep=",", header=0) 2 3train_size = 0.7 4N_validation = 0.1 5 6X = DataFrame(data.drop("hoge_history", axis=1)) 7 8Y = DataFrame(data["hoge_history"]) 9 10X_train, X_test, Y_train, Y_test = \ 11 train_test_split(X, Y, train_size=train_size) 12X_train, X_validation, Y_train, Y_validation = \ 13 train_test_split(X_train, Y_train, train_size=N_validation) 14 15#モデル設定 16n_in = 357 17n_hidden = 50 18n_out = 1 19 20model = Sequential() 21 22model.add(Dense(n_hidden, input_dim=n_in)) 23model.add(Activation('sigmoid')) 24 25model.add(Dense(n_out)) 26model.add(Activation('sigmoid')) 27 28model.compile(loss='binary_crossentropy', 29 optimizer=SGD(lr=0.1), 30 metrics=['accuracy']) 31 32epochs = 200 33batch_size = 4 34 35hist_acc_t = hist_acc_v = hist_loss_t = hist_loss_v = [] 36max_epochs = 1000 # 1000 エポックまで学習させる 37ep_learn_interval = 50 # 50 エポック毎にグラフ表示・ファイル書出 38 39def learn_body(): 40 global hist_acc_t, hist_acc_v, hist_loss_t, hist_loss_v, hist, ep_num 41 for i in range(max_epochs): 42 ep_num = i + 1 # type: int 43 if ep_num % ep_learn_interval == 0: 44 hist = model.fit(X_train, Y_train, batch_size=batch_size, 45 epochs=ep_num - last_write_epoch, 46 validation_data=(X_validation, Y_validation), verbose=2) 47 48hist_acc_t = hist_acc_t + hist.history['acc'] 49hist_acc_v = hist_acc_v + hist.history['val_acc'] 50hist_loss_t = hist_loss_t + hist.history['loss'] 51hist_loss_v = hist_loss_v + hist.history['val_loss'] 52last_write_epoch = ep_num 53 54#学習の進み具合を可視化 55 56acc = hist.history['acc'] 57loss = hist.history['loss'] 58 59index = ['acc_t', 'acc_v', 'loss_t', 'loss_v'] 60l = [hist_acc_t, hist_acc_v, hist_loss_t, hist_loss_v] 61 62with open('honyahonya.csv', 'w') as f: 63 w = csv.writer(f) 64 for i, row in zip(index, l): 65 w.writerow([i] + row) 66 67 68def plot_acc(): 69 70def plot_loss(): 71 72plot_acc() 73plot_loss()
試したこと
histをグローバル変数に設定してみましたが、同じエラーが出現しました。
補足情報(FW/ツールのバージョンなど)
この他にも間違った記述がありましたら、お教えいただきたいです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。