pytorch模型转mxnet

想把pytorch训练好的模型转换为mxnet,思路是用mxnet重写网络结构,然后将每层的参数如下赋值过去:

net.cnn[0].weight.set_data(static_params['cnn.conv0.weight'].numpy())
net.cnn[0].bias.set_data(static_params['cnn.conv0.bias'].numpy())

赋值维度没问题,都赋值过去后,发现最后的inference结果不正确。不知道啥问题?
涉及到的网络层有:Conv2D, BatchNorm, BLSTM, Dense。
是因为两个框架计算细节上有差别吗?

Solved. 缺少了一个relu.
看来通过参数赋值的方法是可行的.
Conv2D, BatchNorm, BLSTM, Dense这几个op的参数存储和计算方式和pytorch是相同的

3赞

有尝试过deconvolution layer吗?我将pwcnet torch权重载入到mxnet输出不对~输出异常的大

大佬,能给一下转的代码吗?想借鉴一下你的流程和思路,谢谢。能给个联系方式吗?感谢。