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个点,可以多测几代选比较高的):
量化源码会在后面博客详细介绍,欢迎留言讨论
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)