1

我正在尝试使用 TensorFlow对象检测 API 来训练 Mask RCNN 模型。由于我使用的是Nvidia Jetson TX1,因此我使用此github repo中的预构建轮子安装了 TensorFlow 1.4 。

在尝试运行时

cd <tensorflow>/models/research

python object_detection/model_main.py \
    --pipeline_config_path=${PIPELINE_CONFIG_PATH} \
    --model_dir=${MODEL_DIR} \
    --num_train_steps=${NUM_TRAIN_STEPS} \
    --num_eval_steps=${NUM_EVAL_STEPS} \
    --alsologtostderr      

我遇到了以下错误:

[libprotobuf FATAL google/protobuf/stubs/common.cc:61]
This program requires version 3.4.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
"external/protobuf_archive/src/google/protobuf/any.pb.cc".)
terminate called after throwing an instance of 'google::protobuf::FatalException'

它告诉我更新protobuf库,但我不知道该怎么做,因为我已经尝试安装最新版本(见下文)。其实我什至不知道到底是谁在抛出这个错误。希望有人可以帮助我。提前致谢!

我按照官方教程安装了对象检测 API ,特别是我安装了较新版本的protobufvia

# remove old version
sudo apt purge protobuf-compiler

# download prebuilt protoc
cd ~/protobuf
wget https://github.com/google/protobuf/releases/download/v3.6.0/protoc-3.6.0-linux-aarch_64.zip
unzip protobuf-python*.zip
export PATH=$PATH:~/protobuf/bin

我认为此安装有效,因为我得到了所需的输出:

$ protoc --version
libprotoc 3.6.0

$ which protoc
/home/<username>/protobuf/bin/protoc

但如果我输入

$ sudo find . -name "*libprotobuf*"
/usr/lib/aarch64-linux-gnu/libprotobuf-lite.so.9.0.1
/usr/lib/aarch64-linux-gnu/libprotobuf.so.9
/usr/lib/aarch64-linux-gnu/libprotobuf.so.9.0.1
/usr/lib/aarch64-linux-gnu/libprotobuf-lite.so.9

安装了一些东西apt。不确定这是否与错误有关。

运行:

  • Ubuntu 16.04
  • 蟒蛇 3.5
  • TensorFlow 1.4
4

0 回答 0