No description, website, or topics provided.
Switch branches/tags
Nothing to show
Clone or download
Latest commit e52a660 Oct 26, 2018
Failed to load latest commit information.
models quantized mobilenet Jul 30, 2018
utils @ b2df50c update for torch 0.4 Apr 30, 2018
.gitignore logging update Jan 9, 2017
.gitmodules use utils.pytorch Oct 12, 2017
LICENSE Initial commit Jan 6, 2017 Update Oct 26, 2018 update convnet.pytorch Dec 27, 2017 add mobilenet Jul 30, 2018 update convnet.pytorch Dec 27, 2017
requirements.txt first commit Jan 6, 2017

Quantized Convolutional networks using PyTorch

See for updated version of this code

Code to replicate results in Scalable Methods for 8-bit Training of Neural Networks

e.g: running an 8-bit quantized resnet18 from the paper on ImageNet

python --model resnet_quantized --model_config "{'depth': 18}" --save quantized_resnet18 --dataset imagenet --b 128



  • Configure your dataset path at
  • To get the ILSVRC data, you should register on their site for access:

Model configuration

Network model is defined by writing a .py file in models folder, and selecting it using the model flag. Model function must be registered in models/ The model function must return a trainable network. It can also specify additional training options such optimization regime (either a dictionary or a function), and input transform modifications.

e.g for a model definition:

class Model(nn.Module):

    def __init__(self, num_classes=1000):
        super(Model, self).__init__()
        self.model = nn.Sequential(...)

        self.regime = [
            {'epoch': 0, 'optimizer': 'SGD', 'lr': 1e-2,
                'weight_decay': 5e-4, 'momentum': 0.9},
            {'epoch': 15, 'lr': 1e-3, 'weight_decay': 0}

        self.input_transform = {
            'train': transforms.Compose([...]),
            'eval': transforms.Compose([...])
    def forward(self, inputs):
        return self.model(inputs)
 def model(**kwargs):
        return Model()