Гиперпараметры LSTM недоступны в модели.summary () после загрузки модели - PullRequest
0 голосов
/ 13 декабря 2018

Я пытаюсь загрузить модель LSTM (созданную Keras) после использования команды:

    model_json = model.to_json()
    with open("model.json", "w") as json_file:
    json_file.write(model_json)

с командой:

json_file = open('model.json', 'r')
loaded_model_json = json_file.read()
json_file.close()
loaded_model = model_from_json(loaded_model_json)

и распечатать lr и другие гипер-параметры через команду:

loaded_model.summary()

Я получил всю информацию о структуре LSTM.Но я не получил информацию о гиперпараметрах, таких как lr и т. Д.

1 Ответ

0 голосов
/ 13 декабря 2018

Скорость обучения является параметром оптимизатора модели и не включена в вывод model.summary().Если вы хотите найти значение скорости обучения, вы можете использовать атрибут optimizer модели и использовать K.eval(), чтобы оценить тензор скорости обучения и получить его фактическое значение:

print(K.eval(model.optimizer.lr))

Обновление: оптимизатор модели не сохраняется при использовании метода to_json и, следовательно, вышеприведенное решение не работает.Если вы хотите сохранить всю модель, включая вес слоев и оптимизатор (вместе с ее состоянием), вы можете использовать метод save:

model.save('my_model.h5')

Затем вы можете загрузить его, используя load_model:

from keras.models import load_model

model = load_model('my_model.h5')

В качестве альтернативы, если вы использовали метод save_weights (для сохранения весов слоев) вместе с методом to_json (для сохранения только архитектуры модели)затем вы можете загрузить веса после загрузки модели, используя model_from_json:

# load the architecture of model from json file ...

# load the weights
model.load_weights('model_weights.h5')

Однако оптимизатор в этом втором подходе не был сохранен, и поэтому вам необходимо перекомпилировать модель (обратите внимание, чтоэто означает, что состояние оптимизатора потеряно, и поэтому вы, возможно, не сможете легко продолжить обучение модели без предварительной настройки оптимизатора, однако это хорошо, если вы хотите использовать модель только для прогноз или переобучить модель с нуля ).

Я также настоятельно рекомендую прочитать соответствующий раздел в FAQ по Keras: Как сохранитьмодель Keras?

...