在 Keras 模型中保存元数据/信息

Viv*_*hta 8 python keras tensorflow tf.keras

是否可以在 Keras 模型中保存元数据/元信息?我的目标是保存输入预处理参数、使用的训练/测试集、类标签映射等,我可以在再次加载模型时使用这些参数。
我浏览了 Keras 文档并没有找到任何东西。我在 GitHub 上发现了类似的问题,但两年前它被关闭了,没有任何解决方案。
目前我将所有这些信息保存在单独的文件中,并在加载模型时使用此文件。
虽然可能不相关,但我正在使用tf.keras功能模型并h5使用model.save().

use*_*323 5

这对我有用:

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)
Run Code Online (Sandbox Code Playgroud)


Tim*_*lin 1

我认为为了满足您的需求(至少是其中的一部分),您可以实现的最接近的想法是保存一个MetaGraph.

您可以通过使用tf.saved_model方法来实现这一点(至少在 TensorFlow 2.0 中)。

您的原始模型也可以在 Keras 中进行训练,而不必在纯张量流中进行训练才能使用tf.saved_model

您可以在这里阅读更多信息tf.saved_model: https: //www.tensorflow.org/guide/saved_model