SqueezeNet量化

1)根目录下执行 sh ./data/ilsvrc12/get_ilsvrc_aux.sh  获得数据集的train.txt以及val.txt

2)  根目录下执行 sh ./examples/imagenet/create_imagenet.sh 获得train、val的lmdb文件(注意要下载数据集并修改相应路径)

3)下载模型文件,位置为models/SqueezeNet/ ,github下载链接

4)执行./examples/ristretto/00_quantize_squeezenet.sh 得到下面的结果:

默认为Dynamic fixed 量化方式,分别对Fc/Conv/Activate进行了量化,并测出量化不同层的情况下16bit、8bit、4bit、1bit下的量化精度,具体代码详解后面博客会介绍。

Finetune

如果前面一切都顺利,文件也都放在规定位置,那finetune就很简单了,如果不是,改一下训练脚本相应路径,然后执行:sh ./examples/ristretto/01_finetune_squeezenet.sh

训练log:

benchmark

修改finetune之后的caffemodel路径,执行脚本sh ./examples/ristretto/02_benchmark_fixedpoint_squeezenet.sh

得到finetune之后的精度(finetune2000代之后的model比浮点模型低0.3个点,可以多测几代选比较高的):

 

 

量化源码会在后面博客详细介绍,欢迎留言讨论

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐