EarlyStopping restore_best_weights = Истинная проблема - PullRequest
0 голосов
/ 17 февраля 2020

Я использую keras.callbacks.callbacks.EarlyStopping для моего проекта глубокого обучения.
Это модель VGG19 для классификации изображений.

Проблема:

При установке restore_best_weights=True,

TypeError: объект 'NoneType' не может быть подписан

Трассировка стека:

Epoch 00003: saving model to ./output/2020-02-17_17-06-25_nomura/vgg19_weights.03-1.099-0.34.hdf5
Restoring model weights from the end of the best epoch  
Traceback (most recent call last):  
  File "wb-det_nomura_nobn.py", line 824, in <module>
    dynamic_train(path, _model)  
  File "wb-det_nomura_nobn.py", line 542, in dynamic_train
    verbose=1)  
  File "C:\Users\owner\Anaconda3\lib\site-packages\keras\engine\training.py", line 1039, in fit
    validation_steps=validation_steps)  
  File "C:\Users\owner\Anaconda3\lib\site-packages\keras\engine\training_arrays.py", line 217, in fit_loop  
    callbacks.on_epoch_end(epoch, epoch_logs)  
  File "C:\Users\owner\Anaconda3\lib\site-packages\keras\callbacks.py", line 79, in on_epoch_end
    callback.on_epoch_end(epoch, logs)  
  File "C:\Users\owner\Anaconda3\lib\site-packages\keras\callbacks.py", line 557, in on_epoch_end
    self.model.set_weights(self.best_weights)  
  File "C:\Users\owner\Anaconda3\lib\site-packages\keras\engine\network.py", line 504, in set_weights  
    layer_weights = weights[:num_param]  
TypeError: 'NoneType' object is not subscriptable

А при python restore_best_weights=False проблем нет.

Информация о системе
- keras 2.2.4
- python 3.7.3
, установленный в Anaconda.

Код прост в следующем.

es_cb = EarlyStopping(monitor='val_loss', patience=0, verbose=1,
                      mode='auto', baseline=0.05,
                      restore_best_weights=True)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...