内容简介:Simpfly implementation of Quantization Aware Training[1][2] with MXNet-scala module.Tested on Ubuntu 14.041, compile MXNet with CUDA, then compile the scala-pkg,doc:
MXNET-Scala TrainQuantization
Simpfly implementation of Quantization Aware Training[1][2] with MXNet-scala module.
Setup
Tested on Ubuntu 14.04
Requirements
- sbt 0.13 http://www.scala-sbt.org/
- Mxnet v1.4 https://github.com/dmlc/mxnet
Build steps
1, compile MXNet with CUDA, then compile the scala-pkg,doc: https://github.com/dmlc/mxnet/tree/master/scala-package
2, under the Mxnet-Scala/TrainQuantization folder:
mkdir lib; ln -s $MXNET_HOME/scala-package/assembly/linux-x86_64-gpu/target/mxnet-full_2.11-linux-x86_64-gpu-1.5.0-SNAPSHOT.jar lib
3, run sbt
and then compile the project
Train vgg on Cifar10
Using the script train_vgg16_cifar10.sh
under the scripts folder to train vgg from scratch on Cifar10:
FINETUNE_MODEL_EPOCH=-1 FINETUNE_MODEL_PREFIX=$ROOT/models/
Or you can finetune with the provided pretrain model:
FINETUNE_MODEL_EPOCH=46 FINETUNE_MODEL_PREFIX=$ROOT/models/cifar10_vgg16_acc_0.8772035
I did not use any data augmentation and carefully tune the hyper-parameters during training, the best accuracy I got was 0.877, worse than the best accracy 0.93 reported on Cifar10.
Train vgg with fake quantization on Cifar10
Using the script train_quantize_vgg16_cifar10.sh
under the scripts folder to train vgg with fake quantization on Cifar10,
you must provide the pretrained model:
FINETUNE_MODEL_EPOCH=46 FINETUNE_MODEL_PREFIX=$ROOT/models/cifar10_vgg16_acc_0.8772035
If everything goes right, you should get almost the same accuray with pretrained model after serveral epoch.
Test vgg with simulated quantization on Cifar10
Using the script test_quantize_vgg16_cifar10.sh
under the scripts folder to test pretrained fake quantization vgg with simulated quantization on Cifar10, you must provide the pretrained model:
FINETUNE_MODEL_EPOCH=57 FINETUNE_MODEL_PREFIX=$ROOT/models/cifar10_quantize_vgg16_acc_0.877504
Warning
Currently there is memory leak some where in the code, but I can't figure out the reason. You will see the memory usage keep increasing when you run the tranining script. So remenber to stop the traning script when memory usage is too high, and you can resume the training process with saved model previously.
Reference
[1] Quantizing deep convolutional networks for efficient inference: A whitepaper. https://arxiv.org/pdf/1806.08342.pdf
[2] Quantization and Training of Neural Networks for Efficient Integer-Arithmetic-Only Inference. https://arxiv.org/pdf/1712.05877.pdf
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
风口上的汽车新商业
郭桂山 / 人民邮电出版社 / 59
本书从互联网+汽车趋势解析、汽车电商困局突围策略、汽车后市场溃败求解等三个篇章详细阐述了作者的观察与思考,当然更多的还是作者在汽车电商行业的实践中得出的解决诸多问题的战略策略,作者站在行业之巅既有战略策略的解决方案,同时也有战术上的实施细则,更有实操案例解析与行业大咖访谈等不可多得的干货。当然,作者一向追崇的宗旨是,书中观点的对错不是最重要的,重在与行业同仁探讨,以书会友,希望作者的这块破砖头,能......一起来看看 《风口上的汽车新商业》 这本书的介绍吧!