  Recent studies in image classification have demonstrated a variety of
techniques for improving the performance of Convolutional Neural Networks
(CNNs). However, attempts to combine existing techniques to create a practical
model are still uncommon. In this study, we carry out extensive experiments to
validate that carefully assembling these techniques and applying them to basic
CNN models (e.g. ResNet and MobileNet) can improve the accuracy and robustness
of the models while minimizing the loss of throughput. Our proposed assembled
ResNet-50 shows improvements in top-1 accuracy from 76.3\% to 82.78\%, mCE from
76.0\% to 48.9\% and mFR from 57.7\% to 32.3\% on ILSVRC2012 validation set.
With these improvements, inference throughput only decreases from 536 to 312.
To verify the performance improvement in transfer learning, fine grained
classification and image retrieval tasks were tested on several public datasets
and showed that the improvement to backbone network performance boosted
transfer learning performance significantly. Our approach achieved 1st place in
the iFood Competition Fine-Grained Visual Recognition at CVPR 2019, and the
source code and trained models are available at
https://github.com/clovaai/assembled-cnn
