Binary Neural Networks

A small helper framework for training binary networks is available on github and can be installed using pip or conda:

Using pip Using conda
pip install bnn conda install -c 1adrianb bnn

For more details regarding usage and features please visit the repository page.

Note: Code for the "High-Capacity Expert Binary Networks" paper is available here.

What are Binary Neural Networks?

Binary Neural Networks (BNNs) are neural networks whose convolutional and/or linear layers are operating using data represented on a single bit. Note, that typically not all operations are binary and current approaches make use of full precision normalization layers. Thanks to binarization, layers quantized to such degree can replace all their multiplications with bitwise operations while the weights themselves can be compressed to a factor of x32 via bit-packing.

Publications on Binary Networks

  • QBB: Quantization with Binary Bases for LLMs

    Advances in Neural Information Processing Systems (NeurIPS), 2024
    PDF
  • High-Capacity Expert Binary Networks

    International Conference on Learning Representations (ICLR), 2021
    PDF Code
  • BATS: Binary ArchitecTure Search

    European Conference on Computer Vision (ECCV), 2020
    PDF
  • Training binary neural networks with real-to-binary convolutions

    International Conference on Learning Representations (ICLR), 2020
    PDF
  • XNOR-Net++: Improved binary neural networks

    British Machine Vision Conference (BMVC), 2019
    PDF Code
  • Hierarchical binary CNNs for landmark localization with limited resources

    IEEE Transactions on Pattern Analysis and Machine Intelligence (TPAMI), 2018 - Best of ICCV17 SI
    PDF Code
  • Binarized Convolutional Landmark Localizers for Human Pose Estimation and Face Alignment with Limited Resources

    International Conference on Computer Vision (ICCV), 2017 (ORAL)
    PDF Code