protoc object_detection/protos/*.proto:没有这样的文件或目录

two*_*air 12 python object-detection protoc tensorflow

我按照这里找到的例子.但每当我输入命令"C:/ Program Files/protoc/bin/protoc"object_detection/protos/.proto --python_out =.我收到一个错误,上面写着object_detection/protos / .proto:没有这样的文件或目录.我无法创建名为*.proto的目录.所以我遗漏了一些关于如何做到这一点的基本信息.由于我找不到任何人抱怨这个问题,它必须非常简单.我正在使用Windows操作系统.

flo*_*rad 11

解决了Windows,在' 研究 '并在路径中有' protoc ',然后这将工作:

for /f %i in ('dir /b object_detection\protos\*.proto') do protoc object_detection\protos\%i --python_out=.
Run Code Online (Sandbox Code Playgroud)

祝好运 !

  • 这也适用于 >= 3.5 的版本,并且在一行中,太棒了! (2认同)

小智 7

一定要将目录更改为"models\research \",并尝试使用protoc版本3.4.0从教程中执行步骤,就像教程一样.我只使用3.4.0为我工作.

我的cmd行有效:

C:\Users\...\protoc-3.4.0-win32\bin\protoc object_detection/protos/*.proto --python_out=.
Run Code Online (Sandbox Code Playgroud)


Noc*_*sol 6

我将把这个贴在我能找到的所有这些问题上,以便人们知道。无论如何,我必须为自己和其他人写下这些指示。

以下在某种程度上起作用和不起作用:

protoc object_detection/protos/*.proto --python_out=.
Run Code Online (Sandbox Code Playgroud)

指定所有文件的 *.proto 不适用于编译器。如果您使用的是3.5 版,则必须指定每个单独的文件

所以这里是它的样子:

  1. 运行命令
  2. 将您的目录更改为您下载的研究文件夹(可能不同):

    cd /d C:\Users\yourusername\Desktop\TensorFlow\models-master\models-master\research
    
    Run Code Online (Sandbox Code Playgroud)
  3. 获取您下载的 protroc.exe 文件的位置

    C:\Users\yourusername\Desktop\TensorFlow\protoc-3.5.1-win32\bin\protoc 
    
    Run Code Online (Sandbox Code Playgroud)
  4. 转到 protos 文件夹,以便您知道需要单独执行哪些文件

    C:\Users\yourusername\Desktop\TensorFlow\models-master\models-master\research\object_detection\protos
    
    Run Code Online (Sandbox Code Playgroud)
  5. 现在开始在 cmd 中向该文件夹中的每个单独的 .proto 项目发送垃圾邮件:

    C:\Users\yourusername\Desktop\TensorFlow\protoc-3.5.1-win32\bin\protoc object_detection/protos/anchor_generator.proto --python_out=.
    C:\Users\yourusername\Desktop\TensorFlow\protoc-3.5.1-win32\bin\protoc object_detection/protos/argmax_matcher.proto --python_out=.
    C:\Users\yourusername\Desktop\TensorFlow\protoc-3.5.1-win32\bin\protoc object_detection/protos/bipartite_matcher.proto --python_out=.
    ....and so on until you finish all items in the protos folder
    
    Run Code Online (Sandbox Code Playgroud)
  6. 或者你可以收工并获得 3.4 并运行:

    C:\Users\yourusername\Projects\TensorFlow\protoc-3.5.1-win32\bin\protoc object_detection/protos/*.proto --python_out=.
    
    Run Code Online (Sandbox Code Playgroud)

如果我能澄清一些,请告诉我。我尽量说得很清楚,所以像我这样的白痴可以理解。


Aad*_*att 5

将目录更改为tensorflow的models或model master,然后你必须使用以下命令一一编译protobuff的.proto文件

protoc --python_out=. .\object_detection\protos\anchor_generator.proto 
protoc --python_out=. .\object_detection\protos\argmax_matcher.proto  
protoc --python_out=. .\object_detection\protos\bipartite_matcher.proto 
protoc --python_out=. .\object_detection\protos\box_coder.proto 
protoc --python_out=. .\object_detection\protos\box_predictor.proto 
protoc --python_out=. .\object_detection\protos\eval.proto 
protoc --python_out=. .\object_detection\protos\faster_rcnn.proto 
protoc --python_out=. .\object_detection\protos\faster_rcnn_box_coder.proto 
protoc --python_out=. .\object_detection\protos\grid_anchor_generator.proto 
protoc --python_out=. .\object_detection\protos\hyperparams.proto 
protoc --python_out=. .\object_detection\protos\image_resizer.proto 
protoc --python_out=. .\object_detection\protos\input_reader.proto 
protoc --python_out=. .\object_detection\protos\losses.proto 
protoc --python_out=. .\object_detection\protos\matcher.proto 
protoc --python_out=. .\object_detection\protos\mean_stddev_box_coder.proto 
protoc --python_out=. .\object_detection\protos\model.proto 
protoc --python_out=. .\object_detection\protos\optimizer.proto 
protoc --python_out=. .\object_detection\protos\pipeline.proto 
protoc --python_out=. .\object_detection\protos\post_processing.proto 
protoc --python_out=. .\object_detection\protos\preprocessor.proto 
protoc --python_out=. .\object_detection\protos\region_similarity_calculator.proto 
protoc --python_out=. .\object_detection\protos\square_box_coder.proto 
protoc --python_out=. .\object_detection\protos\ssd.proto 
protoc --python_out=. .\object_detection\protos\ssd_anchor_generator.proto 
protoc --python_out=. .\object_detection\protos\string_int_label_map.proto 
protoc --python_out=. .\object_detection\protos\train.proto 
protoc --python_out=. .\object_detection\protos\keypoint_box_coder.proto 
protoc --python_out=. .\object_detection\protos\multiscale_anchor_generator.proto
protoc --python_out=. .\object_detection\protos\graph_rewriter.proto
Run Code Online (Sandbox Code Playgroud)


Cip*_*agă 0

这些.proto文件应该位于tensorflow-models/research/object_detection/protos/.

所以你应该首先

cd C:\path\to\tensorflow-models\research 
Run Code Online (Sandbox Code Playgroud)

按照安装说明。上面是一个假想的路径,使用Windows路径结构。您应该将其替换为计算机上的实际路径。当您位于该目录中时,您可以运行命令:

C:\Program Files\protoc-<version>\bin\protoc object_detection/protos/.proto --python_out=.
Run Code Online (Sandbox Code Playgroud)

再次强调,以上只是一个一般示例。您必须更换<version>为您的protoc版本。

不要复制粘贴以上内容,因为它不能直接在您的计算机上运行相反,您必须在计算机上protoc找到二进制文件的路径并使用该路径作为之前的命令object_detection/protos/.proto --python_out=.