zoukankan      html  css  js  c++  java
  • caffe中google protobuf使用问题

    之前caffe中protobuf的版本是3.5.0,可在ternimal下执行:protoc --version 查看当前protobuf版本。

    由于另外安装了Tensorflow之后(也有可能是安装了Anaconda,导致protobuf版本发生变化),默认对protobuf版本进行了变化,变成3.1.0。于是在caffe中make的时候出现错误,错误提示如下:

    将protobuf版本改变为3.5.0后即可解决问题。具体解决办法:

    首先明确你系统中到底有几个protobuf版本,一般系统下在:/usr/local/bin/protoc;/usr/bin/protoc ;/home/wangmaorui/anaconda3/bin/protoc 。这三个路径下都有protobuf。

    执行命令:which protoc 查看你当前使用的protobuf路径(或者说版本),一般你安装anaconda后添加路径到系统中则会在 .bashrc下生成:export PATH="/home/wangmaorui/anaconda3/bin:$PATH",如果不使用anaconda下的protobuf则注释掉就好了。

    注意:你在caffe中的src/caffe/proto下执行:protoc -I=./ --cpp_out=./ ./caffe.proto后生成的caffe.pb.cc和caffe.pb.h只在当前路径下有效,当你退回到caffe路径下make的时候,这里生成的.cc和.h是不起作用的,make会在build/src/caffe/proto中重新caffe.pb.cc和caffe.pb.h。

    举个例子:你在caffe/src/caffe/proto中使用3.5.0版本的protobuf生成.cc和.h文件(此处指定protoc版本进行编译,例如执行命令:/usr/local/bin/protoc ./caffe.proto --cpp_out=./ 表示你使用的/usr/local/bin/下的protoc进行编译),但是你退回到caffe路径下执行make的时候,在build/src/caffe/proto中得到的.cc和.h文件还是3.1.0版本(此处使用的仍然是/home/wangmaorui/anaconda3/bin/的protoc版本,这个版本直接使用which protoc命令查看)。另一种可操作的方法是你在src/caffe/proto中编译好的.cc和.h文件直接拷贝到build/src/caffe/proto文件中,这样也可以成功。

    ...

    后续考虑是否可以对caffe进行‘’升级‘’,使得满足protobuf对应版本的问题。

  • 相关阅读:
    AWS研究热点:BMXNet – 基于MXNet的开源二进神经网络实现
    python数字图像处理(19):骨架提取与分水岭算法
    深度学习基石:一篇文章理解反向传播
    Densely semantically aligned person re-identification
    NPU TPU
    滤波、形态学腐蚀与卷积(合集)
    当神经网络撞上薛定谔:混合密度网络入门
    ubuntu 上配置端口转发
    插值法
    Linux终端复用神器-Tmux使用梳理
  • 原文地址:https://www.cnblogs.com/wmr95/p/8819476.html
Copyright © 2011-2022 走看看