models icon indicating copy to clipboard operation
models copied to clipboard

iterating over `tf.Tensor` is not allowed: AutoGraph did convert this function. This might indicate you are trying to use an unsupported feature

Open 827346462 opened this issue 3 years ago • 2 comments

I have a problem . but i use "python model_builder_tf2_test.py" ,it's ok!

plaese help me.

Traceback (most recent call last): File "/home/ubuntu/anaconda3/envs/Digit/lib/python3.8/site-packages/tensorflow-2.6.0-py3.8-linux-x86_64.egg/tensorflow/python/autograph/impl/api.py", line 432, in converted_call converted_f = _convert_actual(target_entity, program_ctx) File "/home/ubuntu/anaconda3/envs/Digit/lib/python3.8/site-packages/tensorflow-2.6.0-py3.8-linux-x86_64.egg/tensorflow/python/autograph/impl/api.py", line 274, in _convert_actual transformed, module, source_map = _TRANSPILER.transform(entity, program_ctx) File "/home/ubuntu/anaconda3/envs/Digit/lib/python3.8/site-packages/tensorflow-2.6.0-py3.8-linux-x86_64.egg/tensorflow/python/autograph/pyct/transpiler.py", line 286, in transform return self.transform_function(obj, user_context) File "/home/ubuntu/anaconda3/envs/Digit/lib/python3.8/site-packages/tensorflow-2.6.0-py3.8-linux-x86_64.egg/tensorflow/python/autograph/pyct/transpiler.py", line 470, in transform_function nodes, ctx = super(PyToPy, self).transform_function(fn, user_context) File "/home/ubuntu/anaconda3/envs/Digit/lib/python3.8/site-packages/tensorflow-2.6.0-py3.8-linux-x86_64.egg/tensorflow/python/autograph/pyct/transpiler.py", line 363, in transform_function result = self.transform_ast(node, context) File "/home/ubuntu/anaconda3/envs/Digit/lib/python3.8/site-packages/tensorflow-2.6.0-py3.8-linux-x86_64.egg/tensorflow/python/autograph/impl/api.py", line 242, in transform_ast node = self.initial_analysis(node, ctx) File "/home/ubuntu/anaconda3/envs/Digit/lib/python3.8/site-packages/tensorflow-2.6.0-py3.8-linux-x86_64.egg/tensorflow/python/autograph/impl/api.py", line 230, in initial_analysis node = activity.resolve(node, ctx, None) File "/home/ubuntu/anaconda3/envs/Digit/lib/python3.8/site-packages/tensorflow-2.6.0-py3.8-linux-x86_64.egg/tensorflow/python/autograph/pyct/static_analysis/activity.py", line 709, in resolve return ActivityAnalyzer(context, parent_scope).visit(node) File "/home/ubuntu/anaconda3/envs/Digit/lib/python3.8/site-packages/tensorflow-2.6.0-py3.8-linux-x86_64.egg/tensorflow/python/autograph/pyct/transformer.py", line 445, in visit result = super(Base, self).visit(node) File "/home/ubuntu/anaconda3/envs/Digit/lib/python3.8/ast.py", line 371, in visit return visitor(node) File "/home/ubuntu/anaconda3/envs/Digit/lib/python3.8/site-packages/tensorflow-2.6.0-py3.8-linux-x86_64.egg/tensorflow/python/autograph/pyct/static_analysis/activity.py", line 601, in visit_FunctionDef node.body = self.visit_block(node.body) File "/home/ubuntu/anaconda3/envs/Digit/lib/python3.8/site-packages/tensorflow-2.6.0-py3.8-linux-x86_64.egg/tensorflow/python/autograph/pyct/transformer.py", line 340, in visit_block replacement = self.visit(node) File "/home/ubuntu/anaconda3/envs/Digit/lib/python3.8/site-packages/tensorflow-2.6.0-py3.8-linux-x86_64.egg/tensorflow/python/autograph/pyct/transformer.py", line 445, in visit result = super(Base, self).visit(node) File "/home/ubuntu/anaconda3/envs/Digit/lib/python3.8/ast.py", line 371, in visit return visitor(node) File "/home/ubuntu/anaconda3/envs/Digit/lib/python3.8/site-packages/tensorflow-2.6.0-py3.8-linux-x86_64.egg/tensorflow/python/autograph/pyct/static_analysis/activity.py", line 664, in visit_If node = self._process_parallel_blocks(node, File "/home/ubuntu/anaconda3/envs/Digit/lib/python3.8/site-packages/tensorflow-2.6.0-py3.8-linux-x86_64.egg/tensorflow/python/autograph/pyct/static_analysis/activity.py", line 486, in _process_parallel_blocks parent = self._process_block_node(parent, child, scope_name) File "/home/ubuntu/anaconda3/envs/Digit/lib/python3.8/site-packages/tensorflow-2.6.0-py3.8-linux-x86_64.egg/tensorflow/python/autograph/pyct/static_analysis/activity.py", line 473, in _process_block_node block = self.visit_block(block) File "/home/ubuntu/anaconda3/envs/Digit/lib/python3.8/site-packages/tensorflow-2.6.0-py3.8-linux-x86_64.egg/tensorflow/python/autograph/pyct/transformer.py", line 340, in visit_block replacement = self.visit(node) File "/home/ubuntu/anaconda3/envs/Digit/lib/python3.8/site-packages/tensorflow-2.6.0-py3.8-linux-x86_64.egg/tensorflow/python/autograph/pyct/transformer.py", line 445, in visit result = super(Base, self).visit(node) File "/home/ubuntu/anaconda3/envs/Digit/lib/python3.8/ast.py", line 371, in visit return visitor(node) File "/home/ubuntu/anaconda3/envs/Digit/lib/python3.8/site-packages/tensorflow-2.6.0-py3.8-linux-x86_64.egg/tensorflow/python/autograph/pyct/static_analysis/activity.py", line 681, in visit_For node = self._process_parallel_blocks(node, File "/home/ubuntu/anaconda3/envs/Digit/lib/python3.8/site-packages/tensorflow-2.6.0-py3.8-linux-x86_64.egg/tensorflow/python/autograph/pyct/static_analysis/activity.py", line 486, in _process_parallel_blocks parent = self._process_block_node(parent, child, scope_name) File "/home/ubuntu/anaconda3/envs/Digit/lib/python3.8/site-packages/tensorflow-2.6.0-py3.8-linux-x86_64.egg/tensorflow/python/autograph/pyct/static_analysis/activity.py", line 473, in _process_block_node block = self.visit_block(block) File "/home/ubuntu/anaconda3/envs/Digit/lib/python3.8/site-packages/tensorflow-2.6.0-py3.8-linux-x86_64.egg/tensorflow/python/autograph/pyct/transformer.py", line 340, in visit_block replacement = self.visit(node) File "/home/ubuntu/anaconda3/envs/Digit/lib/python3.8/site-packages/tensorflow-2.6.0-py3.8-linux-x86_64.egg/tensorflow/python/autograph/pyct/transformer.py", line 445, in visit result = super(Base, self).visit(node) File "/home/ubuntu/anaconda3/envs/Digit/lib/python3.8/ast.py", line 371, in visit return visitor(node) File "/home/ubuntu/anaconda3/envs/Digit/lib/python3.8/site-packages/tensorflow-2.6.0-py3.8-linux-x86_64.egg/tensorflow/python/autograph/pyct/static_analysis/activity.py", line 651, in visit_With node = self.generic_visit(node) File "/home/ubuntu/anaconda3/envs/Digit/lib/python3.8/ast.py", line 447, in generic_visit value = self.visit(value) File "/home/ubuntu/anaconda3/envs/Digit/lib/python3.8/site-packages/tensorflow-2.6.0-py3.8-linux-x86_64.egg/tensorflow/python/autograph/pyct/transformer.py", line 445, in visit result = super(Base, self).visit(node) File "/home/ubuntu/anaconda3/envs/Digit/lib/python3.8/ast.py", line 371, in visit return visitor(node) File "/home/ubuntu/anaconda3/envs/Digit/lib/python3.8/site-packages/tensorflow-2.6.0-py3.8-linux-x86_64.egg/tensorflow/python/autograph/pyct/static_analysis/activity.py", line 656, in visit_withitem return self._process_statement(node) File "/home/ubuntu/anaconda3/envs/Digit/lib/python3.8/site-packages/tensorflow-2.6.0-py3.8-linux-x86_64.egg/tensorflow/python/autograph/pyct/static_analysis/activity.py", line 344, in _process_statement node = self.generic_visit(node) File "/home/ubuntu/anaconda3/envs/Digit/lib/python3.8/ast.py", line 456, in generic_visit new_node = self.visit(old_value) File "/home/ubuntu/anaconda3/envs/Digit/lib/python3.8/site-packages/tensorflow-2.6.0-py3.8-linux-x86_64.egg/tensorflow/python/autograph/pyct/transformer.py", line 445, in visit result = super(Base, self).visit(node) File "/home/ubuntu/anaconda3/envs/Digit/lib/python3.8/ast.py", line 371, in visit return visitor(node) File "/home/ubuntu/anaconda3/envs/Digit/lib/python3.8/site-packages/tensorflow-2.6.0-py3.8-linux-x86_64.egg/tensorflow/python/autograph/pyct/static_analysis/activity.py", line 463, in visit_Call node.args = self.visit_block(node.args) File "/home/ubuntu/anaconda3/envs/Digit/lib/python3.8/site-packages/tensorflow-2.6.0-py3.8-linux-x86_64.egg/tensorflow/python/autograph/pyct/transformer.py", line 340, in visit_block replacement = self.visit(node) File "/home/ubuntu/anaconda3/envs/Digit/lib/python3.8/site-packages/tensorflow-2.6.0-py3.8-linux-x86_64.egg/tensorflow/python/autograph/pyct/transformer.py", line 431, in visit raise ValueError(msg) ValueError: invalid value for "node": expected "ast.AST", got "<class 'NoneType'>"; to visit lists of nodes, use "visit_block" instead

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "model_main_tf2.py", line 115, in tf.compat.v1.app.run() File "/home/ubuntu/anaconda3/envs/Digit/lib/python3.8/site-packages/tensorflow-2.6.0-py3.8-linux-x86_64.egg/tensorflow/python/platform/app.py", line 40, in run _run(main=main, argv=argv, flags_parser=_parse_flags_tolerate_undef) File "/home/ubuntu/anaconda3/envs/Digit/lib/python3.8/site-packages/absl/app.py", line 312, in run _run_main(main, args) File "/home/ubuntu/anaconda3/envs/Digit/lib/python3.8/site-packages/absl/app.py", line 258, in _run_main sys.exit(main(argv)) File "model_main_tf2.py", line 106, in main model_lib_v2.train_loop( File "/home/ubuntu/anaconda3/envs/Digit/lib/python3.8/site-packages/object_detection-0.1-py3.8.egg/object_detection/model_lib_v2.py", line 678, in train_loop losses_dict = _dist_train_step(train_input_iter) File "/home/ubuntu/anaconda3/envs/Digit/lib/python3.8/site-packages/tensorflow-2.6.0-py3.8-linux-x86_64.egg/tensorflow/python/eager/def_function.py", line 885, in call result = self._call(*args, **kwds) File "/home/ubuntu/anaconda3/envs/Digit/lib/python3.8/site-packages/tensorflow-2.6.0-py3.8-linux-x86_64.egg/tensorflow/python/eager/def_function.py", line 933, in _call self._initialize(args, kwds, add_initializers_to=initializers) File "/home/ubuntu/anaconda3/envs/Digit/lib/python3.8/site-packages/tensorflow-2.6.0-py3.8-linux-x86_64.egg/tensorflow/python/eager/def_function.py", line 759, in _initialize self._stateful_fn._get_concrete_function_internal_garbage_collected( # pylint: disable=protected-access File "/home/ubuntu/anaconda3/envs/Digit/lib/python3.8/site-packages/tensorflow-2.6.0-py3.8-linux-x86_64.egg/tensorflow/python/eager/function.py", line 3066, in _get_concrete_function_internal_garbage_collected graph_function, _ = self._maybe_define_function(args, kwargs) File "/home/ubuntu/anaconda3/envs/Digit/lib/python3.8/site-packages/tensorflow-2.6.0-py3.8-linux-x86_64.egg/tensorflow/python/eager/function.py", line 3463, in _maybe_define_function graph_function = self._create_graph_function(args, kwargs) File "/home/ubuntu/anaconda3/envs/Digit/lib/python3.8/site-packages/tensorflow-2.6.0-py3.8-linux-x86_64.egg/tensorflow/python/eager/function.py", line 3298, in _create_graph_function func_graph_module.func_graph_from_py_func( File "/home/ubuntu/anaconda3/envs/Digit/lib/python3.8/site-packages/tensorflow-2.6.0-py3.8-linux-x86_64.egg/tensorflow/python/framework/func_graph.py", line 1007, in func_graph_from_py_func func_outputs = python_func(*func_args, **func_kwargs) File "/home/ubuntu/anaconda3/envs/Digit/lib/python3.8/site-packages/tensorflow-2.6.0-py3.8-linux-x86_64.egg/tensorflow/python/eager/def_function.py", line 668, in wrapped_fn out = weak_wrapped_fn().wrapped(*args, **kwds) File "/home/ubuntu/anaconda3/envs/Digit/lib/python3.8/site-packages/tensorflow-2.6.0-py3.8-linux-x86_64.egg/tensorflow/python/framework/func_graph.py", line 983, in wrapper return autograph.converted_call( File "/home/ubuntu/anaconda3/envs/Digit/lib/python3.8/site-packages/tensorflow-2.6.0-py3.8-linux-x86_64.egg/tensorflow/python/autograph/impl/api.py", line 439, in converted_call return _fall_back_unconverted(f, args, kwargs, options, e) File "/home/ubuntu/anaconda3/envs/Digit/lib/python3.8/site-packages/tensorflow-2.6.0-py3.8-linux-x86_64.egg/tensorflow/python/autograph/impl/api.py", line 486, in _fall_back_unconverted return _call_unconverted(f, args, kwargs, options) File "/home/ubuntu/anaconda3/envs/Digit/lib/python3.8/site-packages/tensorflow-2.6.0-py3.8-linux-x86_64.egg/tensorflow/python/autograph/impl/api.py", line 463, in _call_unconverted return f(*args, **kwargs) File "/home/ubuntu/anaconda3/envs/Digit/lib/python3.8/site-packages/object_detection-0.1-py3.8.egg/object_detection/model_lib_v2.py", line 659, in _dist_train_step for _ in tf.range(num_steps_per_iteration - 1): File "/home/ubuntu/anaconda3/envs/Digit/lib/python3.8/site-packages/tensorflow-2.6.0-py3.8-linux-x86_64.egg/tensorflow/python/framework/ops.py", line 520, in iter self._disallow_iteration() File "/home/ubuntu/anaconda3/envs/Digit/lib/python3.8/site-packages/tensorflow-2.6.0-py3.8-linux-x86_64.egg/tensorflow/python/framework/ops.py", line 513, in _disallow_iteration self._disallow_when_autograph_enabled("iterating over tf.Tensor") File "/home/ubuntu/anaconda3/envs/Digit/lib/python3.8/site-packages/tensorflow-2.6.0-py3.8-linux-x86_64.egg/tensorflow/python/framework/ops.py", line 489, in _disallow_when_autograph_enabled raise errors.OperatorNotAllowedInGraphError( tensorflow.python.framework.errors_impl.OperatorNotAllowedInGraphError: iterating over tf.Tensor is not allowed: AutoGraph did convert this function. This might indicate you are trying to use an unsupported feature.

827346462 avatar Aug 24 '21 09:08 827346462

@827346462 Please refer to this link and let us know if it helps? In order to expedite the trouble-shooting process, please provide the Code snippet which you are using. Thanks!

kumariko avatar Aug 24 '21 10:08 kumariko

@kumariko I try reinstall setup.py. i l always met the version not match. suach as: image

I use object_detection/packages/tf2/setup.py use python setup.py install in TensorFlow/models/research

827346462 avatar Aug 25 '21 01:08 827346462