# Loading PyTorch Faster RCNN with ONNX fails

**URL:** <https://discourse.julialang.org/t/loading-pytorch-faster-rcnn-with-onnx-fails/105201>\
**Category:** Machine Learning\
**Created:** [October 19, 2023, 8:57pm UTC](https://discourse.julialang.org/t/loading-pytorch-faster-rcnn-with-onnx-fails/105201 "2023-10-19T20:57:11Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![rkube](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/rkube/32/211198_2.png) [@rkube](https://discourse.julialang.org/u/rkube)\
**Post date:** [October 19, 2023, 8:57pm UTC](https://discourse.julialang.org/t/loading-pytorch-faster-rcnn-with-onnx-fails/105201/1 "2023-10-19T20:57:11Z")

</div>

Hi,  
I’m trying to load a trained [Faster R-CNN model](https://pytorch.org/vision/stable/models/generated/torchvision.models.detection.fasterrcnn_mobilenet_v3_large_320_fpn.html#fasterrcnn-mobilenet-v3-large-320-fpn) that has been exported with ONNX:

It has been saved like this:

```julia
torch.onnx.export(model, 
                  x[None, :, :, :],
                  "detector.onnx",
                  export_params=True,
                  input_names=["input"],
                  output_names=["output"],
                  dynamic_axes={'input' : {0 : 'batch_size'}, 'output' : {0 : 'batch_size'}})

```

Loading it like this gives an error:

```julia
julia> path = "detector.onnx"
julia> data = Float32.(randn((1, 3, 145, 501)))
julia> out = ONNX.load(path, data)

┌ Error: Error while loading node ("/Split_output_0",) = Split("input", "/Constant_1_output_0")
│ axis => 0
└ @ ONNX ~/.julia/packages/ONNX/weSi3/src/load.jl:66
ERROR: UndefVarError: `args` not defined
Stacktrace:
  [1] load_node!(tape::Umlaut.Tape{ONNX.ONNXCtx}, #unused#::ONNX.OpConfig{:ONNX, :Split}, inputs::Vector{Umlaut.Variable}, attrs::Dict{Symbol, Any})
    @ ONNX ~/.julia/packages/ONNX/weSi3/src/load.jl:229
  [2] load_node!(tape::Umlaut.Tape{ONNX.ONNXCtx}, nd::NodeProto, backend::Symbol)
    @ ONNX ~/.julia/packages/ONNX/weSi3/src/load.jl:56
  [3] load(io::IOStream, args::Array{Float32, 4}; backends::Vector{Symbol}, exec::Bool)
    @ ONNX ~/.julia/packages/ONNX/weSi3/src/load.jl:310
  [4] load
    @ ~/.julia/packages/ONNX/weSi3/src/load.jl:267 [inlined]
  [5] #98
    @ ~/.julia/packages/ONNX/weSi3/src/load.jl:341 [inlined]
  [6] open(f::ONNX.var"#98#99"{Vector{Symbol}, Bool, Tuple{Array{Float32, 4}}}, args::String; kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
    @ Base ./io.jl:395
  [7] open
    @ ./io.jl:392 [inlined]
  [8] #load#97
    @ ~/.julia/packages/ONNX/weSi3/src/load.jl:340 [inlined]
  [9] load(filename::String, args::Array{Float32, 4})
    @ ONNX ~/.julia/packages/ONNX/weSi3/src/load.jl:339
 [10] top-level scope

```

Does anyone know how to properly load the model?

---

<div class="post-metadata">

**Author:** ![ericphanson](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ericphanson/32/215186_2.png) [@ericphanson](https://discourse.julialang.org/u/ericphanson)\
**Post date:** [October 19, 2023, 9:01pm UTC](https://discourse.julialang.org/t/loading-pytorch-faster-rcnn-with-onnx-fails/105201/2 "2023-10-19T21:01:46Z")

</div>

that looks like an ONNX.jl bug: [UndefVarError: `args` not defined · Issue #97 · FluxML/ONNX.jl · GitHub](https://github.com/FluxML/ONNX.jl/issues/97). You could try [GitHub - jw3126/ONNXRunTime.jl: Julia bindings for onnxruntime](https://github.com/jw3126/ONNXRunTime.jl) instead

---

<div class="post-metadata">

**Author:** ![rkube](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/rkube/32/211198_2.png) [@rkube](https://discourse.julialang.org/u/rkube)\
**Post date:** [October 19, 2023, 9:08pm UTC](https://discourse.julialang.org/t/loading-pytorch-faster-rcnn-with-onnx-fails/105201/3 "2023-10-19T21:08:27Z")

</div>

Thanks, I’ll look into the onnx runtime.
