🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Keras

Kerasは、TheanoやTensorFlow/CNTK対応のラッパーライブラリです。DeepLearningの数学的部分を短いコードでネットワークとして表現することが可能。DeepLearningの最新手法を迅速に試すことができます。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

1559閲覧

Name errorが解決できません

退会済みユーザー

退会済みユーザー

総合スコア0

Keras

Kerasは、TheanoやTensorFlow/CNTK対応のラッパーライブラリです。DeepLearningの数学的部分を短いコードでネットワークとして表現することが可能。DeepLearningの最新手法を迅速に試すことができます。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2019/09/30 06:00

編集2019/09/30 08:09

前提・実現したいこと

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/ツールのバージョンなど)

この他にも間違った記述がありましたら、お教えいただきたいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

learn_body() が実行されていなくないでしょうか?

投稿2019/09/30 10:23

qax

総合スコア622

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問