/XNOR-Net

ImageNet classification using binary Convolutional Neural Networks

Primary LanguageLuaOtherNOASSERTION

XNOR-Net: ImageNet Classification Using Binary Convolutional Neural Networks.

This is the Torch 7.0 implementation of XNOR-Net: ImageNet Classification Using Binary Convolutional Neural Networks.

Citation

@inproceedings{rastegariECCV16,
    Author = {Mohammad Rastegari and Vicente Ordonez and Joseph Redmon and Ali Farhadi},
    Title = {XNOR-Net: ImageNet Classification Using Binary Convolutional Neural Networks},
    Booktitle = {ECCV},
    Year = {2016}
}

Requirements

This software is implemented on top of the implementation of ImageNet-multiGPU and has all the same requirements.

Download the cache files from here and run:

tar -xvf ./cache.tar

Training Binary Weight Network

th main.lua -data [path to ImageNet dataset] -nGPU 1 -batchSize 128 -netType alexnet -binaryWeight -dropout 0.1

Training XNOR-Networks

th main.lua -data [path to ImageNet dataset] -nGPU 4 -batchSize 800 -netType alexnetxnor -binaryWeight -optimType adam -epochSize 1500

Trained Models

To use the trained models use the option -retrain [path to the trained model file] and -testOnly

Binary-Weight-Network(BWN)

XNOR-Network

If you use the same image pre-processing as here by

find . -name "*.JPEG" | xargs -I {} convert {} -resize "256^>" {}

then the accuracies for top-1 should be:

alexnet_BWN %56.8

alexnet_XNOR %43.3

License

By downloading this software you acknowledged that you agreed on the terms and conditions in the SOFTWARE-LICENSE-AGREEMENT.lic