tensorflow模型量化压缩

匿名 (未验证) 提交于 2019-12-03 00:22:01

在使用tensorflow这个功能时候需要先下载tensorflow的源代码:

git clone https://github.com/tensorflow/tensorflow.git

进入tensorflow根目录,这里使用tools文件下的两个工具进行量化压缩:graph_transforms、quantization。
安装bazel进行tensorflow工具包的编译。
这里需要注意的是,bazel最好使用最新的,这样编译tensorflow就不会报接口未部署的一些错误。
Linux安装bazel:
https://github.com/bazelbuild/bazel/release
找到bazel-x.x.x-installer-linux-x86_64.sh下载到本地并安装。可以按照git的安装方法进行安装。
安装完毕后开始进行编译tensorflow:

bazel build tensorflow/tools/graph_transforms:transform_graph bazel build tensorflow/tools/quantization:quantize_graph

编译需要占据很多内存以及cpu资源,建议在性能好点的机器上编译。
编译完成后使用:

bazel-bin/tensorflow/tools/graph_transforms/transform_graph --in_graph=_train_pb_file  --outputs="output_node_name"  --out_graph=quantized.pb_file  --transforms='quantize_weights' 

亲测21M的模型,量化压缩后,模型大小缩小为5.3M。将近4倍的压缩比率。其实在大型的vgg网络上进行压缩,效果更明显,91M模型减小到21M。
对于第二个工具quantize_graph。

bazel-bin/tensorflow/tools/quantization/quantize_graph \   --input=input.pb   --output_node_names="softmax2"    --print_nodes   --output=out.pb \   --mode=eightbit   --logtostderr  

发现执行上述命令后,模型大小变化不大????
实验结果表示,建议使用transform_graph进行模型量化压缩

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!