【问题标题】:TensorFlow - object detection module, error appear when trying to use protocTensorFlow - 对象检测模块,尝试使用 protoc 时出现错误
【发布时间】:2018-01-24 07:04:27
【问题描述】:

protoc 有问题,该行在 Windows 中不起作用。

我知道了errors

使用这条线

protoc --proto_path=./object_detection/protos --python_out=c:\testmomo ./object_detection/protos/anchor_generator.proto

我收到此错误

object_detection/protos/grid_anchor_generator.proto: File not found.
object_detection/protos/ssd_anchor_generator.proto: File not found.
anchor_generator.proto: Import "object_detection/protos/grid_anchor_generator.proto" was not found or had errors.
anchor_generator.proto: Import "object_detection/protos/ssd_anchor_generator.proto" was not found or had errors.
anchor_generator.proto:12:5: "GridAnchorGenerator" is not defined.
anchor_generator.proto:13:5: "SsdAnchorGenerator" is not defined.

有什么问题??

【问题讨论】:

标签: python tensorflow deep-learning object-detection protoc


【解决方案1】:

我尝试了不同的方法,并找出了问题所在。

确保你这样做:

# From models/
protoc object_detection/protos/*.proto --python_out=.

而我试图这样做:

# from object_detection/
protoc protos/*.proto --python_out=.

这给了我和你一样的错误。

检查您是否在正确的位置(目录)。

【讨论】:

  • 谢谢。这行得通。但是,我认为它来自更新后的 repo 中的 tensorflow/models/research/。
【解决方案2】:

首先请注意 protoc 缓冲区非常笨拙,无法正确捕获所有文件,您有两个选项可以手动编译所有 29 个文件或按照以下步骤操作。

  1. 将protoc exe文件复制到所有proto文件所在的文件夹,即 "models-master\models-master\research\object_detection\protos"

  2. 接下来使用 notepad++ 打开文件夹“models-master\research\object_detection\protos”中的所有文件。

  3. 按 ctrl+f 并删除所有文件中的“object_detection/protos/” (如果您是手动操作,请记住 protoc 按字母顺序开始,所以从文件“anchor_generator.proto”开始)。

例如替换:-

import "object_detection/protos/grid_anchor_generator.proto";
import "object_detection/protos/ssd_anchor_generator.proto";
import "object_detection/protos/multiscale_anchor_generator.proto";

用这个:-

import "grid_anchor_generator.proto";
import "ssd_anchor_generator.proto";
import "multiscale_anchor_generator.proto";

4.现在在同一目录中打开 Cmd 即 "\models master\research\object_detection\protos" 类型:- protoc *.proto --python_out=。 请注意,您将在文件夹中获得新的 .py 文件,并且执行上述文件时不会出错。

5.输出:-

注意:- 确保打开所有文件并尝试使用第 4 步的输出找到丢失的文件。

【讨论】:

    【解决方案3】:

    好像没有文件:object_detection/protos/grid_anchor_generator.proto 和 ssd_ancho_generator.proto

    您是否只是克隆了模型存储库或修改了某些内容?

    【讨论】:

      【解决方案4】:

      在 object_detection protos 文件夹中给出了导入行

      import "object_detection/protos/grid_anchor_generator.proto";
      

      改成

      import "research/object_detection/protos/grid_anchor_generator.proto";
      

      【讨论】:

      • 你没有提到你说的是哪个文件?
      【解决方案5】:

      简单地说,为它们中的每一个运行 protocbuf。

      protoc object_detection/protos/grid_anchor_generator.proto --python_out=。

      【讨论】:

      • 这实际上是解决方案。不知道为什么你运行protoc research/object_detection/protos/*.proto --python_out=.的时候会漏掉这3个文件,但是你可以一一编译没有问题。
      猜你喜欢
      • 2020-07-01
      • 1970-01-01
      • 2018-07-25
      • 1970-01-01
      • 2013-02-23
      • 2021-10-26
      • 1970-01-01
      • 1970-01-01
      • 2016-03-22
      相关资源
      最近更新 更多