<p>The original <a href="https://arxiv.org/pdf/1512.02325.pdf" rel="nofollow noreferrer">SSD paper</a> that came out in 2016 was designed with 2 specific input image sizes, <code>300x300</code> and <code>512x512</code>. However, the backbone for that was Mobilenet (considering speed as the main factor). You can try resizing the images to <code>512x512</code> and then training. However, considering that the repo has <code>300x300</code> as the default value would probably mean that the model works best when the inputs are of that size and not any other.</p>
<p>There are however many other models that allow an input size of <code>640x640</code></p>
<p>In Tensorflow models zoo - version 1, you have <code>ssd_resnet50_v1</code> <a href="https://github.com/tensorflow/models/blob/master/research/object_detection/samples/configs/ssd_resnet50_v1_fpn_shared_box_predictor_640x640_coco14_sync.config" rel="nofollow noreferrer">config file</a> and in <a href="https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/tf2_detection_zoo.md" rel="nofollow noreferrer">version 2</a>, you have many other variants of SSD and EfficientDet which support <code>640x640</code> (with different backbones however).</p>
<p>You will probably get better results by training using the above-mentioned models</p>
Can't Train SSD Inception-V2 with Larger Input Resolution with TensorFlow Object Detection API
<p>I am looking to use the TensorFlow Object Detection API to train SSD Inception-V2 from scratch on a custom dataset with resolution larger than 300x300.</p>
<p>I am referencing this as a sample config file: <a href="https://github.com/tensorflow/models/blob/master/research/object_detection/samples/configs/ssd_inception_v2_coco.config" rel="nofollow noreferrer">https://github.com/tensorflow/models/blob/master/research/object_detection/samples/configs/ssd_inception_v2_coco.config</a></p>
<p>I have successfully trained a 4-class custom model with okay performance by setting:
<code>num_classes: 4</code> and pointing the training data path to my custom dataset.</p>
<p>However, the input resolution was set to 300x300 with:</p>
<pre><code>image_resizer {
  fixed_shape_resizer {
    height: 300
    width: 300
  }
}
</code></pre>
<p>My dataset has pretty small objects and I want to increase the input resolution during training.</p>
<p>However, If I just change this setting to:</p>
<pre><code>image_resizer {
  fixed_shape_resizer {
    height: 640
    width: 640
  }
}
</code></pre>
<p>The model does not train at all and the loss stays stagnate. I saw a few other threads that talked about changing the anchor boxes and customizing the SSD network to be compatible with the new resolution.</p>
<p>I have tried several configurations of anchor boxes and model customizations but I can never get the model training. (It looks like its training but the loss doesnt go down and the inference is garbage outputs)</p>
<p>Has anyone trained SSD Inception-V2 with the TensorFlow object detection API on resolution other than 300x300 and can supply more concrete steps to execute the training?</p>