Trying work with the recently released Tensorflow Object Detection API, and was wondering how I could evaluate one of the pretrained models they provided in their model zoo? ex. how can I get the mAP value for that pretrained model?
Since the script they've provided seems to use checkpoints (according to their documentation) I've tried making a dumb copy of a checkpoint that pointed to the provided model.ckpt.data-00000-of-00001
model in their model zoo, but eval.py didn't like that.
checkpoint
model_checkpoint_path: "model.ckpt.data-00000-of-00001"
I've considered training on the pretrained one briefly then evaluating that... but I'm not sure if this would give me the right metric.
Sorry if this is a rudimentary question - I'm just starting out on Tensorflow and wanted to verify I was getting the right stuff. Would appreciate any pointers!
EDIT:
I made a checkpoint file as per Jonathan's answer:
model_checkpoint_path: "model.ckpt"
all_model_checkpoint_paths: "model.ckpt"
which the evaluation script took, and evaluated using the COCO dataset. However the evaluation stopped and said there was a shape mismatch:
...
[[Node: save/Assign_19 = Assign[T=DT_FLOAT, _class=["loc:@BoxPredictor_4/ClassPredictor/weights"], use_locking=true, validate_shape=true, _device="/job:localhost/replica:0/task:0/gpu:0"](BoxPredictor_4/ClassPredictor/weights, save/RestoreV2_19/_15)]]
2017-07-05 18:40:11.969641: W tensorflow/core/framework/op_kernel.cc:1158] Invalid argument: Assign requires shapes of both tensors to match. lhs shape= [1,1,256,486] rhs shape= [1,1,256,546]
[[Node: save/Assign_19 = Assign[T=DT_FLOAT, _class=["loc:@BoxPredictor_4/ClassPredictor/weights"], use_locking=true, validate_shape=true, _device="/job:localhost/replica:0/task:0/gpu:0"](BoxPredictor_4/ClassPredictor/weights, save/RestoreV2_19/_15)]]
2017-07-05 18:40:11.969725: W tensorflow/core/framework/op_kernel.cc:1158]
...
Invalid argument: Assign requires shapes of both tensors to match. lhs shape= [1,1,256,486] rhs shape= [1,1,256,546]
tensorflow.python.framework.errors_impl.InvalidArgumentError: Assign requires shapes of both tensors to match. lhs shape= [1,1,256,486] rhs shape= [1,1,256,546]
What might have caused this shape mismatch? And how do I fix it?
python eval.py --logtostderr --checkpoint_dir=path/to/model.ckpt eval_dir=path/to/eval --pipeline_config_path=path/to/.config
but this didn't work; to clarify, where exactly am I indicating where to point to? (Currently am using the .config file to point to the ckpt file as well) Also just to be sure: is it a single mAP value that I get at the end? – Indebted