insightface之mxnet model转caffemodel

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Wuzebiao2016/article/details/81735487

insightface之mxnet model转caffemodel

使用的工具是更新后的MXNet2Caffe:https://github.com/GarrickLin/MXNet2Caffe

mxnet model转caffemodel的思路:先将mxnet的model-symbol.json转化为caffe的prototxt,再由model-symbol.json、model-0000.params以及生成的prototxt文件转化为caffemodel。

这里演示insightface的LResNet100E-IR的网络及模型的转化,模型效果经过测试基本没多少损失:

1、将LResNet100E-IR-symbol.json以及LResNet100E-IR-0154.params放置到model_mxnet文件夹下面。
2、终端运行下述命令:
python json2prototxt.py –mx-json model_mxnet/LResNet100E-IR-symbol.json –cf-prototxt model_caffe/LResNet100E-IR.prototxt
能够直接将LResNet100E-IR-symbol.json转化为LResNet100E-IR.prototxt,但会提示忽略掉未知的层,其实这些未知的层对于生成的LResNet100E-IR.prototxt网络性能几乎没有影响。
3、(1)对生成的prototxt文件搜索bottom: “_mulscalar0”,将_mulscalar0改为上一层的”data”,也就是将bottom: “_mulscalar0”改为bottom: “data”。
(2)搜索bottom: “dropout0”,将dropout0改为上一层的bn1,也就是将bottom: “dropout0”改为bottom: “bn1”。
(3)同理,搜索bottom: “_mulscalar1”,将其改为bottom: “fc1”。
(4)将bottom: “_minusscalar1”改为bottom: “fc7”。
(5)将bottom: “broadcast_mul0”改为bottom: “activation0”。
4、终端运行下述命令:
python mxnet2caffe.py –mx-model model_mxnet/LResNet100E-IR –mx-epoch 154 –cf-prototxt model_caffe/LResNet100E-IR.prototxt –cf-model model_caffe/LResNet100E-IR.caffemodel
最后生成的LResNet100E-IR.caffemodel就保存在model_caffe文件夹当中。

猜你喜欢

转载自blog.csdn.net/Wuzebiao2016/article/details/81735487