1、save方法
Model.save(filepath, overwrite=True, **kwargs)
将模型另存为.keras文件
参数说明
- filepath: 保存模型的路径。必须以.keras结尾
- overwrite:布尔值,表示是否覆盖已存在的文件。默认为 True,即覆盖已存在的文件。
- save_format:在Keras 3中不赞成使用save_format参数。要使用的格式,作为字符串。此时仅支持“keras”格式
示例
model = keras.Sequential([keras.layers.Dense(5, input_shape=(3,)),keras.layers.Softmax(),],
)
model.save("./models/model.keras")
1.2、 save_model
方法
keras.saving.save_model(model, filepath, overwrite=True, **kwargs)
将模型另存为.keras文件
参数说明
model
:需要保存的模型对象。filepath
:保存模型的文件路径。overwrite
:布尔值,表示是否覆盖已存在的文件。默认为 True,即覆盖已存在的文件。
2、load_model方法
keras.saving.load_model(filepath, custom_objects=None, compile=True, safe_mode=True)
加载通过model.save()保存的模型
参数说明
- filepath: 已保存模型的文件路径
- custom_objects: 字典类型,用于指定自定义层或损失函数等对象的类名和对应的 Python 类。默认为 None,表示使用 Keras 默认的类名和类映射关系
- compile: 布尔值,表示是否在加载模型后立即编译模型。默认为 True,即自动编译模型。如果设置为 False,则需要手动编译模型
- safe_mode: 布尔值,表示是否以安全模式加载模型。默认为 True,即启用安全模式。安全模式下,Keras 会检查模型的结构和配置是否与原始模型一致,如果不一致则会抛出异常。如果设置为 False,则禁用安全模式,加载的模型可能与原始模型不一致
示例
#创建一个Sequential模型
model = keras.Sequential([keras.layers.Dense(5, input_shape=(3,)),keras.layers.Softmax()])#将创建好的模型保存到文件"model.keras"中
model.save("model.keras")#从文件中加载保存的模型
loaded_model = keras.saving.load_model("model.keras")#随机生成一个的输入数据矩阵x,形状为(10, 3)
x = np.random.random((10, 3))#使用原始模型和加载的模型分别对输入数据进行预测
#使用np.allclose函数比较两个模型的预测结果是否相同
#如果相同,则断言通过,否则会抛出异常
assert np.allclose(model.predict(x), loaded_model.predict(x))