Traceback (most recent call last):
File "/home/justinchu/dev/onnxscript/test.py", line 6, in <module>
ep = torch.export.export(model, (x,))
File "/home/justinchu/anaconda3/envs/onnx/lib/python3.13/site-packages/torch/export/__init__.py", line 311, in export
raise e
File "/home/justinchu/anaconda3/envs/onnx/lib/python3.13/site-packages/torch/export/__init__.py", line 277, in export
return _export(
mod,
...<6 lines>...
prefer_deferred_runtime_asserts_over_guards=prefer_deferred_runtime_asserts_over_guards,
)
File "/home/justinchu/anaconda3/envs/onnx/lib/python3.13/site-packages/torch/export/_trace.py", line 1229, in wrapper
raise e
File "/home/justinchu/anaconda3/envs/onnx/lib/python3.13/site-packages/torch/export/_trace.py", line 1195, in wrapper
ep = fn(*args, **kwargs)
File "/home/justinchu/anaconda3/envs/onnx/lib/python3.13/site-packages/torch/export/exported_program.py", line 124, in wrapper
return fn(*args, **kwargs)
File "/home/justinchu/anaconda3/envs/onnx/lib/python3.13/site-packages/torch/export/_trace.py", line 2336, in _export
ep = _export_for_training(
mod,
...<5 lines>...
prefer_deferred_runtime_asserts_over_guards=prefer_deferred_runtime_asserts_over_guards,
)
File "/home/justinchu/anaconda3/envs/onnx/lib/python3.13/site-packages/torch/export/_trace.py", line 1229, in wrapper
raise e
File "/home/justinchu/anaconda3/envs/onnx/lib/python3.13/site-packages/torch/export/_trace.py", line 1195, in wrapper
ep = fn(*args, **kwargs)
File "/home/justinchu/anaconda3/envs/onnx/lib/python3.13/site-packages/torch/export/exported_program.py", line 124, in wrapper
return fn(*args, **kwargs)
File "/home/justinchu/anaconda3/envs/onnx/lib/python3.13/site-packages/torch/export/_trace.py", line 2144, in _export_for_training
export_artifact = export_func(
mod=mod,
...<6 lines>...
_to_aten_func=_export_to_aten_ir_make_fx,
)
File "/home/justinchu/anaconda3/envs/onnx/lib/python3.13/site-packages/torch/export/_trace.py", line 2075, in _non_strict_export
aten_export_artifact = _to_aten_func(
patched_mod,
...<5 lines>...
transform=_tuplify_outputs,
)
File "/home/justinchu/anaconda3/envs/onnx/lib/python3.13/site-packages/torch/export/_trace.py", line 1863, in _export_to_aten_ir_make_fx
gm, graph_signature = transform(_make_fx_helper)(
~~~~~~~~~~~~~~~~~~~~~~~~~~^
stack,
^^^^^^
...<3 lines>...
kwargs=fake_kwargs,
^^^^^^^^^^^^^^^^^^^
)
^
File "/home/justinchu/anaconda3/envs/onnx/lib/python3.13/site-packages/torch/export/_trace.py", line 1993, in _aot_export_non_strict
gm, sig = aot_export(stack, wrapped_mod, args, kwargs=kwargs, **flags)
~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/justinchu/anaconda3/envs/onnx/lib/python3.13/site-packages/torch/export/_trace.py", line 1775, in _make_fx_helper
gm = make_fx(
...<2 lines>...
pre_dispatch=True,
)(*flat_args)
File "/home/justinchu/anaconda3/envs/onnx/lib/python3.13/site-packages/torch/fx/experimental/proxy_tensor.py", line 2581, in wrapped
return make_fx_tracer.trace(f, *args)
~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^
File "/home/justinchu/anaconda3/envs/onnx/lib/python3.13/site-packages/torch/fx/experimental/proxy_tensor.py", line 2508, in trace
return self._trace_inner(f, *args)
~~~~~~~~~~~~~~~~~^^^^^^^^^^
File "/home/justinchu/anaconda3/envs/onnx/lib/python3.13/site-packages/torch/fx/experimental/proxy_tensor.py", line 2470, in _trace_inner
t = dispatch_trace(
wrap_key(func, args, self.fx_tracer, self.pre_dispatch),
tracer=self.fx_tracer,
concrete_args=tuple(phs),
)
File "/home/justinchu/anaconda3/envs/onnx/lib/python3.13/site-packages/torch/_compile.py", line 54, in inner
return disable_fn(*args, **kwargs)
File "/home/justinchu/anaconda3/envs/onnx/lib/python3.13/site-packages/torch/_dynamo/eval_frame.py", line 1129, in _fn
return fn(*args, **kwargs)
File "/home/justinchu/anaconda3/envs/onnx/lib/python3.13/site-packages/torch/fx/experimental/proxy_tensor.py", line 1443, in dispatch_trace
graph = tracer.trace(root, concrete_args) # type: ignore[arg-type]
File "/home/justinchu/anaconda3/envs/onnx/lib/python3.13/site-packages/torch/fx/experimental/proxy_tensor.py", line 2062, in trace
res = super().trace(root, concrete_args)
File "/home/justinchu/anaconda3/envs/onnx/lib/python3.13/site-packages/torch/fx/_symbolic_trace.py", line 869, in trace
(self.create_arg(fn(*args)),),
~~^^^^^^^
File "/home/justinchu/anaconda3/envs/onnx/lib/python3.13/site-packages/torch/fx/experimental/proxy_tensor.py", line 1501, in wrapped
out = f(*tensors) # type:ignore[call-arg]
File "<string>", line 1, in <lambda>
File "/home/justinchu/anaconda3/envs/onnx/lib/python3.13/site-packages/torch/export/_trace.py", line 1662, in wrapped_fn
return tuple(flat_fn(*args))
~~~~~~~^^^^^^^
File "/home/justinchu/anaconda3/envs/onnx/lib/python3.13/site-packages/torch/_functorch/_aot_autograd/utils.py", line 192, in flat_fn
tree_out = fn(*args, **kwargs)
File "/home/justinchu/anaconda3/envs/onnx/lib/python3.13/site-packages/torch/_functorch/_aot_autograd/graph_capture_wrappers.py", line 1369, in functional_call
out = mod(*args[params_len:], **kwargs)
File "/home/justinchu/anaconda3/envs/onnx/lib/python3.13/site-packages/torch/fx/_symbolic_trace.py", line 844, in module_call_wrapper
return self.call_module(mod, forward, args, kwargs)
~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/justinchu/anaconda3/envs/onnx/lib/python3.13/site-packages/torch/fx/experimental/proxy_tensor.py", line 2149, in call_module
return Tracer.call_module(self, m, forward, args, kwargs)
~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/justinchu/anaconda3/envs/onnx/lib/python3.13/site-packages/torch/fx/_symbolic_trace.py", line 560, in call_module
ret_val = forward(*args, **kwargs)
File "/home/justinchu/anaconda3/envs/onnx/lib/python3.13/site-packages/torch/fx/_symbolic_trace.py", line 837, in forward
return _orig_module_call(mod, *args, **kwargs)
File "/home/justinchu/anaconda3/envs/onnx/lib/python3.13/site-packages/torch/nn/modules/module.py", line 1783, in _wrapped_call_impl
return self._call_impl(*args, **kwargs)
~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
File "/home/justinchu/anaconda3/envs/onnx/lib/python3.13/site-packages/torch/nn/modules/module.py", line 1794, in _call_impl
return forward_call(*args, **kwargs)
File "/home/justinchu/anaconda3/envs/onnx/lib/python3.13/site-packages/torch/export/_trace.py", line 1977, in forward
tree_out = mod(*args, **kwargs)
File "/home/justinchu/anaconda3/envs/onnx/lib/python3.13/site-packages/torch/fx/_symbolic_trace.py", line 844, in module_call_wrapper
return self.call_module(mod, forward, args, kwargs)
~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/justinchu/anaconda3/envs/onnx/lib/python3.13/site-packages/torch/fx/experimental/proxy_tensor.py", line 2149, in call_module
return Tracer.call_module(self, m, forward, args, kwargs)
~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/justinchu/anaconda3/envs/onnx/lib/python3.13/site-packages/torch/fx/_symbolic_trace.py", line 560, in call_module
ret_val = forward(*args, **kwargs)
File "/home/justinchu/anaconda3/envs/onnx/lib/python3.13/site-packages/torch/fx/_symbolic_trace.py", line 837, in forward
return _orig_module_call(mod, *args, **kwargs)
File "/home/justinchu/anaconda3/envs/onnx/lib/python3.13/site-packages/torch/nn/modules/module.py", line 1783, in _wrapped_call_impl
return self._call_impl(*args, **kwargs)
~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
File "/home/justinchu/anaconda3/envs/onnx/lib/python3.13/site-packages/torch/nn/modules/module.py", line 1794, in _call_impl
return forward_call(*args, **kwargs)
File "/home/justinchu/anaconda3/envs/onnx/lib/python3.13/site-packages/torchvision/models/detection/generalized_rcnn.py", line 117, in forward
proposals, proposal_losses = self.rpn(images, features, targets)
~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/justinchu/anaconda3/envs/onnx/lib/python3.13/site-packages/torch/fx/_symbolic_trace.py", line 844, in module_call_wrapper
return self.call_module(mod, forward, args, kwargs)
~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/justinchu/anaconda3/envs/onnx/lib/python3.13/site-packages/torch/fx/experimental/proxy_tensor.py", line 2149, in call_module
return Tracer.call_module(self, m, forward, args, kwargs)
~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/justinchu/anaconda3/envs/onnx/lib/python3.13/site-packages/torch/fx/_symbolic_trace.py", line 560, in call_module
ret_val = forward(*args, **kwargs)
File "/home/justinchu/anaconda3/envs/onnx/lib/python3.13/site-packages/torch/fx/_symbolic_trace.py", line 837, in forward
return _orig_module_call(mod, *args, **kwargs)
File "/home/justinchu/anaconda3/envs/onnx/lib/python3.13/site-packages/torch/nn/modules/module.py", line 1783, in _wrapped_call_impl
return self._call_impl(*args, **kwargs)
~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
File "/home/justinchu/anaconda3/envs/onnx/lib/python3.13/site-packages/torch/nn/modules/module.py", line 1794, in _call_impl
return forward_call(*args, **kwargs)
File "/home/justinchu/anaconda3/envs/onnx/lib/python3.13/site-packages/torchvision/models/detection/rpn.py", line 372, in forward
boxes, scores = self.filter_proposals(proposals, objectness, images.image_sizes, num_anchors_per_level)
~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/justinchu/anaconda3/envs/onnx/lib/python3.13/site-packages/torchvision/models/detection/rpn.py", line 289, in filter_proposals
keep = box_ops.batched_nms(boxes, scores, lvl, self.nms_thresh)
File "/home/justinchu/anaconda3/envs/onnx/lib/python3.13/site-packages/torchvision/ops/boxes.py", line 80, in batched_nms
if boxes.numel() > (4000 if boxes.device.type == "cpu" else 100_000) and not torchvision._is_tracing():
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/justinchu/anaconda3/envs/onnx/lib/python3.13/site-packages/torch/__init__.py", line 763, in __bool__
return self.node.bool_()
~~~~~~~~~~~~~~~^^
File "/home/justinchu/anaconda3/envs/onnx/lib/python3.13/site-packages/torch/fx/experimental/sym_node.py", line 602, in bool_
return self.guard_bool("", 0)
~~~~~~~~~~~~~~~^^^^^^^
File "/home/justinchu/anaconda3/envs/onnx/lib/python3.13/site-packages/torch/fx/experimental/sym_node.py", line 538, in guard_bool
r = self.evaluate()
File "/home/justinchu/anaconda3/envs/onnx/lib/python3.13/site-packages/torch/fx/experimental/sym_node.py", line 512, in evaluate
return self.shape_env.evaluate_sym_node(self, size_oblivious)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^
File "/home/justinchu/anaconda3/envs/onnx/lib/python3.13/site-packages/torch/fx/experimental/symbolic_shapes.py", line 7308, in evaluate_sym_node
return self.evaluate_expr(
~~~~~~~~~~~~~~~~~~^
sym_node.expr,
^^^^^^^^^^^^^^
...<3 lines>...
fallback_value=fallback_value,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/home/justinchu/anaconda3/envs/onnx/lib/python3.13/site-packages/torch/fx/experimental/symbolic_shapes.py", line 7408, in evaluate_expr
return self._inner_evaluate_expr(
~~~~~~~~~~~~~~~~~~~~~~~~~^
orig_expr,
^^^^^^^^^^
...<5 lines>...
fallback_value,
^^^^^^^^^^^^^^^
)
^
File "/home/justinchu/anaconda3/envs/onnx/lib/python3.13/site-packages/torch/fx/experimental/recording.py", line 273, in wrapper
return retlog(fn(*args, **kwargs))
~~^^^^^^^^^^^^^^^^^
File "/home/justinchu/anaconda3/envs/onnx/lib/python3.13/site-packages/torch/fx/experimental/symbolic_shapes.py", line 7431, in _inner_evaluate_expr
return self._evaluate_expr(
~~~~~~~~~~~~~~~~~~~^
orig_expr,
^^^^^^^^^^
...<4 lines>...
forcing_spec=forcing_spec,
^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/home/justinchu/anaconda3/envs/onnx/lib/python3.13/site-packages/torch/fx/experimental/symbolic_shapes.py", line 7650, in _evaluate_expr
raise self._make_data_dependent_error(
...<3 lines>...
)
torch.fx.experimental.symbolic_shapes.GuardOnDataDependentSymNode: Could not guard on data-dependent expression 4*u1 > 4000 (unhinted: 4*u1 > 4000). (Size-like symbols: u1)
consider using data-dependent friendly APIs such as guard_or_false, guard_or_true and statically_known_trueCaused by: (torchvision/ops/boxes.py:80 in batched_nms)
For more information, run with TORCH_LOGS="dynamic"
For extended logs when we create symbols, also add TORCHDYNAMO_EXTENDED_DEBUG_CREATE_SYMBOL="u1"
If you suspect the guard was triggered from C++, add TORCHDYNAMO_EXTENDED_DEBUG_CPP=1
For more debugging help, see https://docs.google.com/document/d/1HSuTTVvYH1pTew89Rtpeu84Ht3nQEFTYhAX3Ypa_xJs/edit?usp=sharing
For C++ stack trace, run with TORCHDYNAMO_EXTENDED_DEBUG_CPP=1
The error above occurred when calling torch.export.export. If you would like to view some more information about this error, and get a list of all other errors that may occur in your export call, you can replace your `export()` call with `draft_export()`.
🐛 Describe the bug
Versions