Converting from onnx generated by matlab is not working with other frameworks

조회 수: 5 (최근 30일)
I am trying to use my pretrained model in c++ application. I tried to convert from onnx to mxnet, pytorch and directly to caffe. All of them fails. Downloaded pretrained models work without any problems while importing into mxnet. https://mxnet.incubator.apache.org/tutorials/onnx/super_resolution.html This is the guide i followed. And .onnx file is added. Also error message is added with image.png. I am waiting your reply as soon as possible. Thank you in advance.

채택된 답변

Don Mathis
Don Mathis 2018년 9월 21일
Hi Umit, That is a bug in whatever ONNX importer you are trying to use. It is failing because the ONNX file contains a 'Sub' operator that does not specify the 'axis' attribute. According to the ONNX specification, 'axis' is an optional attribute that has a default value. Yet the importer you are using incorrectly requires it.
According to the ONNX spec (https://github.com/onnx/onnx/blob/master/docs/Changelog.md#Sub-6):
"The starting of the mutually equal shape is specified by the argument "axis", and if it is not set, suffix matching is assumed."
The ONNX file you have attached can be imported into Tensorflow, and in that case the predictions made by the model match those of the original MATLAB network.
I suggest you file a bug report with whoever wrote the ONNX importer you are using.
  댓글 수: 1
Don Mathis
Don Mathis 2018년 9월 28일
I also recommend making sure you always have the latest monthly update of the ONNX converter.

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

michael scheinfeild
michael scheinfeild 2019년 4월 16일
after exported to onnx you can use cntk framework in python and then in c++
python code:
import cntk as C
import os
import numpy as np
from PIL import Image,ImageOps
#check cntk
print("imported cntk")
print(C.minus([1, 2, 3], [4, 5, 6]).eval())
#check onnx exist
print(np.DataSource().exists("net.onnx"))
#load onnx
z = C.Function.load("net.onnx", format=C.ModelFormat.ONNX)
# then you can save it to dnn format
z.save(os.path.join("foo", "Alexnet" + ".dnn"))

카테고리

Help CenterFile Exchange에서 Image Data Workflows에 대해 자세히 알아보기

태그

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by