Whole model saving & loading
- Original Link : https://keras.io/api/models/model_saving_apis/model_saving_and_loading/
- Last Checked at : 2024-11-24
save method
Model.save(filepath, overwrite=True, zipped=None, **kwargs)Saves a model as a .keras file.
Arguments
- filepath:
strorpathlib.Pathobject. The path where to save the model. Must end in.keras(unless saving the model as an unzipped directory viazipped=False). - overwrite: Whether we should overwrite any existing model at the target location, or instead ask the user via an interactive prompt.
- zipped: Whether to save the model as a zipped
.kerasarchive (default when saving locally), or as an unzipped directory (default when saving on the Hugging Face Hub).
Example
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))Note that model.save() is an alias for keras.saving.save_model().
The saved .keras file contains:
- The model’s configuration (architecture)
- The model’s weights
- The model’s optimizer’s state (if any)
Thus models can be reinstantiated in the exact same state.
save_model function
keras.saving.save_model(model, filepath, overwrite=True, zipped=None, **kwargs)Saves a model as a .keras file.
Arguments
- model: Keras model instance to be saved.
- filepath:
strorpathlib.Pathobject. Path where to save the model. - overwrite: Whether we should overwrite any existing model at the target location, or instead ask the user via an interactive prompt.
- zipped: Whether to save the model as a zipped
.kerasarchive (default when saving locally), or as an unzipped directory (default when saving on the Hugging Face Hub).
Example
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))Note that model.save() is an alias for keras.saving.save_model().
The saved .keras file is a zip archive that contains:
- The model’s configuration (architecture)
- The model’s weights
- The model’s optimizer’s state (if any)
Thus models can be reinstantiated in the exact same state.
load_model function
keras.saving.load_model(filepath, custom_objects=None, compile=True, safe_mode=True)Loads a model saved via model.save().
Arguments
- filepath:
strorpathlib.Pathobject, path to the saved model file. - custom_objects: Optional dictionary mapping names (strings) to custom classes or functions to be considered during deserialization.
- compile: Boolean, whether to compile the model after loading.
- safe_mode: Boolean, whether to disallow unsafe
lambdadeserialization. Whensafe_mode=False, loading an object has the potential to trigger arbitrary code execution. This argument is only applicable to the Keras v3 model format. Defaults toTrue.
Returns
A Keras model instance. If the original model was compiled, and the argument compile=True is set, then the returned model will be compiled. Otherwise, the model will be left uncompiled.
Example
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))Note that the model variables may have different name values (var.name property, e.g. "dense_1/kernel:0") after being reloaded. It is recommended that you use layer attributes to access specific variables, e.g. model.get_layer("dense_1").kernel.