导入错误:无法导入名称input_reader_pb2

时间:2018-09-22 12:42:48

标签: python tensorflow object-detection training-data

我正在使用Tensorflow对象检测API训练我的对象检测模型。我累积了数据集,并正在完成this教程。

一切顺利,直到我尝试训练我的数据集为止。当我在终端上运行以下行时,

python train.py --logtostderr \ 
   --train_dir=training/ \       
--pipeline_config_path=training/ssd_mobilenet_v1_coco.config 

我收到以下错误

Traceback (most recent call last):
File "legacy/train.py", line 49, in <module>
from object_detection.builders import dataset_builder
File "/usr/local/lib/python2.7/dist-packages/object_detection-0.1- 
py2.7.egg/object_detection/builders/dataset_builder.py", line 27, in 
<module>
from object_detection.data_decoders import tf_example_decoder
File "/usr/local/lib/python2.7/dist-packages/object_detection-0.1- 
py2.7.egg/object_detection/data_decoders/tf_example_decoder.py", line 
24, in <module>
from object_detection.protos import input_reader_pb2
ImportError: cannot import name input_reader_pb2

我尝试搜索网站和评论,但不幸的是无法解决,有人可以帮忙吗!

谢谢!

2 个答案:

答案 0 :(得分:1)

我想出了答案。我使用的协议版本3.0.0(protobuf编译器)处于beta测试模式,并且存在一些错误。因此,请使用

首先检查protobuf版本
proto --version

如果它是libprotoc 3.0.0,请清除它并安装2.6.1。 完成后,

cd models/research
protoc object_detection/ --python.out=.

现在应该可以了!

答案 1 :(得分:0)

要解决评论中报告的“未知标志”错误 使用protoc object_detection/protos/*.proto --python_out=. 先前的答案拼写为'。 '在python中'.'out