{"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/towards-principled-design-of-deep","title":"Towards Principled Design of Deep Convolutional Networks: Introducing SimpNet","arxiv_id":"1802.06205","date":"2018-02-17","proceeding":null,"authors":["Seyyed Hossein Hasanpour","Mohammad Rouhani","Mohsen Fayyaz","Mohammad Sabokrou","Ehsan Adeli"],"abstract":"Major winning Convolutional Neural Networks (CNNs), such as VGGNet, ResNet,\nDenseNet, \\etc, include tens to hundreds of millions of parameters, which\nimpose considerable computation and memory overheads. This limits their\npractical usage in training and optimizing for real-world applications. On the\ncontrary, light-weight architectures, such as SqueezeNet, are being proposed to\naddress this issue. However, they mainly suffer from low accuracy, as they have\ncompromised between the processing power and efficiency. These inefficiencies\nmostly stem from following an ad-hoc designing procedure. In this work, we\ndiscuss and propose several crucial design principles for an efficient\narchitecture design and elaborate intuitions concerning different aspects of\nthe design procedure. Furthermore, we introduce a new layer called {\\it\nSAF-pooling} to improve the generalization power of the network while keeping\nit simple by choosing best features. Based on such principles, we propose a\nsimple architecture called {\\it SimpNet}. We empirically show that SimpNet\nprovides a good trade-off between the computation/memory efficiency and the\naccuracy solely based on these primitive but crucial principles. SimpNet\noutperforms the deeper and more complex architectures such as VGGNet, ResNet,\nWideResidualNet \\etc, on several well-known benchmarks, while having 2 to 25\ntimes fewer number of parameters and operations. We obtain state-of-the-art\nresults (in terms of a balance between the accuracy and the number of involved\nparameters) on standard datasets, such as CIFAR10, CIFAR100, MNIST and SVHN.\nThe implementations are available at\n\\href{url}{https://github.com/Coderx7/SimpNet}.","url_abs":"http://arxiv.org/abs/1802.06205v1","url_pdf":"http://arxiv.org/pdf/1802.06205v1.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":"towards-principled-design-of-deep","repo_url":"https://github.com/Coderx7/SimpNet","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"caffe2","reach":null}],"tasks":[{"task_slug":"image-classification","task_name":"Image Classification"}],"methods":[{"method_slug":"1x1-convolution","method_name":"1x1 Convolution"},{"method_slug":"average-pooling","method_name":"Average Pooling"},{"method_slug":"batch-normalization","method_name":"Batch Normalization"},{"method_slug":"bottleneck-residual-block","method_name":"Bottleneck Residual Block"},{"method_slug":"convolution","method_name":"Convolution"},{"method_slug":"dropout","method_name":"Dropout"},{"method_slug":"fire-module","method_name":"Fire Module"},{"method_slug":"global-average-pooling","method_name":"Global Average Pooling"},{"method_slug":"kaiming-initialization","method_name":"Kaiming Initialization"},{"method_slug":"max-pooling","method_name":"Max Pooling"},{"method_slug":"relu","method_name":"ReLU"},{"method_slug":"residual-block","method_name":"Residual Block"},{"method_slug":"residual-connection","method_name":"Residual Connection"},{"method_slug":"softmax","method_name":"Softmax"},{"method_slug":"squeezenet","method_name":"SqueezeNet"},{"method_slug":"xavier-initialization","method_name":"Xavier Initialization"}],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/image-classification-on-cifar-10","task":"Image Classification","dataset":"CIFAR-10","model":"SimpleNetv2","rank_in_archive_order":118,"of":265,"metrics":{"Percentage correct":"96.29"},"uses_additional_data":false},{"leaderboard":"/sota/image-classification-on-cifar-100","task":"Image Classification","dataset":"CIFAR-100","model":"SimpleNetv2","rank_in_archive_order":129,"of":211,"metrics":{"Percentage correct":"80.29"},"uses_additional_data":true}],"syntology":{"atlas_url":null,"mcp":null,"developers":"https://syntology.ai/developers"},"arxiv_metadata":null,"syntology_extracted_results":null}