【发布时间】:2019-01-13 01:09:52
【问题描述】:
我正在使用 TensorFlow 为对象识别项目设置环境。在编译一些 .proto 文件时,我碰壁了。努力找到文件的路径/然后找到 protobuf 应用程序的路径/然后继续为每个 proto 文件命令-- python_out=.!!
我在做什么/想要做什么: 按照这个(https://www.edureka.co/blog/tensorflow-object-detection-tutorial/#object)关于 edureka 的教程,我设法做到了:
- 将“models”和“protobuf”保存在“Tensorflow”文件夹下
-
进入 Tensorflow 文件夹,然后进入研究文件夹并使用以下命令从那里运行 protobuf:
"path_of_protobuf's bin"./bin/protoc object_detection/protos/
命令
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 文件。我确实有更多的事情要做,所以为了提高工作效率 - 我如何循环这个以一遍又一遍地通过需要编译的原始文件完成完全相同的任务?
【问题讨论】:
-
通常这种类型的任务会通过脚本自动完成。 Bash 很常见,我看到你在 Windows 上,所以你可以使用 python 来执行 shell 命令或 powershell。该脚本将在项目根目录下搜索
.proto文件,然后为它发现的每个文件运行protoc </path/to/proto/> --python-out=. -
也许我没听懂。为什么不简单地
C:\Users\yourusername\Desktop\TensorFlow\protoc-3.5.1-win32\bin\protoc object_detection/protos/*.proto --python_out=.? (注意星号而不是文件名) -
仅仅因为有大约 40 个文件需要评论 - time is money. 我查看了 windows 脚本主机的使用;我现在解决了这个问题 - 谢谢。
标签: python tensorflow protocol-buffers object-recognition