{"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/hmq-hardware-friendly-mixed-precision","title":"HMQ: Hardware Friendly Mixed Precision Quantization Block for CNNs","arxiv_id":"2007.09952","date":"2020-07-20","proceeding":"ECCV 2020 8","authors":["Hai Victor Habi","Roy H. Jennings","Arnon Netzer"],"abstract":"Recent work in network quantization produced state-of-the-art results using mixed precision quantization. An imperative requirement for many efficient edge device hardware implementations is that their quantizers are uniform and with power-of-two thresholds. In this work, we introduce the Hardware Friendly Mixed Precision Quantization Block (HMQ) in order to meet this requirement. The HMQ is a mixed precision quantization block that repurposes the Gumbel-Softmax estimator into a smooth estimator of a pair of quantization parameters, namely, bit-width and threshold. HMQs use this to search over a finite space of quantization schemes. Empirically, we apply HMQs to quantize classification models trained on CIFAR10 and ImageNet. For ImageNet, we quantize four different architectures and show that, in spite of the added restrictions to our quantization scheme, we achieve competitive and, in some cases, state-of-the-art results.","url_abs":"https://arxiv.org/abs/2007.09952v1","url_pdf":"https://arxiv.org/pdf/2007.09952v1.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":"hmq-hardware-friendly-mixed-precision","repo_url":"https://github.com/sony-si/ai-research","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"hmq-hardware-friendly-mixed-precision","repo_url":"https://github.com/sony-si/ai-research/tree/master/HMQ","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"quantization","task_name":"Quantization"}],"methods":[{"method_slug":"gumbel-softmax","method_name":"Gumbel Softmax"},{"method_slug":"radam","method_name":"RAdam"}],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/quantization-on-imagenet","task":"Quantization","dataset":"ImageNet","model":"EfficientNet-B0-W8A8","rank_in_archive_order":13,"of":27,"metrics":{"Activation bits":"8","Top-1 Accuracy (%)":"76.4","Weight bits":"8"},"uses_additional_data":false},{"leaderboard":"/sota/quantization-on-imagenet","task":"Quantization","dataset":"ImageNet","model":"EfficientNet-B0-W4A4","rank_in_archive_order":14,"of":27,"metrics":{"Activation bits":"4","Top-1 Accuracy (%)":"76","Weight bits":"4"},"uses_additional_data":false},{"leaderboard":"/sota/quantization-on-imagenet","task":"Quantization","dataset":"ImageNet","model":"ResNet50-W3A4","rank_in_archive_order":15,"of":27,"metrics":{"Activation bits":"4","Top-1 Accuracy (%)":"75.45","Weight bits":"3"},"uses_additional_data":false},{"leaderboard":"/sota/quantization-on-imagenet","task":"Quantization","dataset":"ImageNet","model":"MobileNetV2","rank_in_archive_order":24,"of":27,"metrics":{"Top-1 Accuracy (%)":"70.9"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2007.09952","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2007.09952"}},"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/sony-si/ai-research","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/sony-si/ai-research/tree/master/HMQ","reach":null}],"summary":{"unverified":4},"by_repo_kind":{"official":{"samples":4,"ran":0,"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":"fa08a50194e0f100","entry":"accuracy_factor","repo":"sony-si/ai-research","repo_kind":"official","path":"HMQ/common/evaluation_functions.py","file_url":"https://github.com/sony-si/ai-research/blob/HEAD/HMQ/common/evaluation_functions.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":"fa08a50194e0f100"}},{"code_sha256_prefix":"2fd242865146b8f9","entry":"get_exp_cycle_annealing","repo":"sony-si/ai-research","repo_kind":"official","path":"HMQ/common/annealing_functions.py","file_url":"https://github.com/sony-si/ai-research/blob/HEAD/HMQ/common/annealing_functions.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":"2fd242865146b8f9"}},{"code_sha256_prefix":"650e3ec80e1cf35f","entry":"get_step_annealing","repo":"sony-si/ai-research","repo_kind":"official","path":"HMQ/common/annealing_functions.py","file_url":"https://github.com/sony-si/ai-research/blob/HEAD/HMQ/common/annealing_functions.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":"650e3ec80e1cf35f"}},{"code_sha256_prefix":"0a8dff265bf8855f","entry":"multiple_gpu_enable","repo":"sony-si/ai-research","repo_kind":"official","path":"HMQ/common/multiy_gpu_handler.py","file_url":"https://github.com/sony-si/ai-research/blob/HEAD/HMQ/common/multiy_gpu_handler.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":"0a8dff265bf8855f"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}