我目前正在尝试重新培训Google Tensorflow Object Detection
我按照sentdex's
tutorial中的步骤操作(可能和你们中的许多人一样)。
在我生成tf_records
并将其移动到目录models/research/object_detection
后,应该为训练设置所有内容。
初始化我使用的培训流程:python train.py --logtostderr --train_dir=training/ --pipeline_config_path=training/ssd_mobilenet_v1_pets.config
结果应该是打印当前步骤的命令行和达到的准确度,但我得到了:
Traceback (most recent call last):
File "train.py", line 49, in <module>
from object_detection import trainer
File "/home/ubuntu/tensorflow/research/object_detection/trainer.py", line 27, in <module>
from object_detection.builders import preprocessor_builder
File "/home/ubuntu/tensorflow/research/object_detection/builders/preprocessor_builder.py", line 21, in <module>
from object_detection.protos import preprocessor_pb2
File "/home/ubuntu/tensorflow/research/object_detection/protos/preprocessor_pb2.py", line 71, in <module>
options=None, file=DESCRIPTOR),
TypeError: __new__() got an unexpected keyword argument 'file'
我正在使用Ubuntu 16.04开发Amazon's g2.2xlarge
,其中tensorflow
和nvidia cuda
驱动程序准备就绪(我猜)。
任何想法为何出错?非常感谢!
答案 0 :(得分:0)
你在某种程度上有不同版本的谷歌协议缓冲库正在发挥作用。 preprocessor_pb2.py是使用新的(过去的3.5)版本的protobuf生成的,它将file
参数引入生成的代码(https://github.com/google/protobuf/blob/9f80df026933901883da1d556b38292e14836612/CHANGES.txt#L74)。而且/home/ubuntu/tensorflow/research/object_detection/protos/preprocessor_pb2.py
中第71行的调用必须使用早期版本的protoc
进行编译,但没有此字段。