pytorch模型转caffe模型的项目地址:
https://github.com/xxradon/PytorchToCaffe
环境:
anaconda3(python3.5),编译好的pycaffe,cuda10.1,cudnn 7.6 ,pytorch 1.5.1,torchvision 0.6.1
测试:
vscode中打开项目:
在example文件夹下就是几种不同的网络的转换测试demo,如:
首先测试一下vgg_19_pytorch_to_caffe.py,直接运行:
会报错:
self.bottom.extend(bottom)
TypeError: None has type NoneType, but expected one of: bytes, unicode
网络上下载了一个其他的pytorch-vgg实现,用这个demo测试一下,可以转换成,经过排查,这个demo里的vgg在forward的时候使用的是:avgpool+flatten实现
而对比另外一个实现:
使用的是view代替flatten,转换成功:
使用netron打开查看网络结构:
所以这个错误应该都是由于找不到该层的实现导致的,后来在github的问答中区也找到了相同的答案: