tensorflow / tensorflow/models

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

Open
#10,220 2 comments 0 reactions 3 assignees View on GitHub

@rachellj218 is already working on this.

Since Aug 25, 2021.

models:research type:bug
Dominant language
Python
Stars
77.7k
Forks
44.8k
PR merge metrics
No merged PRs in 30d

Description

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.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.