本程序需要3.2.0版本的Protocol Buffer运行时库,但是安装的版本是2.6.1

This program requires version 3.2.0 of the Protocol Buffer runtime library, but the installed version is 2.6.1

我正在尝试训练 Caffe 模型。我的 .prototxt 文件使用自定义 Python 数据层和丢失层。

然而,当我在终端中执行训练命令时,出现了这个错误:

[libprotobuf FATAL google/protobuf/stubs/common.cc:61] This program requires version 3.2.0 of the Protocol Buffer runtime library, but the installed version is 2.6.1.  Please update your library.  If you compiled the program yourself, make sure that your headers are from the same version of Protocol Buffers as your link-time library.  (Version verification failed in "google/protobuf/descriptor.pb.cc".)
terminate called after throwing an instance of 'google::protobuf::FatalException'

我的 Python 包管理器 (pip) 安装了 3.2.0 版的 protobuf,但系统版本为 2.6.1,用于名为 libprotoc 的包。我不确定如何指定 pip protobuf 版本是我想用于 caffe 的版本。

在另一台电脑上安装了3.3.0版本的protobuf和2.6.1的系统版本,我被抛出同样的错误,除了它说程序需要3.3.0版本而不是3.2版本.0.

最佳。

我 运行 今天遇到了完全相同的问题。对我有用的解决方法是从 caffe 的 python 界面开始训练,而不是直接从 shell 开始训练。示例:

import caffe

weights = '../ilsvrc-nets/vgg16-fcn.caffemodel'
caffe.set_device(0)
caffe.set_mode_gpu()

solver = caffe.SGDSolver('solver.prototxt')
solver.net.copy_from(weights)

for _ in range(25):
    solver.step(4000)

当然以上只是一个example/very准系统,你必须自己处理运行验证集,但pycaffe接口非常灵活,允许你做所有这些。您可以在此处找到有关如何使用它的更多详细信息:

http://christopher5106.github.io/deep/learning/2015/09/04/Deep-learning-tutorial-on-Caffe-Technology.html

我通过 pip 安装了与 apt-get 相同版本的 protobuf 来绕过它。

pip install protobuf==2.6

备选方案(我想避免)是从源安装 protobuf。

https://github.com/google/protobuf/blob/master/src/README.md