Protobuf版本不匹配

时间:2017-10-08 05:39:05

标签: tensorflow protocol-buffers

我目前在tensorflow中使用RNN收到此错误:

  

[libprotobuf致命谷歌/ protobuf / stubs / common.cc:61]这个程序   需要版本3.3.0的协议缓冲区运行时库,但是   安装版本是2.6.1。请更新你的图书馆。如果你   自己编译程序,确保你的标题来自   与链接时库相同的Protocol Buffers版本。   (版本验证失败了   “巴泽尔输出/ local_linux-OPT / genfiles / tensorflow /的contrib / tensor_forest /原/ fertile_stats.pb.cc”。)   抛出一个实例后终止调用   使用 'google :: protobuf的:: FatalException'

     

what():该程序需要3.3.0版本的协议缓冲区   运行时库,但安装的版本是2.6.1。请更新   你的图书馆。如果你自己编译了程序,请确保   你的标题来自与你的相同版本的Protocol Buffers   链接时库。 (版本验证失败了   “巴泽勒输出/ local_linux-OPT / genfiles / tensorflow /了contrib / tensor_forest /原/ fertile_stats.pb.cc”。)

但是当我检查版本时:

$ pip show protobuf
Name: protobuf
Version: 3.4.0
Summary: Protocol Buffers
Home-page: https://developers.google.com/protocol-buffers/
Author: protobuf@googlegroups.com
Author-email: protobuf@googlegroups.com
License: 3-Clause BSD License
Location: /usr/local/lib/python2.7/dist-packages
Requires: six, setuptools

2 个答案:

答案 0 :(得分:0)

您可能安装了两个不同版本的protobuf。 检查

protoc --version

如果与3.4.0不同。您可能需要将其卸载。

答案 1 :(得分:0)

猜猜你是在使用不同的lib链接一个c ++程序。如果使用不同版本的protobuf构建这些库,则会导致此问题。使用相同版本的protobuf重建所有库(包括tf)。