Сохранение метаданных / информации в модели Keras - PullRequest
2 голосов
/ 06 января 2020

Можно ли сохранить метаданные / метаинформацию в модели Keras? Моя цель - сохранить входные параметры предварительной обработки, используемый набор поездов / тестов, карты меток классов и т. Д. c. который я могу использовать при загрузке модели снова.
Я просмотрел документацию Keras и ничего не нашел. Я обнаружил похожую проблему на GitHub, но она была закрыта два года назад без какого-либо разрешения.
В настоящее время я сохраняю всю эту информацию в отдельном файле и использую этот файл при загрузке модели.
Хотя, вероятно, не имеет значения, но я использую tf.keras функциональную модель и сохраняю свою модель в виде h5 файла, используя model.save().

Ответы [ 2 ]

1 голос
/ 06 января 2020

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

. Вы можете достичь этого, используя метод tf.saved_model (в минимум в TensorFlow 2.0).

Ваша оригинальная модель также может быть обучена в Керасе, не обязательно для чистого тензорного потока, чтобы использовать tf.saved_model.

Подробнее о tf.saved_model можно прочитать здесь. : https://www.tensorflow.org/guide/saved_model

0 голосов
/ 30 апреля 2020

Это работает для меня:

from tensorflow.python.keras.saving import hdf5_format
import h5py


# Save model
with h5py.File(model_path, mode='w') as f:
    hdf5_format.save_model_to_hdf5(my_keras_model, f)
    f.attrs['param1'] = param1
    f.attrs['param2'] = param2

# Load model
with h5py.File(model_path, mode='r') as f:
    param1 = f.attrs['param1']
    param2 = f.attrs['param2']
    my_keras_model = hdf5_format.load_model_from_hdf5(f)
...