模型可视化工具
- netron:使用教程博客
模型读取篇
pytorch
- 模型与权重在匹配的时候出问题——[pytorch] Missing key(s) in state_dict: Unexpected key(s) in state_dict 但是楼主的模型用了这三种方法还是没有解决,感觉只能是模型和权重不是对应的了·····
转换工具人
ONNX(Open Neural Network Exchange,开放神经网络交换)
具体例子:
- 神奇的同人在线网址:onnx,caffe模型在线转ncnn,mnn
- pytorch2tensorflow:链接
ONNX使用心得:
- 楼主在运行torch手册上的ONNX_demo的时候,When using torch.onnx.export(), errors occurs: AssertionError: Only output_size=[1, 1] is supported。在官方论坛上的解决方法:torchvision的版本导致的问题,我当时得pytorch得版本是1.0.0,但是我torvision版本过高了,当我退回0.2.1的时候,问题就解决了。版本才是第一debug神器。
RuntimeError: ONNX export failed: Couldn't export operator aten::avg_pool2d
这个是在pytorch代码转换中出现的问题,ONNX是不支持pytorch中adaptiveavgpool的转换的,所以只能换成普通的avgpool层,然后相应的参数,像是卷积核,步长,可以根据已知的输入输出结果,通过公式进行进行计算。
可视化工具
onnx查看网址:https://lutzroeder.github.io/netron/
caffe查看网址:http://ethereon.github.io/netscope/#/editor
参考
- pytorch2onnx2caffe2:
使用ONNX将模型从PyTorch传输到Caffe2和Mobile(移动端)