質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.35%
Jupyter

Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

Keras

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

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

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

Q&A

1回答

2540閲覧

KeyError: 'val_acc'について

SSDD

総合スコア11

Jupyter

Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

Keras

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

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

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

0グッド

1クリップ

投稿2021/12/22 04:34

編集2021/12/22 04:44

前提・実現したいこと

ディープラーニングで音声分類
https://qiita.com/cvusk/items/61cdbce80785eaf28349#%E6%84%9F%E6%83%B3
を試しています。

githubはこちらになります。
https://github.com/shibuiwilliam/audio_classification_keras/blob/master/esc50_classification.ipynb

学習をさせていましたが、

(7500, 128, 1723, 1) (7500, 50) (500, 128, 1723, 1) (500, 50) Epoch 1/1000 468/468 [==============================] - 10955s 23s/step - loss: 3.7678 - accuracy: 0.0459 - val_loss: 3.5413 - val_accuracy: 0.0900

と、
468で終わったと思ったときに、

発生している問題・エラーメッセージ

--------------------------------------------------------------------------- KeyError Traceback (most recent call last) /tmp/ipykernel_5255/932675263.py in <module> 13 verbose=1, 14 shuffle=True, ---> 15 callbacks=[es_cb, cp_cb]) ~/anaconda3/envs/noise_supp/lib/python3.7/site-packages/keras/legacy/interfaces.py in wrapper(*args, **kwargs) 89 warnings.warn('Update your `' + object_name + '` call to the ' + 90 'Keras 2 API: ' + signature, stacklevel=2) ---> 91 return func(*args, **kwargs) 92 wrapper._original_function = func 93 return wrapper ~/anaconda3/envs/noise_supp/lib/python3.7/site-packages/keras/engine/training.py in fit_generator(self, generator, steps_per_epoch, epochs, verbose, callbacks, validation_data, validation_steps, validation_freq, class_weight, max_queue_size, workers, use_multiprocessing, shuffle, initial_epoch) 1730 use_multiprocessing=use_multiprocessing, 1731 shuffle=shuffle, -> 1732 initial_epoch=initial_epoch) 1733 1734 @interfaces.legacy_generator_methods_support ~/anaconda3/envs/noise_supp/lib/python3.7/site-packages/keras/engine/training_generator.py in fit_generator(model, generator, steps_per_epoch, epochs, verbose, callbacks, validation_data, validation_steps, validation_freq, class_weight, max_queue_size, workers, use_multiprocessing, shuffle, initial_epoch) 258 break 259 --> 260 callbacks.on_epoch_end(epoch, epoch_logs) 261 epoch += 1 262 if callbacks.model.stop_training: ~/anaconda3/envs/noise_supp/lib/python3.7/site-packages/keras/callbacks/callbacks.py in on_epoch_end(self, epoch, logs) 150 logs = logs or {} 151 for callback in self.callbacks: --> 152 callback.on_epoch_end(epoch, logs) 153 154 def on_train_batch_begin(self, batch, logs=None): ~/anaconda3/envs/noise_supp/lib/python3.7/site-packages/keras/callbacks/callbacks.py in on_epoch_end(self, epoch, logs) 700 if self.epochs_since_last_save >= self.period: 701 self.epochs_since_last_save = 0 --> 702 filepath = self.filepath.format(epoch=epoch + 1, **logs) 703 if self.save_best_only: 704 current = logs.get(self.monitor) KeyError: 'val_acc'

と出てしまいました。

今、調べながら質問しているのですが、
どなたかわかる人、解決方法を教えていただきたいです。

また、これで、エラーが出てしまったので一からやり直しですか。

該当のソースコード

python

1# train model 2batch_size = 16 3epochs = 1000 4print(x_train.shape) 5print(y_train.shape) 6print(x_test.shape) 7print(y_test.shape) 8training_generator = MixupGenerator(x_train, y_train)() 9model.fit_generator(generator=training_generator, 10 steps_per_epoch=x_train.shape[0] // batch_size, 11 validation_data=(x_test, y_test), 12 epochs=epochs, 13 verbose=1, 14 shuffle=True, 15 callbacks=[es_cb, cp_cb])

今現在、val_accをval_accuracyにして試しています。

補足情報(FW/ツールのバージョンなど)

ValueError: not enough values to unpack (expected 2, got 1)
https://teratail.com/questions/374966

これが解決して、その続きになります。
足りない情報は、指摘されたときに追記していきます。

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

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

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

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

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

guest

回答1

0

468/468 [==============================] - 10955s 23s/step - loss: 3.7678 - accuracy: 0.0459 - val_loss: 3.5413 - val_accuracy: 0.0900

上記の場合、callback の monitor に指定できるのは、loss, accuracy, val_loss, val_accuracyのみです。
ちなみに、loss, accuracy, val_loss, val_accuracyの名称は model.compile の metrics で決まったかと思います。

エラーの出るタイミングが少し不可解ですね。
参考元のコードをざっと見てみましたが、callback は ModelCheckpoint で、最良のモデルを保存指定でしたので、少なくとも 1 epoch 目で最初の保存処理が入り、monitor のキーエラーが出てもいいような気がしますが...

投稿2021/12/27 07:49

HRCo4

総合スコア140

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問