CAFFE中protobuf版本问题导致draw_net.py使用出现问题(已解决)

CAFFE中protobuf版本问题导致draw_net.py使用出现问题(已解决)

  • 最近在学习SSD网络,在进行网络可视化的时候使用draw_net.py出现了诸多问题,查询了几个帖子之后才知道,因为之前安装protobuf时用的pip命令,安装的版本为3.0以上,caffe无法适配,我选择重装protobuf。
  • 配环境嘛,复杂一点是正常的!!!
    • 问题1.AttributeError: 'google.protobuf.pyext._message.RepeatedScalarConta' object has no attribute '_values'
    • 问题2.ImportError: cannot import name symbol_database
    • 附上我绘制的SSD网络结果
  • reference

最近在学习SSD网络,在进行网络可视化的时候使用draw_net.py出现了诸多问题,查询了几个帖子之后才知道,因为之前安装protobuf时用的pip命令,安装的版本为3.0以上,caffe无法适配,我选择重装protobuf。

配环境嘛,复杂一点是正常的!!!

在这里插入图片描述

问题1.AttributeError: ‘google.protobuf.pyext._message.RepeatedScalarConta’ object has no attribute ‘_values’

首先卸载原protobuf

pip uninstall protobuf

我用的版本为2.6.1。下载链接:protobuf2.6.1

然后解压protobuf

tar zxvf protobuf-2.6.1.tar.gz  

cd到解压文件夹

./configure   
make
make check
make install

安装完成后配置

vim ~/.profile

在文本最后添加如下内容(vim添加文本要先输入i,右下角变为-插入-方可正常输入,输入完成后按ESC可结束输入,之后输入“:”,右下角出现“:”标志,输入"wq"保存并退出):

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

使变动生效

source ~/.profile

查看版本

protoc --version

若出现
libprotoc 2.6.1
则安装成功。

之后重新编译caffe,cd到caffe目录下

make clean
make -j8
make pycaffe

之后检查以下caffe编译情况

python
import caffe

不报错则成功,但由于之前我还用pip命令安装过protobuf2.5.0版本,造成版本混乱问题,具体问题及解决方案如下。

问题2.ImportError: cannot import name symbol_database

手动安装完2.6.1之后还出现问题2的话,建议pip安装一遍2.6.1(两次安装版本要统一)

pip install protobuf==2.6.1

至此我的draw_net.py绘制网络可以正常那个使用了!!

附上我绘制的SSD网络结果

python python/draw_net.py /home/xuejunda/caffe/models/VGGNet/VOC0712/SSD_300x300/deploy.prototxt ./SSD_300.jpg --rankdir=BT

CAFFE中protobuf版本问题导致draw_net.py使用出现问题(已解决)_第1张图片

reference

[1]https://www.cnblogs.com/chegnshi-coding/p/4457738.html
[2] https://blog.csdn.net/yiranyhy/article/details/55509304

你可能感兴趣的:(caffe-ssd,protobuf,网络可视化)