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
。