前提・実現したいこと
ディープラーニングで音声分類
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
これが解決して、その続きになります。
足りない情報は、指摘されたときに追記していきます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。