首页 > 解决方案 > 使用protobuf编译时是否可以循环,将.proto文件转换为.py文件?

问题描述

我正在使用 TensorFlow 为对象识别项目设置环境。在编译一些 .proto 文件时,我碰壁了。努力找到文件的路径/然后找到 protobuf 应用程序的路径/然后继续-- python_out=.为每个单独的 proto 文件发出命令!

我在做什么/试图做什么: 按照这个(https://www.edureka.co/blog/tensorflow-object-detection-tutorial/#object)教程之类的关于edureka的事情,我设法做到了:

命令

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=.

....依此类推,直到您完成 protos 文件夹中的所有项目

所以这基本上允许我在每个 proto 文件下编译为 .py 文件。我确实有更多的事情要做,所以为了提高工作效率——我如何循环这个来一遍又一遍地通过需要编译的原型文件来完成完全相同的任务?

标签: pythontensorflowprotocol-buffersobject-recognition

解决方案


我能够按照以下步骤解决此问题:

  1. 导航到Tensorflow\models\research命令行中的文件夹(路径可能因您的情况而异)
  2. 输入这个命令for %i in (object_detection\protos\*.proto) do protoc %i --python_out=.

它将为文件夹中.py的每个.proto文件创建文件Tensorflow\models\research,如此屏幕截图所示

希望这可以帮助。


推荐阅读