XNOR-Net: ImageNet Classification Using Binary Convolutional Neural Networks
Mohammad Rastegari, Vicente Ordonez, Joseph Redmon, Ali Farhadi
Code Available — Be the first to reproduce this paper.
ReproduceCode
- github.com/hpi-xnor/BMXNet-v2mxnet★ 232
- github.com/kai-liu001/bimacosrpytorch★ 24
- github.com/gaochang-bjtu/1-bit-fqtpytorch★ 11
- github.com/pminhtam/xnor_conv_pytorch_extensionpytorch★ 5
- github.com/lzj994/Binary-Quantizationpytorch★ 4
- github.com/XinDongol/BENN-PyTorchpytorch★ 0
- github.com/mazc2121/boolean-netstf★ 0
- github.com/eghouti/BinaryConnectpytorch★ 0
- github.com/brycexu/MR-Residual-Netpytorch★ 0
- github.com/hpi-xnor/BMXNetmxnet★ 0
Abstract
We propose two efficient approximations to standard convolutional neural networks: Binary-Weight-Networks and XNOR-Networks. In Binary-Weight-Networks, the filters are approximated with binary values resulting in 32x memory saving. In XNOR-Networks, both the filters and the input to convolutional layers are binary. XNOR-Networks approximate convolutions using primarily binary operations. This results in 58x faster convolutional operations and 32x memory savings. XNOR-Nets offer the possibility of running state-of-the-art networks on CPUs (rather than GPUs) in real-time. Our binary networks are simple, accurate, efficient, and work on challenging visual tasks. We evaluate our approach on the ImageNet classification task. The classification accuracy with a Binary-Weight-Network version of AlexNet is only 2.9% less than the full-precision AlexNet (in top-1 measure). We compare our method with recent network binarization methods, BinaryConnect and BinaryNets, and outperform these methods by large margins on ImageNet, more than 16% in top-1 accuracy.