You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When exporting a keras model in tf_saved_model format to use it in tensorflow-serving server
I've encountered the following error:
Traceback (most recent call last):
File "/home/tom/kml/repos/various/tf_serving_client/tf_serving_client/min_example.py", line 17, in <module>
model.export('/home/tom/tmp/test_export', format='tf_saved_model',
File "/home/tom/.virtualenvs/tf_serving_client/lib/python3.12/site-packages/keras/src/models/model.py", line 544, in export
export_saved_model(
File "/home/tom/.virtualenvs/tf_serving_client/lib/python3.12/site-packages/keras/src/export/saved_model.py", line 656, in export_saved_model
export_archive.write_out(filepath, verbose=verbose)
File "/home/tom/.virtualenvs/tf_serving_client/lib/python3.12/site-packages/keras/src/export/saved_model.py", line 510, in write_out
self._filter_and_track_resources()
File "/home/tom/.virtualenvs/tf_serving_client/lib/python3.12/site-packages/keras/src/export/saved_model.py", line 574, in _filter_and_track_resources
tvs, ntvs = _list_variables_used_by_fns(fns)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/tom/.virtualenvs/tf_serving_client/lib/python3.12/site-packages/keras/src/export/saved_model.py", line 677, in _list_variables_used_by_fns
concrete_functions = [fn.get_concrete_function()]
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/tom/.virtualenvs/tf_serving_client/lib/python3.12/site-packages/tensorflow/python/eager/polymorphic_function/polymorphic_function.py", line 1256, in get_concrete_function
concrete = self._get_concrete_function_garbage_collected(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/tom/.virtualenvs/tf_serving_client/lib/python3.12/site-packages/tensorflow/python/eager/polymorphic_function/polymorphic_function.py", line 1226, in _get_concrete_function_garbage_collected
self._initialize(args, kwargs, add_initializers_to=initializers)
File "/home/tom/.virtualenvs/tf_serving_client/lib/python3.12/site-packages/tensorflow/python/eager/polymorphic_function/polymorphic_function.py", line 696, in _initialize
self._concrete_variable_creation_fn = tracing_compilation.trace_function(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/tom/.virtualenvs/tf_serving_client/lib/python3.12/site-packages/tensorflow/python/eager/polymorphic_function/tracing_compilation.py", line 178, in trace_function
concrete_function = _maybe_define_function(
^^^^^^^^^^^^^^^^^^^^^^^
File "/home/tom/.virtualenvs/tf_serving_client/lib/python3.12/site-packages/tensorflow/python/eager/polymorphic_function/tracing_compilation.py", line 283, in _maybe_define_function
concrete_function = _create_concrete_function(
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/tom/.virtualenvs/tf_serving_client/lib/python3.12/site-packages/tensorflow/python/eager/polymorphic_function/tracing_compilation.py", line 310, in _create_concrete_function
traced_func_graph = func_graph_module.func_graph_from_py_func(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/tom/.virtualenvs/tf_serving_client/lib/python3.12/site-packages/tensorflow/python/framework/func_graph.py", line 1060, in func_graph_from_py_func
func_outputs = python_func(*func_args, **func_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/tom/.virtualenvs/tf_serving_client/lib/python3.12/site-packages/tensorflow/python/eager/polymorphic_function/polymorphic_function.py", line 599, in wrapped_fn
out = weak_wrapped_fn().__wrapped__(*args, **kwds)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/tom/.virtualenvs/tf_serving_client/lib/python3.12/site-packages/keras/src/utils/traceback_utils.py", line 122, in error_handler
raise e.with_traceback(filtered_tb) from None
File "/home/tom/.virtualenvs/tf_serving_client/lib/python3.12/site-packages/keras/src/layers/input_spec.py", line 160, in assert_input_compatibility
raise ValueError(
ValueError: Layer "functional" expects 2 input(s), but it received 1 input tensors. Inputs received: [<tf.Tensor 'input_A:0' shape=(1,) dtype=float32>]
Code to reproduce the issue
import tensorflow as tf
import keras
from keras import layers
if __name__ == "__main__":
input_0 = layers.Input(name='input_0', shape=(1,))
input_1 = layers.Input(name='input_1', shape=(1,))
output = input_0 + input_1
model = keras.Model(inputs=(input_0, input_1), outputs=(output,))
model.export('/home/tom/tmp/test_export', format='tf_saved_model',
input_signature=[tf.TensorSpec((1,), dtype=input_0.dtype, name=f'input_A'),
tf.TensorSpec((1,), dtype=input_0.dtype, name=f'input_B')]
)
When skipping input_signature parameter, everything works as expected.
However, the background why I'm providing input_signature is that I want to give the inputs different names.
Environment:
python 3.12
requirements.txt to reproduce the issue
Bug description
When exporting a keras model in tf_saved_model format to use it in tensorflow-serving server
I've encountered the following error:
Code to reproduce the issue
When skipping input_signature parameter, everything works as expected.
However, the background why I'm providing input_signature is that I want to give the inputs different names.
Environment:
python 3.12
requirements.txt to reproduce the issue
The text was updated successfully, but these errors were encountered: