mxnet转ncnn工具转换问题

pu3pd22g  于 2022-12-31  发布在  其他
关注(0)|答案(7)|浏览(169)

当我使用ncnn提供的mxnet转ncnn的转换工具转mxnet模型的时候,能够转换成功,但是得到的param文件里面开头的层数和param后面罗列出来的层的数目对不上。罗列的层数少于param文件开头统计的层数

0wi1tuuw

0wi1tuuw1#

可以先检查一下模型里是否同名的层

fdx2calv

fdx2calv2#

@Howave 查看了一下,并没有重复的层,而且我试着转了几个尺度的mxnet的模型,param文件里面罗列的层数都比param开头统计的层数少3层

v6ylcynt

v6ylcynt3#

用netron工具分别查看对比一下json和param文件

7gcisfzg

7gcisfzg4#

@Howave 我用这个工具查看了一下,发现ncnn转换的param形成的网络图是两个没有数据交互的图,从mxnet的第一个elemwise_add开始,ncnn将mxnet的网络图断开成了两部分,上部分以binaryop结尾,下部分以split开始,两部分没有任何数据交互。而mxnet后面的elemwise也被分为了binaryop和split,但是两者之间有数据交互。就是binaryop的输出是split的输入。我看了ncnn,里面有elemwise层,为何ncnn转换时会将它分为两层,而且第一次分的时候还将mxnet的图层给断开了

dz6r00yl

dz6r00yl5#

@Howave 非常感谢,通过直接修改param文件,我得到了正确的转换模型。但是我发现转换后的ncnn模型,在wildeface的测试上,和我转换前在hard测试部分差异较大,差了差不多百分之8,在easy和medium测试上差了百分之2左右

cidc1ykv

cidc1ykv6#

这个还是得检查一下原来的模型和ncnn对应处的代码吧

izkcnapc

izkcnapc7#

就两个层名字变了,但是我看了这两个层ncnn的实现源码,和原来mxnet对应层的实现功能是一样的

相关问题