TensorFlow 1 version View source on GitHub

Loads a model saved via save_model.

    filepath, custom_objects=None, compile=True

Used in the notebooks

Used in the guide Used in the tutorials


model = tf.keras.Sequential([ 
    tf.keras.layers.Dense(5, input_shape=(3,)), 
loaded_model = tf.keras.models.load_model('/tmp/model') 
x = tf.random.uniform((10, 3)) 
assert np.allclose(model.predict(x), loaded_model.predict(x)) 

Note that the model weights may have different scoped names after being loaded. Scoped names include the model/layer names, such as "dense_1/kernel:0". It is recommended that you use the layer properties to access specific variables, e.g.model.get_layer("dense_1").kernel`.


  • filepath: One of the following:
    • String or pathlib.Path object, path to the saved model
    • h5py.File object from which to load the model
  • 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.


A Keras model instance. If the original model was compiled, and saved with the optimizer, then the returned model will be compiled. Otherwise, the model will be left uncompiled. In the case that an uncompiled model is returned, a warning is displayed if the compile argument is set to True.


  • ImportError: if loading from an hdf5 file and h5py is not available.
  • IOError: In case of an invalid savefile.