1import tempfile
2
3from .tfsavedmodel import TensorflowSavedModelBackend
4
5
[docs]
6class TensorflowKerasSavedModelBackend(TensorflowSavedModelBackend):
7 """
8 .. versionchanged:: 0.18.0
9 Only supported for tensorflow <= 2.15 and Python <= 3.11
10
11 .. deprecated:: 0.18.0
12 Use an object helper or a serializer/loader combination instead.
13 """
14 KIND = 'tfkeras.savedmodel'
15
[docs]
16 @classmethod
17 def supports(self, obj, name, **kwargs):
18 import tensorflow as tf
19 tfSequential = tf.keras.models.Sequential
20 tfModel = tf.keras.models.Model
21 return isinstance(obj, (tfSequential, tfModel)) and kwargs.get('as_savedmodel')
22
23 def _make_savedmodel(self, obj, serving_input_receiver_fn=None, strip_default_attrs=None):
24 # https://www.tensorflow.org/api_docs/python/tf/keras/experimental/export_saved_model
25 import tensorflow as tf
26 export_dir = tempfile.mkdtemp()
27 tf.keras.models.save_model(obj, export_dir,
28 save_format='tf')
29 return export_dir
30
[docs]
31 def fit(self, modelname, Xname, Yname=None, pure_python=True, tpu_specs=None, **kwargs):
32 raise ValueError('cannot fit a saved model')