{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/compounding-the-performance-improvements-of","title":"Compounding the Performance Improvements of Assembled Techniques in a Convolutional Neural Network","arxiv_id":"2001.06268","date":"2020-01-17","proceeding":null,"authors":["Jungkyu Lee","Taeryun Won","Tae Kwan Lee","Hyemin Lee","Geonmo Gu","Kiho Hong"],"abstract":"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","url_abs":"https://arxiv.org/abs/2001.06268v2","url_pdf":"https://arxiv.org/pdf/2001.06268v2.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"compounding-the-performance-improvements-of","repo_url":"https://github.com/clovaai/assembled-cnn","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":"fine-grained-image-classification","task_name":"Fine-Grained Image Classification"},{"task_slug":"fine-grained-visual-recognition","task_name":"Fine-Grained Visual Recognition"},{"task_slug":"classification","task_name":"General Classification"},{"task_slug":"image-classification","task_name":"Image Classification"},{"task_slug":"image-retrieval","task_name":"Image Retrieval"},{"task_slug":"retrieval","task_name":"Retrieval"},{"task_slug":"transfer-learning","task_name":"Transfer Learning"},{"task_slug":"image-classification","task_name":"image-classification"}],"methods":[{"method_slug":"1x1-convolution","method_name":"1x1 Convolution"},{"method_slug":"anti-alias-downsampling","method_name":"Anti-Alias Downsampling"},{"method_slug":"assemble-resnet","method_name":"Assemble-ResNet"},{"method_slug":"autoaugment","method_name":"AutoAugment"},{"method_slug":"average-pooling","method_name":"Average Pooling"},{"method_slug":"batch-normalization","method_name":"Batch Normalization"},{"method_slug":"big-little-module","method_name":"Big-Little Module"},{"method_slug":"bottleneck-residual-block","method_name":"Bottleneck Residual Block"},{"method_slug":"colorjitter","method_name":"ColorJitter"},{"method_slug":"convolution","method_name":"Convolution"},{"method_slug":"cosine-annealing","method_name":"Cosine Annealing"},{"method_slug":"cutout","method_name":"Cutout"},{"method_slug":"dense-connections","method_name":"Dense Connections"},{"method_slug":"depthwise-convolution","method_name":"Depthwise Convolution"},{"method_slug":"depthwise-separable-convolution","method_name":"Depthwise Separable Convolution"},{"method_slug":"dilated-convolution","method_name":"Dilated Convolution"},{"method_slug":"dropblock","method_name":"DropBlock"},{"method_slug":"global-average-pooling","method_name":"Global Average Pooling"},{"method_slug":"kaiming-initialization","method_name":"Kaiming Initialization"},{"method_slug":"lstm","method_name":"LSTM"},{"method_slug":"label-smoothing","method_name":"Label Smoothing"},{"method_slug":"linear-layer","method_name":"Linear Layer"},{"method_slug":"linear-warmup-with-cosine-annealing","method_name":"Linear Warmup With Cosine Annealing"},{"method_slug":"max-pooling","method_name":"Max Pooling"},{"method_slug":"mixup","method_name":"Mixup"},{"method_slug":"mobilenetv1","method_name":"MobileNetV1"},{"method_slug":"pointwise-convolution","method_name":"Pointwise Convolution"},{"method_slug":"randomhorizontalflip","method_name":"Random Horizontal Flip"},{"method_slug":"random-resized-crop","method_name":"Random Resized Crop"},{"method_slug":"relu","method_name":"ReLU"},{"method_slug":"resnet-d","method_name":"ResNet-D"},{"method_slug":"residual-block","method_name":"Residual Block"},{"method_slug":"residual-connection","method_name":"Residual Connection"},{"method_slug":"sgd-with-momentum","method_name":"SGD with Momentum"},{"method_slug":"selective-kernel","method_name":"Selective Kernel"},{"method_slug":"selective-kernel-convolution","method_name":"Selective Kernel Convolution"},{"method_slug":"sigmoid-activation","method_name":"Sigmoid Activation"},{"method_slug":"softmax","method_name":"Softmax"},{"method_slug":"tanh-activation","method_name":"Tanh Activation"},{"method_slug":"weight-decay","method_name":"Weight Decay"},{"method_slug":"xavier-initialization","method_name":"Xavier Initialization"}],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/fine-grained-image-classification-on-fgvc","task":"Fine-Grained Image Classification","dataset":"FGVC Aircraft","model":"Assemble-ResNet-FGVC-50","rank_in_archive_order":41,"of":57,"metrics":{"Accuracy":"92.4"},"uses_additional_data":false},{"leaderboard":"/sota/fine-grained-image-classification-on-food-101","task":"Fine-Grained Image Classification","dataset":"Food-101","model":"Assemble-ResNet-FGVC-50","rank_in_archive_order":9,"of":15,"metrics":{"Accuracy":"92.5","Top 1 Accuracy":"92.47"},"uses_additional_data":false},{"leaderboard":"/sota/fine-grained-image-classification-on-oxford","task":"Fine-Grained Image Classification","dataset":"Oxford 102 Flowers","model":"Assemble-ResNet","rank_in_archive_order":9,"of":25,"metrics":{"Accuracy":"98.9%"},"uses_additional_data":true},{"leaderboard":"/sota/fine-grained-image-classification-on-oxford-2","task":"Fine-Grained Image Classification","dataset":"Oxford-IIIT Pets","model":"Assemble-ResNet-FGVC-50","rank_in_archive_order":6,"of":19,"metrics":{"Accuracy":"94.3%","Top-1 Error Rate":"5.7"},"uses_additional_data":false},{"leaderboard":"/sota/fine-grained-image-classification-on-sop","task":"Fine-Grained Image Classification","dataset":"SOP","model":"Assemble-ResNet-FGVC-50","rank_in_archive_order":1,"of":1,"metrics":{"Recall@1":"85.9"},"uses_additional_data":false},{"leaderboard":"/sota/fine-grained-image-classification-on-stanford","task":"Fine-Grained Image Classification","dataset":"Stanford Cars","model":"Assemble-ResNet-FGVC-50","rank_in_archive_order":47,"of":83,"metrics":{"Accuracy":"94.4%"},"uses_additional_data":false},{"leaderboard":"/sota/image-classification-on-imagenet","task":"Image Classification","dataset":"ImageNet","model":"Assemble-ResNet152","rank_in_archive_order":332,"of":1060,"metrics":{"GFLOPs":"15.8","Top 1 Accuracy":"84.2%"},"uses_additional_data":false},{"leaderboard":"/sota/image-classification-on-imagenet-real","task":"Image Classification","dataset":"ImageNet ReaL","model":"Assemble-ResNet152","rank_in_archive_order":27,"of":57,"metrics":{"Accuracy":"88.65%"},"uses_additional_data":false},{"leaderboard":"/sota/image-classification-on-imagenet-real","task":"Image Classification","dataset":"ImageNet ReaL","model":"Assemble ResNet-50","rank_in_archive_order":31,"of":57,"metrics":{"Accuracy":"87.82%"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2001.06268","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2001.06268"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/clovaai/assembled-cnn","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"ran_fixture":1,"unverified":10},"by_repo_kind":{"official":{"samples":11,"ran":1,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":0,"samples":[{"code_sha256_prefix":"5756d6bfbcce2dfc","entry":"fixed_padding","repo":"clovaai/assembled-cnn","repo_kind":"official","path":"nets/model_helper.py","file_url":"https://github.com/clovaai/assembled-cnn/blob/HEAD/nets/model_helper.py","link_basis":"plan_row","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"5756d6bfbcce2dfc"}},{"code_sha256_prefix":"0970ec81afd374c8","entry":"anti_aliased_downsample","repo":"clovaai/assembled-cnn","repo_kind":"official","path":"nets/blocks.py","file_url":"https://github.com/clovaai/assembled-cnn/blob/HEAD/nets/blocks.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"0970ec81afd374c8"}},{"code_sha256_prefix":"aa9fde2ef364ebff","entry":"batch_norm","repo":"clovaai/assembled-cnn","repo_kind":"official","path":"nets/model_helper.py","file_url":"https://github.com/clovaai/assembled-cnn/blob/HEAD/nets/model_helper.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"aa9fde2ef364ebff"}},{"code_sha256_prefix":"c756a6986ed2d1b8","entry":"conv2d_fixed_padding","repo":"clovaai/assembled-cnn","repo_kind":"official","path":"nets/model_helper.py","file_url":"https://github.com/clovaai/assembled-cnn/blob/HEAD/nets/model_helper.py","link_basis":"plan_row","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"c756a6986ed2d1b8"}},{"code_sha256_prefix":"bc3aa92a65ffc867","entry":"generalized_mean_pooling","repo":"clovaai/assembled-cnn","repo_kind":"official","path":"nets/blocks.py","file_url":"https://github.com/clovaai/assembled-cnn/blob/HEAD/nets/blocks.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"bc3aa92a65ffc867"}},{"code_sha256_prefix":"8ca9aa61ab881fc5","entry":"get_block_sizes","repo":"clovaai/assembled-cnn","repo_kind":"official","path":"functions/model_fns.py","file_url":"https://github.com/clovaai/assembled-cnn/blob/HEAD/functions/model_fns.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"8ca9aa61ab881fc5"}},{"code_sha256_prefix":"58ddea37201045ea","entry":"get_sup_loss","repo":"clovaai/assembled-cnn","repo_kind":"official","path":"losses/cls_losses.py","file_url":"https://github.com/clovaai/assembled-cnn/blob/HEAD/losses/cls_losses.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"58ddea37201045ea"}},{"code_sha256_prefix":"8e9e9366b2d2231c","entry":"get_train_op","repo":"clovaai/assembled-cnn","repo_kind":"official","path":"nets/optimizer_setting.py","file_url":"https://github.com/clovaai/assembled-cnn/blob/HEAD/nets/optimizer_setting.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"8e9e9366b2d2231c"}},{"code_sha256_prefix":"3a511a9f3d42665c","entry":"keep_prob_decay","repo":"clovaai/assembled-cnn","repo_kind":"official","path":"functions/model_fns.py","file_url":"https://github.com/clovaai/assembled-cnn/blob/HEAD/functions/model_fns.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"3a511a9f3d42665c"}},{"code_sha256_prefix":"d9ed2858fbdb4769","entry":"learning_rate_with_decay","repo":"clovaai/assembled-cnn","repo_kind":"official","path":"functions/model_fns.py","file_url":"https://github.com/clovaai/assembled-cnn/blob/HEAD/functions/model_fns.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"d9ed2858fbdb4769"}},{"code_sha256_prefix":"58b86e2110d9f973","entry":"sk_conv2d","repo":"clovaai/assembled-cnn","repo_kind":"official","path":"nets/blocks.py","file_url":"https://github.com/clovaai/assembled-cnn/blob/HEAD/nets/blocks.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"58b86e2110d9f973"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}