Skip to content

XNOR-Net, with binary gemm and binary conv2d kernels, support both CPU and GPU.

License

Notifications You must be signed in to change notification settings

cooooorn/Pytorch-XNOR-Net

Folders and files

NameName
Last commit message
Last commit date

Latest commit

5605c45 · Mar 6, 2019

History

29 Commits
May 20, 2018
May 14, 2018
May 16, 2018
May 15, 2018
May 12, 2018
May 12, 2018
Mar 6, 2019

Repository files navigation

Pytorch-XNOR-Net

Build

cd <Repository Root>/csrc/binop
make

MNIST

Usage

Train:

cd <Repository Root>/MNIST/
python3 main.py --arch Bin_LeNet
python3 main.py --arch LeNet

Evaluate:

cd <Repository Root>/MNIST/
python3 main.py --arch Bin_LeNet --evaluate --pretrained ./models/Bin_LeNet.best.pth # --no_cuda (Use CPU)
python3 main.py --arch LeNet --evaluate --pretrained ./models/LeNet.best.pth # --no_cuda (Use CPU)

Result

Network Accuracy Size
LeNet 99.50% 1.7 MB
Bin_LeNet 99.45% 102 KB

Cifar10

Usage

Train:

cd <Repository Root>/Cifar10/
python3 main.py --arch Bin_VGG16 #(11, 13, 16, 19)
python3 main.py --arch VGG16 #(11, 13, 16, 19)

Evaluate:

cd <Repository Root>/Cifar10/
python3 main.py --arch Bin_VGG16 --evaluate --pretrained ./models/Bin_VGG16.best.pth # --no_cuda (Use CPU)
python3 main.py --arch VGG16 --evaluate --pretrained ./models/VGG16.best.pth # --no_cuda (Use CPU)

Result

Network Accuracy Size  
VGG13 92.40% 37.7 MB
Bin_VGG13 88.74% 1.3 MB
VGG16 92.29% 59.0 MB
Bin_VGG16 87.78% 2.0 MB

Pre-trained models

Google Drive

Environment

Software

  • Ubuntu 16.04
  • Python 3.5
  • Pytorch 0.3.1
  • CUDA 8.0
  • gcc 5.4

Hardware

  • NVIDIA GTX 1080
  • Intel i5-6500 CPU @ 3.20GHz × 4

Reference

About

XNOR-Net, with binary gemm and binary conv2d kernels, support both CPU and GPU.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published