保存并加载keras变压器模型

问题描述 投票:0回答:1

我现在对深度学习还是新手,我按照这个 keras 教程使用 Transformer 制作翻译模型这里是链接。一切正常,但我不知道如何保存模型,目前我有这个实现

transformer.save("models/transformer.h5")

并用它加载模型

new_model = tf.keras.models.load_model(
    "models/transformer.h5",
    custom_objects={
        "PositionalEmbedding": PositionalEmbedding,
        "TransformerEncoder": TransformerEncoder,
        "TransformerDecoder": TransformerDecoder,
    },
)
new_model.summary()

我还尝试保存矢量化并使用pickle加载它this 但是当我在笔记本之外使用模型时,模型会变得更糟,当我在同一个笔记本中加载模型时,它就很好(无需重新加载矢量化)

有人可以指导我如何正确保存这个模型吗?

python tensorflow keras deep-learning nlp
1个回答
0
投票

你能定义“更糟”吗——它会产生糟糕的输出?不起作用?我建议使用 .keras 而不是 .h5 的现代格式 - 支持在 TensorFlow 2.0 中工作,并将保存您的优化器配置和自定义层。

像这样保存模型:

transformer.save("models/transformer.keras")

并像这样加载模型:

new_model = tf.keras.models.load_model(
    "models/transformer.keras",
    custom_objects={
        "PositionalEmbedding": PositionalEmbedding,
        "TransformerEncoder": TransformerEncoder,
        "TransformerDecoder": TransformerDecoder,
    },
)

以及矢量化

vectorized_layer.save("models/vectorized_layer")
vectorized_layer = tf.keras.layers.TextVectorization.from_saved_model("models/vectorized_layer")
© www.soinside.com 2019 - 2024. All rights reserved.