Tensorflow:TypeError:uuu new_uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu;文件';

Tensorflow:TypeError:uuu new_uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu;文件';,tensorflow,Tensorflow,我正在尝试运行pet探测器google cloud示例,如图所示:,并在我实际尝试运行培训之前,一直获得大部分方法,直到我运行命令: gcloud ml-engine jobs submit training `whoami`_object_detection_`date +%s` \ --runtime-version 1.2 \ --job-dir=gs://test-run-2/train \ --packages dist/object_detection-0.1.tar.g

我正在尝试运行pet探测器google cloud示例,如图所示:,并在我实际尝试运行培训之前,一直获得大部分方法,直到我运行命令:

gcloud ml-engine jobs submit training `whoami`_object_detection_`date +%s` \
  --runtime-version 1.2 \
  --job-dir=gs://test-run-2/train \
  --packages dist/object_detection-0.1.tar.gz,slim/dist/slim-0.1.tar.gz \
  --module-name object_detection.train \
  --region us-central1 \
  --config object_detection/samples/cloud/cloud.yml \
  -- \
  --train_dir=gs://test-run-2/train \
  --pipeline_config_path=gs://test-run-2/data/pipeline.config
这不可避免地会导致错误:

Traceback (most recent call last):
  File "/usr/lib/python2.7/runpy.py", line 174, in _run_module_as_main
    "__main__", fname, loader, pkg_name)
  File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
    exec code in run_globals
  File "/root/.local/lib/python2.7/site-packages/object_detection/train.py", line 49, in <module>
    from object_detection import trainer
  File "/root/.local/lib/python2.7/site-packages/object_detection/trainer.py", line 27, in <module>
    from object_detection.builders import preprocessor_builder
  File "/root/.local/lib/python2.7/site-packages/object_detection/builders/preprocessor_builder.py", line 21, in <module>
    from object_detection.protos import preprocessor_pb2
  File "/root/.local/lib/python2.7/site-packages/object_detection/protos/preprocessor_pb2.py", line 71, in <module>
    options=None, file=DESCRIPTOR),
TypeError: __new__() got an unexpected keyword argument 'file'
回溯(最近一次呼叫最后一次):
文件“/usr/lib/python2.7/runpy.py”,第174行,在运行模块中作为主模块
“\uuuuu main\uuuuuuuuuuuuuuuuuuuuuuuuu”,fname,loader,pkg\u name)
文件“/usr/lib/python2.7/runpy.py”,第72行,在运行代码中
run_globals中的exec代码
文件“/root/.local/lib/python2.7/site packages/object\u detection/train.py”,第49行,在
从对象检测导入培训器
文件“/root/.local/lib/python2.7/site packages/object\u detection/trainer.py”,第27行,在
从object_detection.builders导入预处理器_builder
文件“/root/.local/lib/python2.7/site packages/object\u detection/builders/preprocessor\u builder.py”,第21行,在
从object_detection.protos导入预处理器_pb2
文件“/root/.local/lib/python2.7/site packages/object_detection/protos/preprocessor_pb2.py”,第71行,在
选项=无,文件=描述符),
TypeError:\uuuuuu new\uuuuuuuuuuuuuuuuuuuuuuu()获取了意外的关键字参数“file”

我不确定我到底做错了什么,也不确定错误来自哪里,因为我看不到预处理器\u pb2.py文件的内部。任何帮助都将不胜感激

遇到此问题-可能是由于在1.2上运行作业时使用了更新的tensorflow dist(1.4)。我通过传入一个yaml配置文件来解决它:

trainingInput:
  runtimeVersion: "1.4"
  pythonVersion: "3.5"

如果您遇到matplot lib导入错误,您需要遵循以下步骤:目前,直到tensorflow models repo修复它。

@olive_tree给出了一个很好的答案,最终成为我的问题的是我编译时使用的protobuf版本。确保您的protoc版本与此处描述的正确版本匹配:

这就是我最后不得不运行的(在OSX上)


瞧,问题解决了

我在将tensorflow升级到1.11版后遇到了这个问题,并通过运行以下程序解决了这个问题:
pip安装——升级protobuf

遇到类似问题。我强烈建议使用Ubuntu的人“不要遵循”这一点。卸载或删除
protobuf
是一件危险的事情,可能会导致系统崩溃。
brew uninstall protobuf
brew install protobuf@2.6