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))