Skip to main content
QUICK REVIEW

[论文解读] BMXNet: An Open-Source Binary Neural Network Implementation Based on MXNet

Haojin Yang, Martin Fritzsche|arXiv (Cornell University)|May 27, 2017
Advanced Neural Network Applications参考文献 8被引用 10
一句话总结

BMXNet 是一个基于 MXNet 的开源库,实现了使用 xnor 和 popcount 操作的二值神经网络(BNNs),以实现高效的推理和训练。通过二值化权重和激活,它在 CPU 和 GPU 上支持完整二值化和量化网络,实现了高达 29 倍的模型尺寸压缩和 125 倍的加速,相比标准 GEMM。

ABSTRACT

Binary Neural Networks (BNNs) can drastically reduce memory size and accesses by applying bit-wise operations instead of standard arithmetic operations. Therefore it could significantly improve the efficiency and lower the energy consumption at runtime, which enables the application of state-of-the-art deep learning models on low power devices. BMXNet is an open-source BNN library based on MXNet, which supports both XNOR-Networks and Quantized Neural Networks. The developed BNN layers can be seamlessly applied with other standard library components and work in both GPU and CPU mode. BMXNet is maintained and developed by the multimedia research group at Hasso Plattner Institute and released under Apache license. Extensive experiments validate the efficiency and effectiveness of our implementation. The BMXNet library, several sample projects, and a collection of pre-trained binary deep models are available for download at https://github.com/hpi-xnor

研究动机与目标

  • 解决在移动设备和物联网系统等低功耗设备上部署大型深度学习模型的挑战。
  • 通过二值化和量化权重与激活表示,减少深度神经网络的内存占用和计算成本。
  • 使用按位运算(xnor 和 popcount)而非浮点数运算,实现 BNN 的高效推理与训练。
  • 提供一个模块化、即插即用的框架,作为 MXNet 的替代品,支持二值化和低比特量化网络,并具备灵活的位宽控制能力。
  • 通过使用预训练模型在 Android 和 iOS 应用中实现 BNN 在移动端的实际部署。

提出的方法

  • 引入 QActivation、QConvolution 和 QFullyConnected 层作为标准 MXNet 层的即插即用替代品,通过 'act_bit' 参数支持可配置的位宽。
  • 采用基于符号的权重和激活二值化,每 32/64 位字存储 32/64 个二值,将内存使用量减少最多 32 倍。
  • 使用 xnor 和 popcount 操作执行矩阵乘法,而非标准 GEMM,显著加速支持 POPCNT 指令集的 CPU 上的计算。
  • 通过 OpenMP 加速 xnor GEMM 内核(xnor_64_omp),在 4 核 CPU 上实现相比朴素 GEMM 的 125 倍加速,以及相比 CBLAS-ATLAS 的 50 倍加速。
  • 通过避免在第一层和最后一层进行二值化,支持混合训练策略,以保持精度,符合先前研究的实践。
  • 支持权重和激活的任意位宽量化(2–31 位),扩展至二值网络之外,支持混合精度模型。

实验结果

研究问题

  • RQ1基于 MXNet 构建的 BNN 框架是否能在保持具有竞争力的分类准确率的同时,实现显著的模型压缩和计算效率提升?
  • RQ2在 CPU 上,基于 xnor 的 GEMM 与标准 GEMM 和 CBLAS-ATLAS 相比,在速度和内存使用方面表现如何?
  • RQ3仅对部分层(如避免在第一层和最后一层进行二值化)进行二值化,对模型精度和模型尺寸有何影响?
  • RQ4二值化和量化网络在 Android 和 iOS 等移动端平台上的实际部署效果如何?
  • RQ5是否可以设计一个模块化、开源的 BNN 库,实现与现有 MXNet 组件的无缝互操作,并支持 CPU 和 GPU 执行?

主要发现

  • BMXNet 通过每 32 位字存储 32 个二值权重,实现高达 29 倍的模型尺寸压缩,将 MNIST 模型大小从 47MB 压缩至 1.6MB。
  • 在支持 POPCNT 指令集的 4 核 CPU 上,xnor_64_omp 内核相比朴素 GEMM 实现 125 倍加速,相比 CBLAS-ATLAS 实现 50 倍加速。
  • 在 MNIST 上,二值 LeNet 模型达到 97.3% 的测试准确率,与全精度模型相当,模型大小仅为 1.6MB。
  • 在 CIFAR-10 上,二值模型达到 84.2% 的测试准确率,表明即使经过二值化,性能依然强劲。
  • 在 ImageNet 上使用 ResNet-18,完全二值化模型达到 61% 的 top-1 准确率,而仅第一阶段保持全精度的混合二值化版本准确率提升至 84%,且模型尺寸增加极少。
  • Android 和 iOS 的移动端应用成功使用二值化 ResNet-18 模型对实时摄像头画面进行分类,证实了其在真实场景下的可部署性。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。