【发布时间】:2019-07-04 02:01:42
【问题描述】:
- 我正在使用通用集成学习范式训练多个模型, 目前我正在使用一些检测器,每次训练时我 必须编辑每个探测器的配置文件,这显然会导致 困惑,有几次我开始使用错误的配置进行训练 文件。
- 作为一种解决方案,我正在尝试为 Google 对象检测 API 构建一个编辑器 配置文件。配置文件适用于 Google Protocol Buffer。
- 链接到我使用的文件:pipeline.proto,object_detection/protos,例如.config file
我试过以下代码:
from object_detection.protos import input_reader_pb2
with open('/models/research/object_detection/samples/configs/ssd_resnet50_v1_fpn_shared_box_predictor_640x640_coco14_sync.config', 'rb') as f:
config = f.read()
read = input_reader_pb2.InputReader().ParseFromString(config)
我收到以下错误:
exec(code_obj, self.user_global_ns, self.user_ns)
File "<ipython-input-19-8043e6bb108f>", line 1, in <module>
input_reader_pb2.InputReader().ParseFromString(txt)
google.protobuf.message.DecodeError: Error parsing message
我在这里缺少什么?解析和编辑配置文件的适当方法是什么?
谢谢,
霍德
【问题讨论】:
-
.config 文件是文本; GPB 的默认线格式是二进制。我不知道 GPB 是否有文本线格式,但如果有的话,可能需要告诉解析器期望什么线格式。此外,tf_record_input_reader 字段似乎是在名为 input_reader 的
oneof内的 input_reader.proto 中定义的,因此 .config 文件中可能也需要该名称(input_reader)。希望这有助于您朝着正确的方向前进。
标签: python machine-learning protocol-buffers config