Models: Python: can't open file 'object_detection/builders/model_builder_test.py': [Errno 2] No such file or directory

Created on 8 Nov 2017  路  8Comments  路  Source: tensorflow/models

I've checked related issues but did not find a solution for this issue. I followed the instructions in
https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/installation.md and the steps seemed to complete OK, but when I tried to run python object_detection/builders/model_builder_test.py I get: python: can't open file 'object_detection/builders/model_builder_test.py': [Errno 2] No such file or directory.

I thought that I may get this error because maybe the tensorflow/models/research/ and slim directories were not correctly added to the PYTHONPATH.

I tried:
set PYTHONPATH=C:\Users\User\Documents\GitHub\models;C:\Users\User\Documents\GitHub\models\slim

Then ran:
python -c "import sys; print(sys.path)"

Got:
['', 'C:\Users\User\Documents\GitHub\models', 'C:\Users\User\Documents\GitHub\models\slim', 'C:\Users\User\New\Anaconda3\envs\tensorflow\python35.zip', 'C:\Users\User\New\Anaconda3\envs\tensorflow\DLLs', 'C:\Users\User\New\Anaconda3\envs\tensorflow\lib', 'C:\Users\User\New\Anaconda3\envs\tensorflow', 'C:\Users\User\New\Anaconda3\envs\tensorflow\lib\site-packages', 'C:\Users\User\New\Anaconda3\envs\tensorflow\lib\site-packages\cycler-0.10.0-py3.5.egg', 'C:\Users\User\New\Anaconda3\envs\tensorflow\lib\site-packages\object_detection-0.1-py3.5.egg']

It looks to me like the tensorflow/models/research/ and slim directories have been added to the PYTHONPATH. Could somebody please confirm this?

What am I missing?

System Information

  • What is the top-level directory of the model you are using:
    C:\Users\User\Documents\GitHub\models
  • Have I written custom code (as opposed to using a stock example script provided in TensorFlow):
    No
  • OS Platform and Distribution (e.g., Linux Ubuntu 16.04):
    Windows 10.
  • TensorFlow installed from (source or binary):
    Installed TensorFlow for Windows with Anaconda: conda create -n tensorflow python=3.5
  • TensorFlow version (use command below):
    b'unknown' 1.4.0
  • CUDA/cuDNN version:
    I'm not using GPU
  • GPU model and memory:
    I'm not using GPU
  • Exact command to reproduce:
    object_detection/builders/model_builder_test.py

Most helpful comment

I got it to work. What I did was:

I ran:
protoc --python_out=. .\object_detection\protos\anchor_generator.proto .\object_detection\protos\argmax_matcher.proto .\object_detection\protos\bipartite_matcher.proto .\object_detection\protos\box_coder.proto .\object_detection\protos\box_predictor.proto .\object_detection\protos\eval.proto .\object_detection\protos\faster_rcnn.proto .\object_detection\protos\faster_rcnn_box_coder.proto .\object_detection\protos\grid_anchor_generator.proto .\object_detection\protos\hyperparams.proto .\object_detection\protos\image_resizer.proto .\object_detection\protos\input_reader.proto .\object_detection\protos\keypoint_box_coder.proto .\object_detection\protos\losses.proto .\object_detection\protos\matcher.proto .\object_detection\protos\mean_stddev_box_coder.proto .\object_detection\protos\model.proto .\object_detection\protos\optimizer.proto .\object_detection\protos\pipeline.proto .\object_detection\protos\post_processing.proto .\object_detection\protos\preprocessor.proto .\object_detection\protos\region_similarity_calculator.proto .\object_detection\protos\square_box_coder.proto .\object_detection\protos\ssd.proto .\object_detection\protos\ssd_anchor_generator.proto .\object_detection\protosstring_int_label_map.proto .\object_detection\protos\train.proto

What was missing was: .\object_detection\protos\keypoint_box_coder.proto

Then ran:
python setup.py build
python setup.py install

Then changed:
nets to research.slim.net in faster_rcnn_inception_resnet_v2_feature_extractor.py and faster_rcnn_resnet_v1_feature_extractor.py (in the models folder)

Ran:
python object_detection/builders/model_builder_test.py

Got:
Ran 11 tests in 0.195s

OK

All 8 comments

Hi first run this code

# From tensorflow/models/research/
export PYTHONPATH=$PYTHONPATH:`pwd`:`pwd`/slim

it should work now!

Hi Vikramank! Isn't export PYTHONPATH=$PYTHONPATH:pwd:pwd/slim for Unix? I have a Windows machine.

This question is better asked on StackOverflow since it is not a bug or feature request. There is also a larger community that reads questions there. Thanks!

I got it to work. What I did was:

I ran:
protoc --python_out=. .\object_detection\protos\anchor_generator.proto .\object_detection\protos\argmax_matcher.proto .\object_detection\protos\bipartite_matcher.proto .\object_detection\protos\box_coder.proto .\object_detection\protos\box_predictor.proto .\object_detection\protos\eval.proto .\object_detection\protos\faster_rcnn.proto .\object_detection\protos\faster_rcnn_box_coder.proto .\object_detection\protos\grid_anchor_generator.proto .\object_detection\protos\hyperparams.proto .\object_detection\protos\image_resizer.proto .\object_detection\protos\input_reader.proto .\object_detection\protos\keypoint_box_coder.proto .\object_detection\protos\losses.proto .\object_detection\protos\matcher.proto .\object_detection\protos\mean_stddev_box_coder.proto .\object_detection\protos\model.proto .\object_detection\protos\optimizer.proto .\object_detection\protos\pipeline.proto .\object_detection\protos\post_processing.proto .\object_detection\protos\preprocessor.proto .\object_detection\protos\region_similarity_calculator.proto .\object_detection\protos\square_box_coder.proto .\object_detection\protos\ssd.proto .\object_detection\protos\ssd_anchor_generator.proto .\object_detection\protosstring_int_label_map.proto .\object_detection\protos\train.proto

What was missing was: .\object_detection\protos\keypoint_box_coder.proto

Then ran:
python setup.py build
python setup.py install

Then changed:
nets to research.slim.net in faster_rcnn_inception_resnet_v2_feature_extractor.py and faster_rcnn_resnet_v1_feature_extractor.py (in the models folder)

Ran:
python object_detection/builders/model_builder_test.py

Got:
Ran 11 tests in 0.195s

OK

@KimmoOjala Great! I have difficulty in Protobuf Compilation because I cannot protoc
those .proto files in object_detection\protos. And I got it work by your method.

i am getting error in this file=DESCRIPTOR,please let me what is that file ??
C:\ProgramData\Anaconda3) C:\Object-identity\models\research>python object_det
tion/builders/model_builder_test.py
raceback (most recent call last):
File "object_detection/builders/model_builder_test.py", line 21, in
from object_detection.builders import model_builder
File "c:\object-identity\models\research\object_detection\builders\model_buil
r.py", line 17, in
from object_detection.builders import anchor_generator_builder
File "c:\object-identity\models\research\object_detection\builders\anchor_gen
ator_builder.py", line 20, in
from object_detection.protos import anchor_generator_pb2
File "c:\object-identity\models\research\object_detection\protos\anchor_gener
or_pb2.py", line 16, in
from object_detection.protos import grid_anchor_generator_pb2 as object__de
ction_dot_protos_dot_grid__anchor__generator__pb2
File "c:\object-identity\models\research\object_detection\protos\grid_anchor_
nerator_pb2.py", line 41, in
options=None, file=DESCRIPTOR),
ypeError: __init__() got an unexpected keyword argument 'file'

Looks like the newer versions of protobuf adds file=DESCRIPTOR to _descriptor.FieldDescriptor method calls. I grabbed protoc-3.3.0-osx-x86_64 from https://github.com/google/protobuf/releases and it generates compatible stuff.

@KimmoOjala hello,i have finished most steps following what you said. But the screen appeared a frame noted that python stopped to work when i ran:python object_detection/builders/model_builder_test.py. I have no idea about it, could you give me some solutions? My python version is 3.5

Was this page helpful?
0 / 5 - 0 ratings