mxnet转onnx

举报
风吹稻花香 发表于 2022/02/23 00:35:43 2022/02/23
【摘要】 这个还有onnx推理代码和报错解决 Insightface中ArcFace MxNet2ONNX踩坑 - 知乎 转换代码: import numpy as npimport mxnet as mxfrom mxnet.contrib import onnx as onnx_mxnet sym = './model-sym...

这个还有onnx推理代码和报错解决

Insightface中ArcFace MxNet2ONNX踩坑 - 知乎

转换代码:


  
  1. import numpy as np
  2. import mxnet as mx
  3. from mxnet.contrib import onnx as onnx_mxnet
  4. sym = './model-symbol.json'
  5. params = './model-0000.params'
  6. input_shape = (1, 3, 112, 112)
  7. onnx_file = './mobilefacenet.onnx'
  8. converted_model_path = onnx_mxnet.export_model(sym, params, [input_shape], np.float32, onnx_file)

onnx1.9 报错:

spatial for operator BatchNormalization

onnx.onnx_cpp2py_export.checker.ValidationError: Unrecognized attribute: spatial for operator BatchNormalization

==> Context: Bad node spec: input: "conv_1_conv2d" input: "conv_1_batchnorm_gamma" input: "conv_1_batchnorm_beta" input: "conv_1_batchnorm_moving_mean" input: "conv_1_batchnorm_moving_var" output: "conv_1_batchnorm" name: "conv_1_batchnorm" op_type: "BatchNormalization" attribute { name: "epsilon" f: 0.001 type: FLOAT } attribute { name: "momentum" f: 0.9 type: FLOAT } attribute { name: "spatial" i: 0 type: INT }
 

解决方法:

请看这篇文章:https://zhuanlan.zhihu.com/p/165294876?utm_source=ZHShareTargetIDMore

用root权限编辑文件 /usr/local/lib/python3.6/dist-packages/mxnet/contrib/onnx/mx2onnx/_op_translations.py

把 359行的 spatial=0 屏蔽掉即可。
测试确实可以转:

 原文链接:https://blog.csdn.net/u012505617/article/details/110530821

文章来源: blog.csdn.net,作者:AI视觉网奇,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/jacke121/article/details/123063266

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。