I have trained a model with fine-tuning pre-trained model ssd_mobilenet_v2_coco_2018. Here, I have used the exact same pipeline.config file for training which is available inside ssd_mobilenet_v2_coco_2018 pre-trained folder.
I have only removed the batch_norm_trainable: true flag and changed the number of classes (4).
After training the model with my custom datasets with 4 classes, I found concat and concat_1 nodes get exchange with each other.
Pre-trained model has
| concat | 1x1917x1x4 |
after-training it becomes
| concat | 1x1917x5 |
I have attached both tensorboard graph visualisation images. First image is pre-trained graph ssd_mobilenet_v2_coco_2018.

The node exchanges can be seen on the rightmost corner of the image. As in the pre-trained graph, Postprocess layer connect with concat_1 and Squeeeze connect with concat. But after the training, the graph shows completely reverse. Like Prosprocess layer connect with concat and Squeeeze connect with concat_1.
Further, I also found in the pre-trained model graph that the Preprocessor takes input ToFloat while after training the graph shows Cast as an input to Preprocessor.
I have fed the input to the model as tfrecords.


