Ristretto—SqueezeNet示例详解
1)根目录下执行sh ./data/ilsvrc12/get_ilsvrc_aux.sh获得数据集的train.txt以及val.txt2) 根目录下执行 sh ./examples/imagenet/create_imagenet.sh 获得train、val的lmdb文件(注意要下载数据集并修改相应路径)3)下载模型文件,位置为models/SqueezeNet/ ,githu...
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个点,可以多测几代选比较高的):
量化源码会在后面博客详细介绍,欢迎留言讨论
更多推荐
所有评论(0)