Установите return_state = True для слоя LSTM в загруженной модели - PullRequest
0 голосов
/ 09 мая 2019

Я обучил модель кодера-декодера и сохранил ее в файл, но оказалось, что я забыл установить флаг return_state на слое LSTM декодера в значение true. Теперь я не могу реализовать вывод. Можно ли установить флаг return_state для LSTM вне конструктора?

1 Ответ

0 голосов
/ 09 мая 2019

Я не проверил приведенный ниже код, обучив модель еще раз, но это может помочь вам:

  1. Сначала загрузите существующую модель Keras, используя метод tf.keras.models.load_model:

    model = tf.keras.models.load_model('models/model.h5')
    
  2. Если слой LSTM лежит на втором индексе, мы получаем объект Layer:

    lstm = model.layers[2]
    
  3. lstm является tf.keras.layers.LSTM() объектом. Мы можем изменить параметр return_state:

    lstm.return_state = True # Set the updated value here
    

Совет:

Как и return_state в LSTM, я заметил, что мы также можем изменять аргументы всех типов слоев в Keras. Здесь я также попытался изменить аргумент единиц слоя Dense:

dense.units = 23 # Previous value was 64!
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...