tensorflow / models

Models and examples built with TensorFlow

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

TypeError: Expected Operation, Variable, or Tensor, got block4 in exporter_main_v2.py

03vmate opened this issue · comments

1. The entire URL of the file you are using

https://github.com/tensorflow/models/tree/master/research/object_detection/exporter_main_v2.py

2. Describe the bug

TypeError: Expected Operation, Variable, or Tensor, got block4 when trying to export the model.
Using RetinaNet152 1024x1024 model from the Model Zoo, error persists with other models

Traceback (most recent call last): File "exporter_main_v2.py", line 126, in <module> app.run(main) File "/home/mate/venv/tensorflow2.2/lib/python3.7/site-packages/absl/app.py", line 299, in run _run_main(main, args) File "/home/mate/venv/tensorflow2.2/lib/python3.7/site-packages/absl/app.py", line 250, in _run_main sys.exit(main(argv)) File "exporter_main_v2.py", line 122, in main FLAGS.output_directory) File "/home/mate/venv/tensorflow2.2/lib/python3.7/site-packages/object_detection/exporter_lib_v2.py", line 180, in export_inference_graph signatures=concrete_function) File "/home/mate/venv/tensorflow2.2/lib/python3.7/site-packages/tensorflow/python/saved_model/save.py", line 951, in save obj, export_dir, signatures, options, meta_graph_def) File "/home/mate/venv/tensorflow2.2/lib/python3.7/site-packages/tensorflow/python/saved_model/save.py", line 1022, in _build_meta_graph _ = _SaveableView(checkpoint_graph_view) File "/home/mate/venv/tensorflow2.2/lib/python3.7/site-packages/tensorflow/python/saved_model/save.py", line 173, in __init__ self.checkpoint_view.objects_ids_and_slot_variables()) File "/home/mate/venv/tensorflow2.2/lib/python3.7/site-packages/tensorflow/python/training/tracking/graph_view.py", line 415, in objects_ids_and_slot_variables trackable_objects, path_to_root = self._breadth_first_traversal() File "/home/mate/venv/tensorflow2.2/lib/python3.7/site-packages/tensorflow/python/training/tracking/graph_view.py", line 199, in _breadth_first_traversal for name, dependency in self.list_dependencies(current_trackable): File "/home/mate/venv/tensorflow2.2/lib/python3.7/site-packages/tensorflow/python/saved_model/save.py", line 108, in list_dependencies extra_dependencies = self.list_extra_dependencies(obj) File "/home/mate/venv/tensorflow2.2/lib/python3.7/site-packages/tensorflow/python/saved_model/save.py", line 137, in list_extra_dependencies self._serialization_cache) File "/home/mate/venv/tensorflow2.2/lib/python3.7/site-packages/tensorflow/python/keras/engine/base_layer.py", line 2746, in _list_extra_dependencies_for_serialization .list_extra_dependencies_for_serialization(serialization_cache)) File "/home/mate/venv/tensorflow2.2/lib/python3.7/site-packages/tensorflow/python/keras/saving/saved_model/base_serialization.py", line 74, in list_extra_dependencies_for_serialization return self.objects_to_serialize(serialization_cache) File "/home/mate/venv/tensorflow2.2/lib/python3.7/site-packages/tensorflow/python/keras/saving/saved_model/layer_serialization.py", line 73, in objects_to_serialize serialization_cache).objects_to_serialize) File "/home/mate/venv/tensorflow2.2/lib/python3.7/site-packages/tensorflow/python/keras/saving/saved_model/layer_serialization.py", line 92, in _get_serialized_attributes serialization_cache) File "/home/mate/venv/tensorflow2.2/lib/python3.7/site-packages/tensorflow/python/keras/saving/saved_model/model_serialization.py", line 53, in _get_serialized_attributes_internal serialization_cache)) File "/home/mate/venv/tensorflow2.2/lib/python3.7/site-packages/tensorflow/python/keras/saving/saved_model/layer_serialization.py", line 101, in _get_serialized_attributes_internal functions = save_impl.wrap_layer_functions(self.obj, serialization_cache) File "/home/mate/venv/tensorflow2.2/lib/python3.7/site-packages/tensorflow/python/keras/saving/saved_model/save_impl.py", line 163, in wrap_layer_functions '{}_layer_call_and_return_conditional_losses'.format(layer.name)) File "/home/mate/venv/tensorflow2.2/lib/python3.7/site-packages/tensorflow/python/keras/saving/saved_model/save_impl.py", line 503, in add_function self.add_trace(*self._input_signature) File "/home/mate/venv/tensorflow2.2/lib/python3.7/site-packages/tensorflow/python/keras/saving/saved_model/save_impl.py", line 418, in add_trace trace_with_training(True) File "/home/mate/venv/tensorflow2.2/lib/python3.7/site-packages/tensorflow/python/keras/saving/saved_model/save_impl.py", line 416, in trace_with_training fn.get_concrete_function(*args, **kwargs) File "/home/mate/venv/tensorflow2.2/lib/python3.7/site-packages/tensorflow/python/keras/saving/saved_model/save_impl.py", line 547, in get_concrete_function return super(LayerCall, self).get_concrete_function(*args, **kwargs) File "/home/mate/venv/tensorflow2.2/lib/python3.7/site-packages/tensorflow/python/eager/def_function.py", line 959, in get_concrete_function concrete = self._get_concrete_function_garbage_collected(*args, **kwargs) File "/home/mate/venv/tensorflow2.2/lib/python3.7/site-packages/tensorflow/python/eager/def_function.py", line 865, in _get_concrete_function_garbage_collected self._initialize(args, kwargs, add_initializers_to=initializers) File "/home/mate/venv/tensorflow2.2/lib/python3.7/site-packages/tensorflow/python/eager/def_function.py", line 506, in _initialize *args, **kwds)) File "/home/mate/venv/tensorflow2.2/lib/python3.7/site-packages/tensorflow/python/eager/function.py", line 2446, in _get_concrete_function_internal_garbage_collected graph_function, _, _ = self._maybe_define_function(args, kwargs) File "/home/mate/venv/tensorflow2.2/lib/python3.7/site-packages/tensorflow/python/eager/function.py", line 2777, in _maybe_define_function graph_function = self._create_graph_function(args, kwargs) File "/home/mate/venv/tensorflow2.2/lib/python3.7/site-packages/tensorflow/python/eager/function.py", line 2667, in _create_graph_function capture_by_value=self._capture_by_value), File "/home/mate/venv/tensorflow2.2/lib/python3.7/site-packages/tensorflow/python/framework/func_graph.py", line 981, in func_graph_from_py_func func_outputs = python_func(*func_args, **func_kwargs) File "/home/mate/venv/tensorflow2.2/lib/python3.7/site-packages/tensorflow/python/eager/def_function.py", line 441, in wrapped_fn return weak_wrapped_fn().__wrapped__(*args, **kwds) File "/home/mate/venv/tensorflow2.2/lib/python3.7/site-packages/tensorflow/python/keras/saving/saved_model/save_impl.py", line 524, in wrapper ret = method(*args, **kwargs) File "/home/mate/venv/tensorflow2.2/lib/python3.7/site-packages/tensorflow/python/keras/saving/saved_model/utils.py", line 170, in wrap_with_training_arg lambda: replace_training_and_call(False)) File "/home/mate/venv/tensorflow2.2/lib/python3.7/site-packages/tensorflow/python/keras/utils/tf_utils.py", line 65, in smart_cond pred, true_fn=true_fn, false_fn=false_fn, name=name) File "/home/mate/venv/tensorflow2.2/lib/python3.7/site-packages/tensorflow/python/framework/smart_cond.py", line 54, in smart_cond return true_fn() File "/home/mate/venv/tensorflow2.2/lib/python3.7/site-packages/tensorflow/python/keras/saving/saved_model/utils.py", line 169, in <lambda> lambda: replace_training_and_call(True), File "/home/mate/venv/tensorflow2.2/lib/python3.7/site-packages/tensorflow/python/keras/saving/saved_model/utils.py", line 165, in replace_training_and_call return wrapped_call(*args, **kwargs) File "/home/mate/venv/tensorflow2.2/lib/python3.7/site-packages/tensorflow/python/keras/saving/saved_model/save_impl.py", line 566, in call_and_return_conditional_losses return layer_call(inputs, *args, **kwargs), layer.get_losses_for(inputs) File "/home/mate/venv/tensorflow2.2/lib/python3.7/site-packages/object_detection/meta_architectures/ssd_meta_arch.py", line 251, in call return self._extract_features(inputs) File "/home/mate/venv/tensorflow2.2/lib/python3.7/site-packages/object_detection/models/ssd_resnet_v1_fpn_keras_feature_extractor.py", line 235, in _extract_features fpn_features = self._fpn_features_generator(fpn_input_image_features) File "/home/mate/venv/tensorflow2.2/lib/python3.7/site-packages/tensorflow/python/keras/engine/base_layer.py", line 968, in __call__ outputs = self.call(cast_inputs, *args, **kwargs) File "/home/mate/venv/tensorflow2.2/lib/python3.7/site-packages/tensorflow/python/keras/saving/saved_model/utils.py", line 71, in return_outputs_and_add_losses outputs, losses = fn(inputs, *args, **kwargs) File "/home/mate/venv/tensorflow2.2/lib/python3.7/site-packages/tensorflow/python/keras/saving/saved_model/utils.py", line 170, in wrap_with_training_arg lambda: replace_training_and_call(False)) File "/home/mate/venv/tensorflow2.2/lib/python3.7/site-packages/tensorflow/python/keras/utils/tf_utils.py", line 65, in smart_cond pred, true_fn=true_fn, false_fn=false_fn, name=name) File "/home/mate/venv/tensorflow2.2/lib/python3.7/site-packages/tensorflow/python/framework/smart_cond.py", line 54, in smart_cond return true_fn() File "/home/mate/venv/tensorflow2.2/lib/python3.7/site-packages/tensorflow/python/keras/saving/saved_model/utils.py", line 169, in <lambda> lambda: replace_training_and_call(True), File "/home/mate/venv/tensorflow2.2/lib/python3.7/site-packages/tensorflow/python/keras/saving/saved_model/utils.py", line 165, in replace_training_and_call return wrapped_call(*args, **kwargs) File "/home/mate/venv/tensorflow2.2/lib/python3.7/site-packages/tensorflow/python/keras/saving/saved_model/save_impl.py", line 541, in __call__ self.call_collection.add_trace(*args, **kwargs) File "/home/mate/venv/tensorflow2.2/lib/python3.7/site-packages/tensorflow/python/keras/saving/saved_model/save_impl.py", line 418, in add_trace trace_with_training(True) File "/home/mate/venv/tensorflow2.2/lib/python3.7/site-packages/tensorflow/python/keras/saving/saved_model/save_impl.py", line 416, in trace_with_training fn.get_concrete_function(*args, **kwargs) File "/home/mate/venv/tensorflow2.2/lib/python3.7/site-packages/tensorflow/python/keras/saving/saved_model/save_impl.py", line 547, in get_concrete_function return super(LayerCall, self).get_concrete_function(*args, **kwargs) File "/home/mate/venv/tensorflow2.2/lib/python3.7/site-packages/tensorflow/python/eager/def_function.py", line 959, in get_concrete_function concrete = self._get_concrete_function_garbage_collected(*args, **kwargs) File "/home/mate/venv/tensorflow2.2/lib/python3.7/site-packages/tensorflow/python/eager/def_function.py", line 865, in _get_concrete_function_garbage_collected self._initialize(args, kwargs, add_initializers_to=initializers) File "/home/mate/venv/tensorflow2.2/lib/python3.7/site-packages/tensorflow/python/eager/def_function.py", line 506, in _initialize *args, **kwds)) File "/home/mate/venv/tensorflow2.2/lib/python3.7/site-packages/tensorflow/python/eager/function.py", line 2446, in _get_concrete_function_internal_garbage_collected graph_function, _, _ = self._maybe_define_function(args, kwargs) File "/home/mate/venv/tensorflow2.2/lib/python3.7/site-packages/tensorflow/python/eager/function.py", line 2777, in _maybe_define_function graph_function = self._create_graph_function(args, kwargs) File "/home/mate/venv/tensorflow2.2/lib/python3.7/site-packages/tensorflow/python/eager/function.py", line 2667, in _create_graph_function capture_by_value=self._capture_by_value), File "/home/mate/venv/tensorflow2.2/lib/python3.7/site-packages/tensorflow/python/framework/func_graph.py", line 981, in func_graph_from_py_func func_outputs = python_func(*func_args, **func_kwargs) File "/home/mate/venv/tensorflow2.2/lib/python3.7/site-packages/tensorflow/python/eager/def_function.py", line 441, in wrapped_fn return weak_wrapped_fn().__wrapped__(*args, **kwds) File "/home/mate/venv/tensorflow2.2/lib/python3.7/site-packages/tensorflow/python/keras/saving/saved_model/save_impl.py", line 524, in wrapper ret = method(*args, **kwargs) File "/home/mate/venv/tensorflow2.2/lib/python3.7/site-packages/tensorflow/python/keras/saving/saved_model/save_impl.py", line 484, in wrap_with_training_arg return call_fn(*args, **kwargs) File "/home/mate/venv/tensorflow2.2/lib/python3.7/site-packages/tensorflow/python/keras/saving/saved_model/save_impl.py", line 566, in call_and_return_conditional_losses return layer_call(inputs, *args, **kwargs), layer.get_losses_for(inputs) File "/home/mate/venv/tensorflow2.2/lib/python3.7/site-packages/tensorflow/python/keras/engine/base_layer.py", line 1627, in get_losses_for reachable = tf_utils.get_reachable_from_inputs(inputs, losses) File "/home/mate/venv/tensorflow2.2/lib/python3.7/site-packages/tensorflow/python/keras/utils/tf_utils.py", line 140, in get_reachable_from_inputs raise TypeError('Expected Operation, Variable, or Tensor, got ' + str(x))

exporter_lib_tf2_test.py also fails:

`
[ FAILED ] ExportInferenceGraphTest.test_export_yields_correct_directory_structure(input_type='tf_example')
[ RUN ] ExportInferenceGraphTest.test_session
[ SKIPPED ] ExportInferenceGraphTest.test_session

FAIL: test_export_yields_correct_directory_structure(input_type='image_tensor') (main.ExportInferenceGraphTest)
test_export_yields_correct_directory_structure(input_type='image_tensor') (main.ExportInferenceGraphTest)
test_export_yields_correct_directory_structure(input_type='image_tensor')

Traceback (most recent call last):
File "/home/mate/venv/tensorflow2.2/lib/python3.7/site-packages/absl/testing/parameterized.py", line 263, in bound_param_test
test_method(self, **testcase_params)
File "exporter_lib_tf2_test.py", line 133, in test_export_yields_correct_directory_structure
'variables.data-00000-of-00001')))
AssertionError: False is not true

FAIL: test_export_yields_correct_directory_structure(input_type='encoded_image_string_tensor') (main.ExportInferenceGraphTest)
test_export_yields_correct_directory_structure(input_type='encoded_image_string_tensor') (main.ExportInferenceGraphTest)
test_export_yields_correct_directory_structure(input_type='encoded_image_string_tensor')

Traceback (most recent call last):
File "/home/mate/venv/tensorflow2.2/lib/python3.7/site-packages/absl/testing/parameterized.py", line 263, in bound_param_test
test_method(self, **testcase_params)
File "exporter_lib_tf2_test.py", line 133, in test_export_yields_correct_directory_structure
'variables.data-00000-of-00001')))
AssertionError: False is not true

FAIL: test_export_yields_correct_directory_structure(input_type='tf_example') (main.ExportInferenceGraphTest)
test_export_yields_correct_directory_structure(input_type='tf_example') (main.ExportInferenceGraphTest)
test_export_yields_correct_directory_structure(input_type='tf_example')

Traceback (most recent call last):
File "/home/mate/venv/tensorflow2.2/lib/python3.7/site-packages/absl/testing/parameterized.py", line 263, in bound_param_test
test_method(self, **testcase_params)
File "exporter_lib_tf2_test.py", line 133, in test_export_yields_correct_directory_structure
'variables.data-00000-of-00001')))
AssertionError: False is not true

Ran 9 tests in 3.731s

FAILED (failures=3, skipped=1)
`

3. Steps to reproduce

Run python exporter_main_v2.py --input_type image_tensor --pipeline_config_path pipeline.config --trained_checkpoint_dir training/checkpoint --output_directory export
Different models result in similar errors.
Or run exporter_lib_tf2_test.py

4. Expected behavior

Model should be exported successfully

5. Additional context

Tried both --input_type image_tensor and float_image_tensor

6. System information

  • OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Arch Linux
  • Mobile device name if the issue happens on a mobile device:
  • TensorFlow installed from (source or binary): Source
  • TensorFlow version (use command below): 2.2.0
  • Python version: 3.7
  • Bazel version (if compiling from source): N/A
  • GCC/Compiler version (if compiling from source): N/A
  • CUDA/cuDNN version: 10.2
  • GPU model and memory: Tesla K20X 6GB, GTX980 4GB

I have same problem after training my object detection, using ssd mobilenet v2 fpnlite 640x640.
Running exporter_main_v2.py,got same error message:

File "/opt/tensorflow2/lib/python3.6/site-packages/tensorflow/python/keras/utils/tf_utils.py", line 140, in get_reachable_from_inputs
raise TypeError('Expected Operation, Variable, or Tensor, got ' + str(x))

I have same problem after training my object detection, using ssd mobilenet v2 fpnlite 640x640.
Running exporter_main_v2.py,got same error message:

File "/opt/tensorflow2/lib/python3.6/site-packages/tensorflow/python/keras/utils/tf_utils.py", line 140, in get_reachable_from_inputs
raise TypeError('Expected Operation, Variable, or Tensor, got ' + str(x))

+1

I have same problem after training my object detection, using ssd mobilenet v2 fpnlite 640x640.
Running exporter_main_v2.py,got same error message:

File "/opt/tensorflow2/lib/python3.6/site-packages/tensorflow/python/keras/utils/tf_utils.py", line 140, in get_reachable_from_inputs
raise TypeError('Expected Operation, Variable, or Tensor, got ' + str(x))

me 2

I am getting the same error when I try to convert the ssd_resnet50_v1_fpn_640x640_coco17_tpu-8 model after training.
Surprisingly, I dont get this error when I conver the ssd_mobilenet_v2_320x320_coco17_tpu-8 model after training.

The command is:
`python3 -W ignore object_detection/exporter_main_v2.py --input_type=image_tensor \

--pipeline_config_path=/home/inflectionpoint/Documents/AI_models/tf2/ssd_resnet50_v1_fpn_640x640_coco17_tpu-8/pipeline.config
--trained_checkpoint_dir=/home/inflectionpoint/Documents/Code/tf2/training_folder/
--output_directory=/home/inflectionpoint/Documents/Code/tf2/trained_models/20200724_facemask_resnet50_fpn_640x640/`

The error (in full) is:

WARNING:tensorflow:Skipping full serialization of Keras layer <object_detection.meta_architectures.ssd_meta_arch.SSDMetaArch object at 0x7f5903bbcac0>, because it is not built. W0724 12:46:36.478574 140022447019840 save_impl.py:75] Skipping full serialization of Keras layer <object_detection.meta_architectures.ssd_meta_arch.SSDMetaArch object at 0x7f5903bbcac0>, because it is not built. Traceback (most recent call last): File "object_detection/exporter_main_v2.py", line 126, in <module> app.run(main) File "/home/inflectionpoint/.local/lib/python3.8/site-packages/absl/app.py", line 299, in run _run_main(main, args) File "/home/inflectionpoint/.local/lib/python3.8/site-packages/absl/app.py", line 250, in _run_main sys.exit(main(argv)) File "object_detection/exporter_main_v2.py", line 120, in main exporter_lib_v2.export_inference_graph( File "/home/inflectionpoint/.local/lib/python3.8/site-packages/object_detection/exporter_lib_v2.py", line 178, in export_inference_graph tf.saved_model.save(detection_module, File "/home/inflectionpoint/.local/lib/python3.8/site-packages/tensorflow/python/saved_model/save.py", line 950, in save _, exported_graph, object_saver, asset_info = _build_meta_graph( File "/home/inflectionpoint/.local/lib/python3.8/site-packages/tensorflow/python/saved_model/save.py", line 1022, in _build_meta_graph _ = _SaveableView(checkpoint_graph_view) File "/home/inflectionpoint/.local/lib/python3.8/site-packages/tensorflow/python/saved_model/save.py", line 173, in __init__ self.checkpoint_view.objects_ids_and_slot_variables()) File "/home/inflectionpoint/.local/lib/python3.8/site-packages/tensorflow/python/training/tracking/graph_view.py", line 415, in objects_ids_and_slot_variables trackable_objects, path_to_root = self._breadth_first_traversal() File "/home/inflectionpoint/.local/lib/python3.8/site-packages/tensorflow/python/training/tracking/graph_view.py", line 199, in _breadth_first_traversal for name, dependency in self.list_dependencies(current_trackable): File "/home/inflectionpoint/.local/lib/python3.8/site-packages/tensorflow/python/saved_model/save.py", line 108, in list_dependencies extra_dependencies = self.list_extra_dependencies(obj) File "/home/inflectionpoint/.local/lib/python3.8/site-packages/tensorflow/python/saved_model/save.py", line 136, in list_extra_dependencies return obj._list_extra_dependencies_for_serialization( # pylint: disable=protected-access File "/home/inflectionpoint/.local/lib/python3.8/site-packages/tensorflow/python/keras/engine/base_layer.py", line 2745, in _list_extra_dependencies_for_serialization return (self._trackable_saved_model_saver File "/home/inflectionpoint/.local/lib/python3.8/site-packages/tensorflow/python/keras/saving/saved_model/base_serialization.py", line 74, in list_extra_dependencies_for_serialization return self.objects_to_serialize(serialization_cache) File "/home/inflectionpoint/.local/lib/python3.8/site-packages/tensorflow/python/keras/saving/saved_model/layer_serialization.py", line 72, in objects_to_serialize return (self._get_serialized_attributes( File "/home/inflectionpoint/.local/lib/python3.8/site-packages/tensorflow/python/keras/saving/saved_model/layer_serialization.py", line 91, in _get_serialized_attributes object_dict, function_dict = self._get_serialized_attributes_internal( File "/home/inflectionpoint/.local/lib/python3.8/site-packages/tensorflow/python/keras/saving/saved_model/model_serialization.py", line 52, in _get_serialized_attributes_internal super(ModelSavedModelSaver, self)._get_serialized_attributes_internal( File "/home/inflectionpoint/.local/lib/python3.8/site-packages/tensorflow/python/keras/saving/saved_model/layer_serialization.py", line 101, in _get_serialized_attributes_internal functions = save_impl.wrap_layer_functions(self.obj, serialization_cache) File "/home/inflectionpoint/.local/lib/python3.8/site-packages/tensorflow/python/keras/saving/saved_model/save_impl.py", line 161, in wrap_layer_functions call_fn_with_losses = call_collection.add_function( File "/home/inflectionpoint/.local/lib/python3.8/site-packages/tensorflow/python/keras/saving/saved_model/save_impl.py", line 503, in add_function self.add_trace(*self._input_signature) File "/home/inflectionpoint/.local/lib/python3.8/site-packages/tensorflow/python/keras/saving/saved_model/save_impl.py", line 418, in add_trace trace_with_training(True) File "/home/inflectionpoint/.local/lib/python3.8/site-packages/tensorflow/python/keras/saving/saved_model/save_impl.py", line 416, in trace_with_training fn.get_concrete_function(*args, **kwargs) File "/home/inflectionpoint/.local/lib/python3.8/site-packages/tensorflow/python/keras/saving/saved_model/save_impl.py", line 547, in get_concrete_function return super(LayerCall, self).get_concrete_function(*args, **kwargs) File "/home/inflectionpoint/.local/lib/python3.8/site-packages/tensorflow/python/eager/def_function.py", line 959, in get_concrete_function concrete = self._get_concrete_function_garbage_collected(*args, **kwargs) File "/home/inflectionpoint/.local/lib/python3.8/site-packages/tensorflow/python/eager/def_function.py", line 865, in _get_concrete_function_garbage_collected self._initialize(args, kwargs, add_initializers_to=initializers) File "/home/inflectionpoint/.local/lib/python3.8/site-packages/tensorflow/python/eager/def_function.py", line 505, in _initialize self._stateful_fn._get_concrete_function_internal_garbage_collected( # pylint: disable=protected-access File "/home/inflectionpoint/.local/lib/python3.8/site-packages/tensorflow/python/eager/function.py", line 2446, in _get_concrete_function_internal_garbage_collected graph_function, _, _ = self._maybe_define_function(args, kwargs) File "/home/inflectionpoint/.local/lib/python3.8/site-packages/tensorflow/python/eager/function.py", line 2777, in _maybe_define_function graph_function = self._create_graph_function(args, kwargs) File "/home/inflectionpoint/.local/lib/python3.8/site-packages/tensorflow/python/eager/function.py", line 2657, in _create_graph_function func_graph_module.func_graph_from_py_func( File "/home/inflectionpoint/.local/lib/python3.8/site-packages/tensorflow/python/framework/func_graph.py", line 981, in func_graph_from_py_func func_outputs = python_func(*func_args, **func_kwargs) File "/home/inflectionpoint/.local/lib/python3.8/site-packages/tensorflow/python/eager/def_function.py", line 441, in wrapped_fn return weak_wrapped_fn().__wrapped__(*args, **kwds) File "/home/inflectionpoint/.local/lib/python3.8/site-packages/tensorflow/python/keras/saving/saved_model/save_impl.py", line 524, in wrapper ret = method(*args, **kwargs) File "/home/inflectionpoint/.local/lib/python3.8/site-packages/tensorflow/python/keras/saving/saved_model/utils.py", line 167, in wrap_with_training_arg return tf_utils.smart_cond( File "/home/inflectionpoint/.local/lib/python3.8/site-packages/tensorflow/python/keras/utils/tf_utils.py", line 64, in smart_cond return smart_module.smart_cond( File "/home/inflectionpoint/.local/lib/python3.8/site-packages/tensorflow/python/framework/smart_cond.py", line 54, in smart_cond return true_fn() File "/home/inflectionpoint/.local/lib/python3.8/site-packages/tensorflow/python/keras/saving/saved_model/utils.py", line 169, in <lambda> lambda: replace_training_and_call(True), File "/home/inflectionpoint/.local/lib/python3.8/site-packages/tensorflow/python/keras/saving/saved_model/utils.py", line 165, in replace_training_and_call return wrapped_call(*args, **kwargs) File "/home/inflectionpoint/.local/lib/python3.8/site-packages/tensorflow/python/keras/saving/saved_model/save_impl.py", line 566, in call_and_return_conditional_losses return layer_call(inputs, *args, **kwargs), layer.get_losses_for(inputs) File "/home/inflectionpoint/.local/lib/python3.8/site-packages/object_detection/meta_architectures/ssd_meta_arch.py", line 251, in call return self._extract_features(inputs) File "/home/inflectionpoint/.local/lib/python3.8/site-packages/object_detection/models/ssd_resnet_v1_fpn_keras_feature_extractor.py", line 235, in _extract_features fpn_features = self._fpn_features_generator(fpn_input_image_features) File "/home/inflectionpoint/.local/lib/python3.8/site-packages/tensorflow/python/keras/engine/base_layer.py", line 968, in __call__ outputs = self.call(cast_inputs, *args, **kwargs) File "/home/inflectionpoint/.local/lib/python3.8/site-packages/tensorflow/python/keras/saving/saved_model/utils.py", line 71, in return_outputs_and_add_losses outputs, losses = fn(inputs, *args, **kwargs) File "/home/inflectionpoint/.local/lib/python3.8/site-packages/tensorflow/python/keras/saving/saved_model/utils.py", line 167, in wrap_with_training_arg return tf_utils.smart_cond( File "/home/inflectionpoint/.local/lib/python3.8/site-packages/tensorflow/python/keras/utils/tf_utils.py", line 64, in smart_cond return smart_module.smart_cond( File "/home/inflectionpoint/.local/lib/python3.8/site-packages/tensorflow/python/framework/smart_cond.py", line 54, in smart_cond return true_fn() File "/home/inflectionpoint/.local/lib/python3.8/site-packages/tensorflow/python/keras/saving/saved_model/utils.py", line 169, in <lambda> lambda: replace_training_and_call(True), File "/home/inflectionpoint/.local/lib/python3.8/site-packages/tensorflow/python/keras/saving/saved_model/utils.py", line 165, in replace_training_and_call return wrapped_call(*args, **kwargs) File "/home/inflectionpoint/.local/lib/python3.8/site-packages/tensorflow/python/keras/saving/saved_model/save_impl.py", line 541, in __call__ self.call_collection.add_trace(*args, **kwargs) File "/home/inflectionpoint/.local/lib/python3.8/site-packages/tensorflow/python/keras/saving/saved_model/save_impl.py", line 418, in add_trace trace_with_training(True) File "/home/inflectionpoint/.local/lib/python3.8/site-packages/tensorflow/python/keras/saving/saved_model/save_impl.py", line 416, in trace_with_training fn.get_concrete_function(*args, **kwargs) File "/home/inflectionpoint/.local/lib/python3.8/site-packages/tensorflow/python/keras/saving/saved_model/save_impl.py", line 547, in get_concrete_function return super(LayerCall, self).get_concrete_function(*args, **kwargs) File "/home/inflectionpoint/.local/lib/python3.8/site-packages/tensorflow/python/eager/def_function.py", line 959, in get_concrete_function concrete = self._get_concrete_function_garbage_collected(*args, **kwargs) File "/home/inflectionpoint/.local/lib/python3.8/site-packages/tensorflow/python/eager/def_function.py", line 865, in _get_concrete_function_garbage_collected self._initialize(args, kwargs, add_initializers_to=initializers) File "/home/inflectionpoint/.local/lib/python3.8/site-packages/tensorflow/python/eager/def_function.py", line 505, in _initialize self._stateful_fn._get_concrete_function_internal_garbage_collected( # pylint: disable=protected-access File "/home/inflectionpoint/.local/lib/python3.8/site-packages/tensorflow/python/eager/function.py", line 2446, in _get_concrete_function_internal_garbage_collected graph_function, _, _ = self._maybe_define_function(args, kwargs) File "/home/inflectionpoint/.local/lib/python3.8/site-packages/tensorflow/python/eager/function.py", line 2777, in _maybe_define_function graph_function = self._create_graph_function(args, kwargs) File "/home/inflectionpoint/.local/lib/python3.8/site-packages/tensorflow/python/eager/function.py", line 2657, in _create_graph_function func_graph_module.func_graph_from_py_func( File "/home/inflectionpoint/.local/lib/python3.8/site-packages/tensorflow/python/framework/func_graph.py", line 981, in func_graph_from_py_func func_outputs = python_func(*func_args, **func_kwargs) File "/home/inflectionpoint/.local/lib/python3.8/site-packages/tensorflow/python/eager/def_function.py", line 441, in wrapped_fn return weak_wrapped_fn().__wrapped__(*args, **kwds) File "/home/inflectionpoint/.local/lib/python3.8/site-packages/tensorflow/python/keras/saving/saved_model/save_impl.py", line 524, in wrapper ret = method(*args, **kwargs) File "/home/inflectionpoint/.local/lib/python3.8/site-packages/tensorflow/python/keras/saving/saved_model/save_impl.py", line 484, in wrap_with_training_arg return call_fn(*args, **kwargs) File "/home/inflectionpoint/.local/lib/python3.8/site-packages/tensorflow/python/keras/saving/saved_model/save_impl.py", line 566, in call_and_return_conditional_losses return layer_call(inputs, *args, **kwargs), layer.get_losses_for(inputs) File "/home/inflectionpoint/.local/lib/python3.8/site-packages/tensorflow/python/keras/engine/base_layer.py", line 1627, in get_losses_for reachable = tf_utils.get_reachable_from_inputs(inputs, losses) File "/home/inflectionpoint/.local/lib/python3.8/site-packages/tensorflow/python/keras/utils/tf_utils.py", line 140, in get_reachable_from_inputs raise TypeError('Expected Operation, Variable, or Tensor, got ' + str(x)) TypeError: Expected Operation, Variable, or Tensor, got block4

Same issue for me.

Same error for me, when executing tf.saved_model.save(detection_model, 'filepath')

Try this

https://tensorflow-object-detection-api-tutorial.readthedocs.io/en/latest/issues.html#export-error

at this topic “TypeError: Expected Operation, Variable, or Tensor, got level_5”

look at the line that error print out.

Copy the path to the tf_utils.py file; in the example case this was C:\Users\sglvladi\Anaconda3\envs\tf2\lib\site-packages\tensorflow\python\keras\utils\tf_utils.py

Open the file and replace line 140 of the file as follows:

Change:

raise TypeError('Expected Operation, Variable, or Tensor, got ' + str(x))

to:

if not isinstance(x, str):
    raise TypeError('Expected Operation, Variable, or Tensor, got ' + str(x))
commented

that works, the solution by noptanit12

if not isinstance(x, str):
raise TypeError('Expected Operation, Variable, or Tensor, got ' + str(x))

I change this line but still getting the same error!

This is fixed in tensorflow 2.3.0.