Search code examples
pythonpython-3.xtensorflowobject-detection-api

Error running tensor flow model `TypeError: __init__() got an unexpected keyword argument 'file'`


I'm trying to install tensorflow Object Detection API. I have followed all the installations steps as of here. However, when I tried running python3 object_detection/builders/model_builder_test.py, I got this error:

Traceback (most recent call last):
  File "object_detection/builders/model_builder_test.py", line 21, in <module>
    from object_detection.builders import model_builder
  File "/Users/stanleynguyen/Documents/Projects/tf-models/research/object_detection/builders/model_builder.py", line 17, in <module>
    from object_detection.builders import anchor_generator_builder
  File "/Users/stanleynguyen/Documents/Projects/tf-models/research/object_detection/builders/anchor_generator_builder.py", line 20, in <module>
    from object_detection.protos import anchor_generator_pb2
  File "/Users/stanleynguyen/Documents/Projects/tf-models/research/object_detection/protos/anchor_generator_pb2.py", line 16, in <module>
    from object_detection.protos import grid_anchor_generator_pb2 as object__detection_dot_protos_dot_grid__anchor__generator__pb2
  File "/Users/stanleynguyen/Documents/Projects/tf-models/research/object_detection/protos/grid_anchor_generator_pb2.py", line 41, in <module>
    options=None, file=DESCRIPTOR),

I also tried deploying my model to Google Cloud ML Engine. However, the job failed outputing this trace:

The replica worker 4 exited with a non-zero status of 1. 
Termination reason: Error. 
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' 

Can anyone please help me understand what is happening? Have anyone seen this error before?


Solution

  • Just found out this is due to the version mismatch of one of the dependency which is protobuf, it must be 2.6.0 for it to compile the correct python file to support the model