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’

首先卸载原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/ImportError: No module named google.protobuf.inter

手动安装完2.6.1之后还出现问题2的话,建议pip安装一遍2.6.1(两次安装版本要统一)
之前一直用的pip3,报问题二后面的错,后来安装python-pip,使用下面命令解决了问题!
应该是默认使用python2,所以找不到路径。

pip install protobuf==2.6.1

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

附上我绘制的SSD网络结果

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

后续就是搞懂它了

reference

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

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值