8

遇到问题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.

问题是什么??

4

5 回答 5

15

我正在尝试不同的事情,并找出问题所在。

确保你这样做:

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

而我试图这样做:

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

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

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

于 2017-09-08T13:05:39.787 回答
3

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

  1. 将 protoc exe 文件复制到所有 proto 文件所在的文件夹,即“models-master\models-master\research\object_detection\protos”将 protoc.exe 和 *.protoc 文件保存在同一文件夹中

  2. 接下来使用记事本++打开文件夹“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 步的输出来定位丢失的文件。

于 2018-05-02T20:20:04.350 回答
0

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

你只是克隆模型存储库还是修改了一些东西?

于 2017-08-17T00:49:28.090 回答
0

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

import "object_detection/protos/grid_anchor_generator.proto";

将其更改为

import "research/object_detection/protos/grid_anchor_generator.proto";
于 2017-10-15T16:04:46.497 回答
0

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

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

于 2018-08-09T09:14:23.853 回答