Caffe中的Protobuf版本问题

1 关于Protobuf的介绍

什么是 Google Protocol Buffer? 假如您在网上搜索,应该会得到类似这样的文字介绍:

Google Protocol Buffer( 简称 Protobuf) 是 Google 公司内部的混合语言数据标准,目前已经正在使用的有超过 48,162 种报文格式定义和超过 12,183 个 .proto 文件。他们用于 RPC 系统和持续数据存储系统。

Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化。它很适合做数据存储或 RPC 数据交换格式。可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。目前提供了 C++、Java、Python 三种语言的 API。

具体的内容可参考:链接地址

2  几个查看protobuf版本信息之类的命令

查看哪些路径安装了protoc:

whereis protoc

当查询的时候我看到有三个地方都安装了protoc,而且每个地方对应的版本还不一样。

查看默认调用的protoc是哪个:

which protoc

查看默认的protoc的版本:

protoc --version

查看pip安装的protoc的信息:(我的话就显示我在anaconda下的3.5+的版本了)

pip show protobuf

3 protobuf的安装与卸载

3.1 源码安装 

下载protobuf 3.3.0的代码,解压

wget https://github.com/google/protobuf/archive/v3.3.0.zip
unzip protobuf

进目录编译

cd protobuf-3.3.0/
./autogen.sh
./configure
make
make check

3.2 命令安装 

安装

sudo apt-get install protobuf

卸载

sudo apt-get remove libprotobuf-dev

3.3 anaconda安装

如果在安装了anaconda后使用conda说找不到命令,一般是没有添加环境变量。

安装:

conda install -c https://conda.anaconda.org/anaconda protobuf

卸载:

conda uninstall protobuf

4 在安装caffe的时候,官方提供了以下的命令。

sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
sudo apt-get install --no-install-recommends libboost-all-dev

此时会安装一个  /usr/bin/protoc 的版本,默认是2.6.1。实际上caffe的编译也需要的就是这个版本。

典型报错:‘kEmptyString’ is not a member of ‘google::protobuf::internel’

但是现在环境中有多个protoc版本,caffe编译无法对应。

解决办法1:在Makefile里面将两个protoc,换成安装路径下的protoc,例如/usr/bin/protoc

解决办法2:直接暴力一点whereis protoc查询到安装protoc的位置,其它版本全部删掉。

保留官方命令sudo apt-get install libprotobuf-dev protobuf-compiler  安装在usr/bin/protoc 的版本

5 caffe编译与安装参考  caffe官网

6 其它错误问题解决方案

6.1 make: *** [.build_release/tools/upgrade_net_proto_text.bin] Error 1 --->参考

 

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Caffe是一个深度学习框架,它依赖于protobufProtocol Buffers)。目前,Caffe可以使用protobuf 3.6.0来编译。因此,如果你想将Caffe与TensorFlow一起使用,你需要调整依赖项版本,确保使用的是protobuf-3.6.0版本来编译Caffe。 关于protobuf版本,你提到了一个问题与相关的引用内容。你提到Caffe装了3.3.0版本,但你需要的是3.6.0版本。你通过pip的list命令查看了已安装的包,发现安装了protobuf 3.6.0。为了满足你的需求,你打算卸载protobuf 3.6.0。 综上所述,Caffeprotobuf版本相关。Caffe可以使用protobuf 3.6.0来编译,并且你可以通过卸载安装了的protobuf 3.6.***<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Caffe,protobuf 编译安装](https://blog.csdn.net/Tosonw/article/details/91043145)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [【深度学习】CaffeProtobuf版本问题](https://blog.csdn.net/phdsky/article/details/80994090)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值