save
方法Model.save(filepath, overwrite=True, zipped=None, **kwargs)
将模型保存为 .keras
文件。
参数
str
或 pathlib.Path
对象。保存模型的路径。必须以 .keras
结尾(除非通过 zipped=False
将模型保存为解压缩的目录)。.keras
档案(本地保存时的默认值),或者作为解压缩的目录(在 Hugging Face Hub 上保存时的默认值)。示例
model = keras.Sequential(
[
keras.layers.Dense(5, input_shape=(3,)),
keras.layers.Softmax(),
],
)
model.save("model.keras")
loaded_model = keras.saving.load_model("model.keras")
x = keras.random.uniform((10, 3))
assert np.allclose(model.predict(x), loaded_model.predict(x))
请注意,model.save()
是 keras.saving.save_model()
的别名。
保存的 .keras
文件包含
因此,模型可以以完全相同的状态重新实例化。
save_model
函数keras.saving.save_model(model, filepath, overwrite=True, zipped=None, **kwargs)
将模型保存为 .keras
文件。
参数
str
或 pathlib.Path
对象。保存模型的路径。.keras
档案(本地保存时的默认值),或者作为解压缩的目录(在 Hugging Face Hub 上保存时的默认值)。示例
model = keras.Sequential(
[
keras.layers.Dense(5, input_shape=(3,)),
keras.layers.Softmax(),
],
)
model.save("model.keras")
loaded_model = keras.saving.load_model("model.keras")
x = keras.random.uniform((10, 3))
assert np.allclose(model.predict(x), loaded_model.predict(x))
请注意,model.save()
是 keras.saving.save_model()
的别名。
保存的 .keras
文件是一个 zip
档案,其中包含
因此,模型可以以完全相同的状态重新实例化。
load_model
函数keras.saving.load_model(filepath, custom_objects=None, compile=True, safe_mode=True)
加载通过 model.save()
保存的模型。
参数
str
或 pathlib.Path
对象,保存的模型文件的路径。lambda
反序列化。当 safe_mode=False
时,加载对象有可能触发任意代码执行。此参数仅适用于 Keras v3 模型格式。默认为 True
。返回值
一个 Keras 模型实例。如果原始模型已编译,并且设置了参数 compile=True
,则返回的模型将被编译。否则,模型将保持未编译状态。
示例
model = keras.Sequential([
keras.layers.Dense(5, input_shape=(3,)),
keras.layers.Softmax()])
model.save("model.keras")
loaded_model = keras.saving.load_model("model.keras")
x = np.random.random((10, 3))
assert np.allclose(model.predict(x), loaded_model.predict(x))
请注意,模型变量在重新加载后可能具有不同的名称值(var.name
属性,例如 "dense_1/kernel:0"
)。建议您使用层属性访问特定变量,例如 model.get_layer("dense_1").kernel
。