当前位置: 首页 > 知识库问答 >
问题:

在jetson tx2上升级protobuf tensorflow

百里智勇
2023-03-14

尽可能多地提供背景信息-

我有一个使用keras训练的机器学习模型,我正试图嵌入nvidia jetson tx2。

我已经在那里设置了tenorflow(这本身有点痛苦),但是当我运行我的脚本时,我用协议buf碰到了一个错误。

使用TensorFlow后端。[libPROTOBUF FATAL谷歌/PROTOBUF/存根/common.cc:61]此程序需要3.1.0版的协议缓冲区运行库,但安装的版本是2.6.1。请更新您的库。如果您自己编译程序,请确保您的头文件与您的链接时间库来自同一版本的协议缓冲区。(版本验证失败在“外部/PROTOBUF/src/谷歌/PROTOBUF/any.pb.cc”。)在抛出一个'谷歌e::PROTOBUBf::FatalExctive'的实例后终止调用what():此程序需要3.1.0版的协议缓冲区运行库,但安装的版本是2.6.1。请更新您的库。如果您自己编译了程序,请确保您的头文件来自与链接库相同版本的协议缓冲区。(版本验证在“外部/协议缓冲区/src/谷歌/协议缓冲区/any.pb.cc”中失败。)中止(核心转储)

所以-我一开始使用pip升级protobuf,但我认为冲突是因为c版本优先,linux版本仍然是2.6.1,但是在c中构建之后,版本现在显示为3.1.0,但是我仍然得到相同的错误。

从nvidia开发论坛我收到了一些反馈

“/usr/lib/aarch64 linux gnu/libprotobuf.so.9.0.1

这意味着C/C代码将找到版本2.6。

pip安装protobuf-3.1.0-py2。没有。whl

这意味着Python代码将找到3.1版。

您需要升级C(系统)库以匹配3.1版。

我不认为Ubuntu上有一个默认的包可以做到这一点,所以你必须要么通过构建自己的包并在系统包之上安装它来破解它,要么你必须找到一个有更新版本的deb包,它仍然会安装在你当前的系统上。"

我一直在努力解决这个问题,因为我找不到升级系统文件的方法。任何帮助都将不胜感激

谢谢

编辑:我也想知道这可能是与GTK的冲突(我也在这里使用openCV,所以这值得一提!)

共有2个答案

连文栋
2023-03-14

第一步:首先,用purge protobuf sudo apt get remove卸载——purge libprotobuf

第二步:重新开始

$wgethttps://raw.githubusercontent.com/jkjungavt/jetson_nano/master/install_protobuf-3.6.1.sh

sudo chmod x install_protobuf-3.6.1。sh/安装_protobuf-3.6.1。sh#这一次在我的黑板上需要30分钟。

暨弘懿
2023-03-14

请检查您的libprotobuf dev版本。

请尝试使用以下命令卸载电脑上的现有版本:

apt-get remove --purge libprotobuf-dev

然后,构建新版本的lib275 buf-dev

apt-get install autoconf automake libtool curl make g++ unzip
wget https://github.com/google/protobuf/releases/download/v3.5.0/protobuf-cpp-3.5.0.tar.gz
tar -xvf protobuf-cpp-3.5.0.tar.gz
cd protobuf-3.5.0
./autogen.sh
./configure
make
make check
sudo make install
sudo ldconfig

祝你好运。

参考资料:

  • https://github.com/BVLC/caffe/issues/5711
  • https://github.com/google/protobuf/issues/2979
 类似资料:
  • 问题内容: 我正在运行centos 7并使用epel软件包在主机上安装了docker: 但是docker版本是- Docker的最新稳定分支为1.2 我正在该主机上运行几个容器,那么如何在此主机上安全地更新Docker? yum update docker不会更新到最新版本,因为epel repo具有旧软件包。 问题答案: 请注意,当前的Docker稳定版本实际上是1.3,而不是1.2。 请参阅D

  • 我已经在Windows上运行了Node.jsV0.8.0。我可以运行最新的安装程序将其升级到V0.8.4吗?我担心它会破坏我机器上现有的第三方模块。

  • 一、本功能说明 本节提供了在线升级网站程序以及网站核心文件效验功能 二、子功能导航 1.在线升级 2.文件效验 三、功能详解 1.在线升级 1).如何进入本功能 导航栏 选择扩展 -> 菜单栏 选择在线升级 2).界面解释 进入后程序会自动获取是否有新版本,如果没有则显示如下界面 如果有新的版本则显示如下界面 这时候只要点击开始升级程序就会自动开始下载相应的补丁包,然后自动安装! 注意事项:   

  • 一、本功能说明 本节提供了在线升级网站程序以及网站核心文件效验功能 二、子功能导航 1.在线升级 2.文件效验 三、功能详解 1.在线升级 1).如何进入本功能 导航栏 选择扩展 -> 菜单栏 选择在线升级 2).界面解释 进入后程序会自动获取是否有新版本,如果没有则显示如下界面 如果有新的版本则显示如下界面 这时候只要点击开始升级程序就会自动开始下载相应的补丁包,然后自动安装! 注意事项:   

  • 问题内容: 我想将OS X Leopard随附的默认python安装(2.5.1)升级到最新版本。请让我知道我如何实现这一目标。 谢谢 问题答案: 不要升级。 安装ActivePython(与其他人共存)。 开放终端 类型

  • 我尝试将笔记本电脑上的Java(运行视窗10)从Java10升级到Java11。我从Oracle网站下载并安装了Java11 SDK,然后我将bin文件夹的地址添加到路径系统变量中,并更改JAVA_Home指向新的jdk文件。 Path系统变量如下所示: And JAVA_HOME: 尽管如此,当我打开CMD并运行:时,我得到Java10,尽管使用我得到Java11。 我遵循了这里描述的步骤:如何