title: How to evaluate a pretrained model in Tensorflow object detection api
body: <p>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? </p>
  
  <p>Since the <a href="https://github.com/tensorflow/models/blob/master/object_detection/eval.py" rel="noreferrer">script</a> they've provided seems to use checkpoints (according to their <a href="https://github.com/tensorflow/models/blob/master/object_detection/g3doc/running_locally.md" rel="noreferrer">documentation</a>) I've tried making a dumb copy of a checkpoint that pointed to the provided <code>model.ckpt.data-00000-of-00001</code> model in their model zoo, but eval.py didn't like that. </p>
  
  <pre><code>checkpoint
     model_checkpoint_path: "model.ckpt.data-00000-of-00001"
  </code></pre>
  
  <p>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. </p>
  
  <p>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!</p>
  
  <p><strong>EDIT:</strong></p>
  
  <p>I made a checkpoint file as per Jonathan's answer: </p>
  
  <pre><code>model_checkpoint_path: "model.ckpt"
  all_model_checkpoint_paths: "model.ckpt"
  </code></pre>
  
  <p>which the evaluation script took, and evaluated using the COCO dataset. However the evaluation stopped and said there was a shape mismatch: </p>
  
  <pre><code>...
  [[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]
  </code></pre>
  
  <p><strong>What might have caused this shape mismatch? And how do I fix it?</strong></p>