Torch.onnx.export crash when converting ssdlite320_mobilenet_v3_large

Converting ssdlite320_mobilenet_v3_large to ONNX using torch.onnx.export keeps failing. Any idea how to fix it (without modifying original model)?

Tools versions:

Python: 3.12.3

torch: 2.9.0

torchvision: 0.24.0

onnxscript: 0.5.6

Code:

import torch

import torchvision

torch.onnx.export(

torchvision.models.detection.ssdlite320_mobilenet_v3_large(weights=“DEFAULT”).eval(),
torch.randn(1, 3, 320, 320),
“ssdlite320_mobilenet_v3_large.onnx”,
export_params=True,
do_constant_folding=True,
input_names=[‘input’],
output_names=[‘output’],
dynamic_axes={‘input’: {0: ‘batch’, 2: ‘height’, 3: ‘width’},
‘output’: {0: ‘num_detections’}}
)

Log messages (truncated)

[torch.onnx] Obtain model graph for SSD([...] with torch.export.export(..., strict=False)
[torch.onnx] Obtain model graph for SSD([...] with torch.export.export(..., strict=False):cross_mark:
[torch.onnx] Obtain model graph for SSD([...] with torch.export.export(..., strict=True)
[torch.onnx] Obtain model graph for SSD([...] with torch.export.export(..., strict=True):cross_mark:
Traceback (most recent call last):
File “/home/dev/.venvs/torch/lib/python3.12/site-packages/torch/onnx/_internal/exporter/_capture_strategies.py”, line 118, in call
exported_program = self._capture(model, args, kwargs, dynamic_shapes)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/home/dev/.venvs/torch/lib/python3.12/site-packages/torch/onnx/_internal/exporter/_capture_strategies.py”, line 210, in _capture
return torch.export.export(
^^^^^^^^^^^^^^^^^^^^
File “/home/dev/.venvs/torch/lib/python3.12/site-packages/torch/export/init.py”, line 311, in export
raise e
File “/home/dev/.venvs/torch/lib/python3.12/site-packages/torch/export/init.py”, line 277, in export
return _export(
^^^^^^^^
File “/home/dev/.venvs/torch/lib/python3.12/site-packages/torch/export/_trace.py”, line 1163, in wrapper
raise e
File “/home/dev/.venvs/torch/lib/python3.12/site-packages/torch/export/_trace.py”, line 1129, in wrapper
ep = fn(args, **kwargs)
^^^^^^^^^^^^^^^^^^^
File “/home/dev/.venvs/torch/lib/python3.12/site-packages/torch/export/exported_program.py”, line 124, in wrapper
return fn(args, **kwargs)
^^^^^^^^^^^^^^^^^^^
File “/home/dev/.venvs/torch/lib/python3.12/site-packages/torch/export/_trace.py”, line 2255, in _export
ep = _export_for_training(
^^^^^^^^^^^^^^^^^^^^^
File “/home/dev/.venvs/torch/lib/python3.12/site-packages/torch/export/_trace.py”, line 1163, in wrapper
raise e
File “/home/dev/.venvs/torch/lib/python3.12/site-packages/torch/export/_trace.py”, line 1129, in wrapper
ep = fn(args, **kwargs)
^^^^^^^^^^^^^^^^^^^
File “/home/dev/.venvs/torch/lib/python3.12/site-packages/torch/export/exported_program.py”, line 124, in wrapper
return fn(args, **kwargs)
^^^^^^^^^^^^^^^^^^^
File “/home/dev/.venvs/torch/lib/python3.12/site-packages/torch/export/_trace.py”, line 2071, in _export_for_training
export_artifact = export_func(
^^^^^^^^^^^^
File “/home/dev/.venvs/torch/lib/python3.12/site-packages/torch/export/_trace.py”, line 2002, in _non_strict_export
aten_export_artifact = _to_aten_func( # type: ignore[operator]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/home/dev/.venvs/torch/lib/python3.12/site-packages/torch/export/_trace.py”, line 1793, in _export_to_aten_ir_make_fx
gm, graph_signature = transform(_make_fx_helper)(
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/home/dev/.venvs/torch/lib/python3.12/site-packages/torch/export/_trace.py”, line 1922, in _aot_export_non_strict
gm, sig = aot_export(wrapped_mod, args, kwargs=kwargs, **flags)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/home/dev/.venvs/torch/lib/python3.12/site-packages/torch/export/_trace.py”, line 1706, in _make_fx_helper
gm = make_fx(
^^^^^^^^
File “/home/dev/.venvs/torch/lib/python3.12/site-packages/torch/fx/experimental/proxy_tensor.py”, line 2429, in wrapped
return make_fx_tracer.trace(f, args)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/home/dev/.venvs/torch/lib/python3.12/site-packages/torch/fx/experimental/proxy_tensor.py”, line 2356, in trace
return self._trace_inner(f, args)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/home/dev/.venvs/torch/lib/python3.12/site-packages/torch/fx/experimental/proxy_tensor.py”, line 2318, in _trace_inner
t = dispatch_trace(
^^^^^^^^^^^^^^^
File “/home/dev/.venvs/torch/lib/python3.12/site-packages/torch/_compile.py”, line 53, in inner
return disable_fn(args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/home/dev/.venvs/torch/lib/python3.12/site-packages/torch/_dynamo/eval_frame.py”, line 1044, in _fn
return fn(args, **kwargs)
^^^^^^^^^^^^^^^^^^^
File “/home/dev/.venvs/torch/lib/python3.12/site-packages/torch/fx/experimental/proxy_tensor.py”, line 1303, in dispatch_trace
graph = tracer.trace(root, concrete_args) # type: ignore[arg-type]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/home/dev/.venvs/torch/lib/python3.12/site-packages/torch/fx/experimental/proxy_tensor.py”, line 1908, in trace
res = super().trace(root, concrete_args)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/home/dev/.venvs/torch/lib/python3.12/site-packages/torch/fx/_symbolic_trace.py”, line 868, in trace
(self.create_arg(fn(args)),),
^^^^^^^^^
File “/home/dev/.venvs/torch/lib/python3.12/site-packages/torch/fx/experimental/proxy_tensor.py”, line 1361, in wrapped
out = f(tensors) # type:ignore[call-arg]
^^^^^^^^^^^
File “”, line 1, in
File “/home/dev/.venvs/torch/lib/python3.12/site-packages/torch/export/_trace.py”, line 1593, in wrapped_fn
return tuple(flat_fn(args))
^^^^^^^^^^^^^^
File “/home/dev/.venvs/torch/lib/python3.12/site-packages/torch/_functorch/_aot_autograd/utils.py”, line 187, in flat_fn
tree_out = fn(args, **kwargs)
^^^^^^^^^^^^^^^^^^^
File “/home/dev/.venvs/torch/lib/python3.12/site-packages/torch/_functorch/_aot_autograd/graph_capture_wrappers.py”, line 1354, in functional_call
out = mod(args[params_len:], **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/home/dev/.venvs/torch/lib/python3.12/site-packages/torch/fx/_symbolic_trace.py”, line 843, in module_call_wrapper
return self.call_module(mod, forward, args, kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/home/dev/.venvs/torch/lib/python3.12/site-packages/torch/fx/experimental/proxy_tensor.py”, line 1997, in call_module
return Tracer.call_module(self, m, forward, args, kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/home/dev/.venvs/torch/lib/python3.12/site-packages/torch/fx/_symbolic_trace.py”, line 560, in call_module
ret_val = forward(args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^
File “/home/dev/.venvs/torch/lib/python3.12/site-packages/torch/fx/_symbolic_trace.py”, line 836, in forward
return _orig_module_call(mod, args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/home/dev/.venvs/torch/lib/python3.12/site-packages/torch/nn/modules/module.py”, line 1775, in _wrapped_call_impl
return self._call_impl(args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/home/dev/.venvs/torch/lib/python3.12/site-packages/torch/nn/modules/module.py”, line 1786, in _call_impl
return forward_call(args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/home/dev/.venvs/torch/lib/python3.12/site-packages/torch/export/_trace.py”, line 1906, in forward
tree_out = mod(args, **kwargs)
^^^^^^^^^^^^^^^^^^^^
File “/home/dev/.venvs/torch/lib/python3.12/site-packages/torch/fx/_symbolic_trace.py”, line 843, in module_call_wrapper
return self.call_module(mod, forward, args, kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/home/dev/.venvs/torch/lib/python3.12/site-packages/torch/fx/experimental/proxy_tensor.py”, line 1997, in call_module
return Tracer.call_module(self, m, forward, args, kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/home/dev/.venvs/torch/lib/python3.12/site-packages/torch/fx/_symbolic_trace.py”, line 560, in call_module
ret_val = forward(args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^
File “/home/dev/.venvs/torch/lib/python3.12/site-packages/torch/fx/_symbolic_trace.py”, line 836, in forward
return _orig_module_call(mod, args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/home/dev/.venvs/torch/lib/python3.12/site-packages/torch/nn/modules/module.py”, line 1775, in _wrapped_call_impl
return self._call_impl(args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/home/dev/.venvs/torch/lib/python3.12/site-packages/torch/nn/modules/module.py”, line 1786, in call_impl
return forward_call(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/home/dev/.venvs/torch/lib/python3.12/site-packages/torchvision/models/detection/ssd.py”, line 404, in forward
detections = self.postprocess_detections(head_outputs, anchors, images.image_sizes)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/home/dev/.venvs/torch/lib/python3.12/site-packages/torchvision/models/detection/ssd.py”, line 453, in postprocess_detections
keep = box_ops.batched_nms(image_boxes, image_scores, image_labels, self.nms_thresh)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/home/dev/.venvs/torch/lib/python3.12/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/dev/.venvs/torch/lib/python3.12/site-packages/torch/init.py”, line 762, in bool
return self.node.bool
()
^^^^^^^^^^^^^^^^^
File “/home/dev/.venvs/torch/lib/python3.12/site-packages/torch/fx/experimental/sym_node.py”, line 616, in bool
return self.guard_bool(“”, 0)
^^^^^^^^^^^^^^^^^^^^^^
File “/home/dev/.venvs/torch/lib/python3.12/site-packages/torch/fx/experimental/sym_node.py”, line 538, in guard_bool
r = self.evaluate()
^^^^^^^^^^^^^^^
File “/home/dev/.venvs/torch/lib/python3.12/site-packages/torch/fx/experimental/sym_node.py”, line 512, in evaluate
return self.shape_env.evaluate_sym_node(self, size_oblivious)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/home/dev/.venvs/torch/lib/python3.12/site-packages/torch/fx/experimental/symbolic_shapes.py”, line 7233, in evaluate_sym_node
return self.evaluate_expr(
^^^^^^^^^^^^^^^^^^^
File “/home/dev/.venvs/torch/lib/python3.12/site-packages/torch/fx/experimental/symbolic_shapes.py”, line 7333, in evaluate_expr
return self._inner_evaluate_expr(
^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/home/dev/.venvs/torch/lib/python3.12/site-packages/torch/fx/experimental/recording.py”, line 272, in wrapper
return retlog(fn(args, **kwargs))
^^^^^^^^^^^^^^^^^^^
File “/home/dev/.venvs/torch/lib/python3.12/site-packages/torch/fx/experimental/symbolic_shapes.py”, line 7356, in _inner_evaluate_expr
return self._evaluate_expr(
^^^^^^^^^^^^^^^^^^^^
File “/home/dev/.venvs/torch/lib/python3.12/site-packages/torch/fx/experimental/symbolic_shapes.py”, line 7574, in _evaluate_expr
raise self._make_data_dependent_error(
torch.fx.experimental.symbolic_shapes.GuardOnDataDependentSymNode: Could not guard on data-dependent expression 4
Min(300, u0) + 4Min(300, u1) + 4Min(300, u10) + 4Min(300, u11) + 4Min(300, u12) + 4Min(300, u13) + 4Min(300, u14) + 4Min(300, u15) + 4Min(300, u16) + 4Min(300, u17) + 4Min(300, u18) + 4Min(300, u19) + 4Min(300, u2) + 4Min(300, u20) + 4Min(300, u21) + 4Min(300, u22) + 4Min(300, u23) + 4Min(300, u24) + 4Min(300, u25) + 4Min(300, u26) + 4Min(300, u27) + 4Min(300, u28) + 4Min(300, u29) + 4Min(300, u3) + 4Min(300, u30) + 4Min(300, u31) + 4Min(300, u32) + 4Min(300, u33) + 4Min(300, u34) + 4Min(300, u35) + 4Min(300, u36) + 4Min(300, u37) + 4Min(300, u38) + 4Min(300, u39) + 4Min(300, u4) + 4Min(300, u40) + 4Min(300, u41) + 4Min(300, u42) + 4Min(300, u43) + 4Min(300, u44) + 4Min(300, u45) + 4Min(300, u46) + 4Min(300, u47) + 4Min(300, u48) + 4Min(300, u49) + 4Min(300, u5) + 4Min(300, u50) + 4Min(300, u51) + 4Min(300, u52) + 4Min(300, u53) + 4Min(300, u54) + 4Min(300, u55) + 4Min(300, u56) + 4Min(300, u57) + 4Min(300, u58) + 4Min(300, u59) + 4Min(300, u6) + 4Min(300, u60) + 4Min(300, u61) + 4Min(300, u62) + 4Min(300, u63) + 4Min(300, u64) + 4Min(300, u65) + 4Min(300, u66) + 4Min(300, u67) + 4Min(300, u68) + 4Min(300, u69) + 4Min(300, u7) + 4Min(300, u70) + 4Min(300, u71) + 4Min(300, u72) + 4Min(300, u73) + 4Min(300, u74) + 4Min(300, u75) + 4Min(300, u76) + 4Min(300, u77) + 4Min(300, u78) + 4Min(300, u79) + 4Min(300, u8) + 4Min(300, u80) + 4Min(300, u81) + 4Min(300, u82) + 4Min(300, u83) + 4Min(300, u84) + 4Min(300, u85) + 4Min(300, u86) + 4Min(300, u87) + 4Min(300, u88) + 4Min(300, u89) + 4Min(300, u9) > 4000 (unhinted: 4Min(300, u0) + 4Min(300, u1) + 4Min(300, u10) + 4Min(300, u11) + 4Min(300, u12) + 4Min(300, u13) + 4Min(300, u14) + 4Min(300, u15) + 4Min(300, u16) + 4Min(300, u17) + 4Min(300, u18) + 4Min(300, u19) + 4Min(300, u2) + 4Min(300, u20) + 4Min(300, u21) + 4Min(300, u22) + 4Min(300, u23) + 4Min(300, u24) + 4Min(300, u25) + 4Min(300, u26) + 4Min(300, u27) + 4Min(300, u28) + 4Min(300, u29) + 4Min(300, u3) + 4Min(300, u30) + 4Min(300, u31) + 4Min(300, u32) + 4Min(300, u33) + 4Min(300, u34) + 4Min(300, u35) + 4Min(300, u36) + 4Min(300, u37) + 4Min(300, u38) + 4Min(300, u39) + 4Min(300, u4) + 4Min(300, u40) + 4Min(300, u41) + 4Min(300, u42) + 4Min(300, u43) + 4Min(300, u44) + 4Min(300, u45) + 4Min(300, u46) + 4Min(300, u47) + 4Min(300, u48) + 4Min(300, u49) + 4Min(300, u5) + 4Min(300, u50) + 4Min(300, u51) + 4Min(300, u52) + 4Min(300, u53) + 4Min(300, u54) + 4Min(300, u55) + 4Min(300, u56) + 4Min(300, u57) + 4Min(300, u58) + 4Min(300, u59) + 4Min(300, u6) + 4Min(300, u60) + 4Min(300, u61) + 4Min(300, u62) + 4Min(300, u63) + 4Min(300, u64) + 4Min(300, u65) + 4Min(300, u66) + 4Min(300, u67) + 4Min(300, u68) + 4Min(300, u69) + 4Min(300, u7) + 4Min(300, u70) + 4Min(300, u71) + 4Min(300, u72) + 4Min(300, u73) + 4Min(300, u74) + 4Min(300, u75) + 4Min(300, u76) + 4Min(300, u77) + 4Min(300, u78) + 4Min(300, u79) + 4Min(300, u8) + 4Min(300, u80) + 4Min(300, u81) + 4Min(300, u82) + 4Min(300, u83) + 4Min(300, u84) + 4Min(300, u85) + 4Min(300, u86) + 4Min(300, u87) + 4Min(300, u88) + 4Min(300, u89) + 4Min(300, u9) > 4000). (Size-like symbols: u4, u14, u63, u10, u8, u17, u0, u37, u43, u25, u59, u5, u41, u75, u1, u79, u13, u31, u61, u15, u11, u44, u3, u57, u32, u78, u16, u56, u74, u34, u58, u69, u84, u77, u53, u19, u82, u21, u46, u62, u87, u23, u88, u7, u89, u67, u54, u36, u26, u40, u45, u48, u55, u28, u22, u33, u39, u64, u72, u71, u68, u6, u9, u27, u20, u12, u86, u38, u65, u49, u2, u52, u51, u30, u47, u60, u18, u73, u66, u85, u81, u24, u70, u76, u29, u42, u80, u83, u50, u35)

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=“u4,u14,u63,u10,u8,u17,u0,u37,u43,u25,u59,u5,u41,u75,u1,u79,u13,u31,u61,u15,u11,u44,u3,u57,u32,u78,u16,u56,u74,u34,u58,u69,u84,u77,u53,u19,u82,u21,u46,u62,u87,u23,u88,u7,u89,u67,u54,u36,u26,u40,u45,u48,u55,u28,u22,u33,u39,u64,u72,u71,u68,u6,u9,u27,u20,u12,u86,u38,u65,u49,u2,u52,u51,u30,u47,u60,u18,u73,u66,u85,u81,u24,u70,u76,u29,u42,u80,u83,u50,u35”
If you suspect the guard was triggered from C++, add TORCHDYNAMO_EXTENDED_DEBUG_CPP=1
For more debugging help, see

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().

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File “/home/dev/convert.py”, line 3, in
torch.onnx.export(
^^^^^^^^^^^^^^^^^^
File “/home/dev/.venvs/torch/lib/python3.12/site-packages/torch/onnx/init.py”, line 296, in export
return _compat.export_compat(
^^^^^^^^^^^^^^^^^^^^^^
File “/home/dev/.venvs/torch/lib/python3.12/site-packages/torch/onnx/_internal/exporter/_compat.py”, line 143, in export_compat
onnx_program = _core.export(
^^^^^^^^^^^^^
File “/home/dev/.venvs/torch/lib/python3.12/site-packages/torch/onnx/_internal/exporter/_flags.py”, line 23, in wrapper
return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
File “/home/dev/.venvs/torch/lib/python3.12/site-packages/torch/onnx/_internal/exporter/_core.py”, line 1385, in export
raise _errors.TorchExportError(
torch.onnx._internal.exporter._errors.TorchExportError: Failed to export the model with torch.export. e[96mThis is step 1/3e[0m of exporting the model to ONNX. Next steps:

  • Modify the model code for torch.export.export to succeed. Refer to ExportDB — PyTorch 2.9 documentation for more information.
  • Debug torch.export.export and submit a PR to PyTorch.
  • Create an issue in the PyTorch GitHub repository against the e[96mtorch.exporte[0m component and attach the full error stack as well as reproduction scripts.

Exception summary

<class ‘torch.fx.experimental.symbolic_shapes.GuardOnDataDependentSymNode’>: Could not guard on data-dependent expression 4Min(300, u0) + 4Min(300, u1) + 4Min(300, u10) + 4Min(300, u11) + 4Min(300, u12) + 4Min(300, u13) + 4Min(300, u14) + 4Min(300, u15) + 4Min(300, u16) + 4Min(300, u17) + 4Min(300, u18) + 4Min(300, u19) + 4Min(300, u2) + 4Min(300, u20) + 4Min(300, u21) + 4Min(300, u22) + 4Min(300, u23) + 4Min(300, u24) + 4Min(300, u25) + 4Min(300, u26) + 4Min(300, u27) + 4Min(300, u28) + 4Min(300, u29) + 4Min(300, u3) + 4Min(300, u30) + 4Min(300, u31) + 4Min(300, u32) + 4Min(300, u33) + 4Min(300, u34) + 4Min(300, u35) + 4Min(300, u36) + 4Min(300, u37) + 4Min(300, u38) + 4Min(300, u39) + 4Min(300, u4) + 4Min(300, u40) + 4Min(300, u41) + 4Min(300, u42) + 4Min(300, u43) + 4Min(300, u44) + 4Min(300, u45) + 4Min(300, u46) + 4Min(300, u47) + 4Min(300, u48) + 4Min(300, u49) + 4Min(300, u5) + 4Min(300, u50) + 4Min(300, u51) + 4Min(300, u52) + 4Min(300, u53) + 4Min(300, u54) + 4Min(300, u55) + 4Min(300, u56) + 4Min(300, u57) + 4Min(300, u58) + 4Min(300, u59) + 4Min(300, u6) + 4Min(300, u60) + 4Min(300, u61) + 4Min(300, u62) + 4Min(300, u63) + 4Min(300, u64) + 4Min(300, u65) + 4Min(300, u66) + 4Min(300, u67) + 4Min(300, u68) + 4Min(300, u69) + 4Min(300, u7) + 4Min(300, u70) + 4Min(300, u71) + 4Min(300, u72) + 4Min(300, u73) + 4Min(300, u74) + 4Min(300, u75) + 4Min(300, u76) + 4Min(300, u77) + 4Min(300, u78) + 4Min(300, u79) + 4Min(300, u8) + 4Min(300, u80) + 4Min(300, u81) + 4Min(300, u82) + 4Min(300, u83) + 4Min(300, u84) + 4Min(300, u85) + 4Min(300, u86) + 4Min(300, u87) + 4Min(300, u88) + 4Min(300, u89) + 4Min(300, u9) > 4000 (unhinted: 4Min(300, u0) + 4Min(300, u1) + 4Min(300, u10) + 4Min(300, u11) + 4Min(300, u12) + 4Min(300, u13) + 4Min(300, u14) + 4Min(300, u15) + 4Min(300, u16) + 4Min(300, u17) + 4Min(300, u18) + 4Min(300, u19) + 4Min(300, u2) + 4Min(300, u20) + 4Min(300, u21) + 4Min(300, u22) + 4Min(300, u23) + 4Min(300, u24) + 4Min(300, u25) + 4Min(300, u26) + 4Min(300, u27) + 4Min(300, u28) + 4Min(300, u29) + 4Min(300, u3) + 4Min(300, u30) + 4Min(300, u31) + 4Min(300, u32) + 4Min(300, u33) + 4Min(300, u34) + 4Min(300, u35) + 4Min(300, u36) + 4Min(300, u37) + 4Min(300, u38) + 4Min(300, u39) + 4Min(300, u4) + 4Min(300, u40) + 4Min(300, u41) + 4Min(300, u42) + 4Min(300, u43) + 4Min(300, u44) + 4Min(300, u45) + 4Min(300, u46) + 4Min(300, u47) + 4Min(300, u48) + 4Min(300, u49) + 4Min(300, u5) + 4Min(300, u50) + 4Min(300, u51) + 4Min(300, u52) + 4Min(300, u53) + 4Min(300, u54) + 4Min(300, u55) + 4Min(300, u56) + 4Min(300, u57) + 4Min(300, u58) + 4Min(300, u59) + 4Min(300, u6) + 4Min(300, u60) + 4Min(300, u61) + 4Min(300, u62) + 4Min(300, u63) + 4Min(300, u64) + 4Min(300, u65) + 4Min(300, u66) + 4Min(300, u67) + 4Min(300, u68) + 4Min(300, u69) + 4Min(300, u7) + 4Min(300, u70) + 4Min(300, u71) + 4Min(300, u72) + 4Min(300, u73) + 4Min(300, u74) + 4Min(300, u75) + 4Min(300, u76) + 4Min(300, u77) + 4Min(300, u78) + 4Min(300, u79) + 4Min(300, u8) + 4Min(300, u80) + 4Min(300, u81) + 4Min(300, u82) + 4Min(300, u83) + 4Min(300, u84) + 4Min(300, u85) + 4Min(300, u86) + 4Min(300, u87) + 4Min(300, u88) + 4Min(300, u89) + 4Min(300, u9) > 4000). (Size-like symbols: u4, u14, u63, u10, u8, u17, u0, u37, u43, u25, u59, u5, u41, u75, u1, u79, u13, u31, u61, u15, u11, u44, u3, u57, u32, u78, u16, u56, u74, u34, u58, u69, u84, u77, u53, u19, u82, u21, u46, u62, u87, u23, u88, u7, u89, u67, u54, u36, u26, u40, u45, u48, u55, u28, u22, u33, u39, u64, u72, u71, u68, u6, u9, u27, u20, u12, u86, u38, u65, u49, u2, u52, u51, u30, u47, u60, u18, u73, u66, u85, u81, u24, u70, u76, u29, u42, u80, u83, u50, u35)

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=“u4,u14,u63,u10,u8,u17,u0,u37,u43,u25,u59,u5,u41,u75,u1,u79,u13,u31,u61,u15,u11,u44,u3,u57,u32,u78,u16,u56,u74,u34,u58,u69,u84,u77,u53,u19,u82,u21,u46,u62,u87,u23,u88,u7,u89,u67,u54,u36,u26,u40,u45,u48,u55,u28,u22,u33,u39,u64,u72,u71,u68,u6,u9,u27,u20,u12,u86,u38,u65,u49,u2,u52,u51,u30,u47,u60,u18,u73,u66,u85,u81,u24,u70,u76,u29,u42,u80,u83,u50,u35”
If you suspect the guard was triggered from C++, add TORCHDYNAMO_EXTENDED_DEBUG_CPP=1
For more debugging help, see …

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().

(Refer to the full stack trace above for more information.)