Tensorflow SavedModel layer
- Original Link : https://keras.io/api/layers/backend_specific_layers/tfsm_layer/
- Last Checked at : 2024-11-25
TFSMLayer
class
keras.layers.TFSMLayer(
filepath,
call_endpoint="serve",
call_training_endpoint=None,
trainable=True,
name=None,
dtype=None,
)
Reload a Keras model/layer that was saved via SavedModel / ExportArchive.
Arguments
- filepath:
str
orpathlib.Path
object. The path to the SavedModel. - call_endpoint: Name of the endpoint to use as the
call()
method of the reloaded layer. If the SavedModel was created viamodel.export()
, then the default endpoint name is'serve'
. In other cases it may be named'serving_default'
.
Example
model.export("path/to/artifact")
reloaded_layer = TFSMLayer("path/to/artifact")
outputs = reloaded_layer(inputs)
The reloaded object can be used like a regular Keras layer, and supports training/fine-tuning of its trainable weights. Note that the reloaded object retains none of the internal structure or custom methods of the original object – it’s a brand new layer created around the saved function.
Limitations:
- Only call endpoints with a single
inputs
tensor argument (which may optionally be a dict/tuple/list of tensors) are supported. For endpoints with multiple separate input tensor arguments, consider subclassingTFSMLayer
and implementing acall()
method with a custom signature. - If you need training-time behavior to differ from inference-time behavior
(i.e. if you need the reloaded object to support a
training=True
argument in__call__()
), make sure that the training-time call function is saved as a standalone endpoint in the artifact, and provide its name to theTFSMLayer
via thecall_training_endpoint
argument.