首页 > 解决方案 > 在 tensorflow/models/research 中编译 .proto(不是 /object_dectio

问题描述

我将其提交给 Stack Overflow,而不是作为 Tensorflow 问题,因为基于提交给 Tensorflow 的问题(例如此处),人们能够克服我被卡住的地方。我以 Tensorflow 问题格式提交的原因不是因为我是从我自己的帖子中复制粘贴,而是为了让你清楚我的问题,亲爱的读者。非常感谢您的帮助。

系统信息

您正在使用的模型的顶级目录是什么: lstm_object_detection

我是否编写了自定义代码(而不是使用 TensorFlow 中提供的股票示例脚本):

操作系统平台和发行版(例如,Linux Ubuntu 16.04): Ubuntu 18.04

Python版本: 3.6.7

蟒蛇版本: 4.6.7

TensorFlow 安装自(源代码或二进制文件): binary

TensorFlow 版本(使用下面的命令): 1.10.0(也尝试使用 1.12)

Bazel 版本(如果从源代码编译):不适用

CUDA/cuDNN 版本: 10.0(使用 Tensorflow 1.12 时为 9.2)

GPU 型号和内存: GTX 2080 ti,11gb

重现的确切命令: protoc lstm_object_detection/protos/*.proto --python_out=。

描述

我正在尝试编译此文件夹中的 proto 文件,文件夹是lstm_object_detection的一部分,最终将与Tensorflow Object Detection API一起使用。根据 Object Detection API 安装说明,我能够编译object_detection文件夹中的 proto 文件。对象检测 API 测试通过。可悲的是,当我执行编译 lstm_object_detection 原型的类似指令时,我收到以下错误。

object_detection/protos/input_reader.proto: File not found.
protos/input_reader_google.proto: Import "object_detection/protos/input_reader.proto" was not found or had errors.
protos/input_reader_google.proto:8:10: "object_detection.protos.ExternalInputReader" is not defined.

非常清楚,我从 .../tensorflow/models/research 执行的 shell 命令是:

protoc lstm_object_detection/protos/*.proto --python_out=.

我只是为了踢球:

protoc \
    lstm_object_detection/protos/*.proto \
    --python_out=lstm_object_detection/protos/

我想也许 lstm_object_detection 没有看到我的 object_detection 文件夹,所以我通过conda develop .在模型/研究/中执行将它添加到我的 Anaconda 路径中,以防万一也在模型/研究/对象检测中。我也尝试将它添加到我的 PYTHONPATH 中,尽管这不应该有所作为,因为 Anaconda 不使用 PYTHONPATH。

问题:如何在 object_detection/protos 子目录之外获取这些 protos 以进行编译?

标签: pythontensorflowprotocol-buffersobject-detection-api

解决方案


为了社区的利益,在此(答案)部分提及解决方案(即使它出现在评论部分)。

正确的命令是,

protoc lstm_object_detection/protos/*.proto --python_out=.

推荐阅读