刚开始接触caffe,用Nvidia TX2跑了SSD模型,达到8~9帧。
把caffe模型转caffe2模型时,转到reshape层时出现错误ValueError: Unknown argument type: key=values value=[..........
发现是protobuffer 版本问题,参考https://github.com/caffe2/caffe2/issues/482
原来装的是2.6.1,升级到3.3.0即可。但按照原文采用pip upgrade安装完,protoc --version 依然为2.6.1
解决方法如下:
1.下载protobuf 源代码
wget https://github.com/google/protobuf/releases/protobuf-python-3.3.0.tar.gz
2.解压,编译,安装
tar zxvf protobuf-python-3.3.0.tar.gz
cd protobuf-python-3.3.0.tar.gz
./configure
make
sudo make install
当然,如果之前protobuf 版本未卸载,这时输入protoc version 依然为2.6.1。
这时需要把新安装的版本protoc拷贝过去,覆盖原来文件。
之后,重新编译caffe2,转换模型,出现新问题:
TypeError: __init__() got an unexpected keyword argument 'syntax'
原因是protoc和python-protobuf版本不一致
解决方法如下:
1.cd ./python
2.python setup.py build
3.python setup.py install
再转换模型,well done!验证模型成功