我目前正在使用tensorflow中的RNN获取此错误:
此程序需要协议缓冲区运行时库的3.3.0版本,但已安装的版本为2.6.1。请更新你的图书馆。如果您自己编译了该程序,请确保您的头来自与链接时间库相同版本的协议缓冲区。(版本验证在"bazel-out/local_linux-opt/genfiles/tensorflow/contrib/tensor_forest/proto/fertile_stats.pb.cc".)中失败在引发'google::protobuf::FatalException‘实例后调用终止 what():该程序需要协议缓冲区运行时库的3.3.0版本,但已安装的版本为2.6.1。请更新你的图书馆。如果您自己编译了该程序,请确保您的头来自与链接时间库相同版本的协议缓冲区。(版本验证在"bazel-out/local_linux-opt/genfiles/tensorflow/contrib/tensor_forest/proto/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发布于 2017-10-10 06:55:34
您可能安装了两个不同版本的protobuf。检查
protoc --version
如果它与3.4.0不同。您可能需要卸载它。
发布于 2022-01-01 16:26:56
按照以下步骤执行:
wget https://github.com/protocolbuffers/protobuf/releases/download/v3.17.3/protobuf-all-3.17.3.tar.gz -O /tmp/protobuf-all-3.17.3.tar.gz && \
tar xzvf /tmp/protobuf-all-3.17.3.tar.gz && \
cd protobuf-3.17.3 && \
mkdir build && \
cd build && \
cmake ../cmake && \
make && \
sudo make install && \如果您收到以下cmake警告:
/usr/share/cmake-3.10/Modules/FindProtobuf.cmake:455 (消息)处的CMake警告: Protobuf编译器版本3.0.0不匹配库版本3.17.3调用堆栈(最近一次调用):CMakeLists.txt:6 (find_package)
然后按照以下命令操作:
sudo apt-get remove libprotobuf-dev抑制cmake警告
find_package(Protobuf CONFIG REQUIRED)发布于 2018-05-23 06:37:36
猜测您正在使用不同的libs链接一个c++程序。如果这些库是使用不同版本的protobuf构建的,就会导致这个问题。使用相同版本的protobuf重新构建所有的库(包括tf)。
https://stackoverflow.com/questions/46627874
复制相似问题