tensorflow pb模型的量化

环境:ubuntu 16.04
tensorflow1.12.0

tensorflow源码1.10和1.12量化的脚本不一样,我以前用的1.10,我还存着使用方法,但是我现在就想量化1.12,好折腾一女的,然后今天又折腾了一波这玩意!
先说tensorflow1.10:

官网:
https://github.com/tensorflow/tensorflow/tags

进入文件夹,先编译bazel-bin

bazel build tensorflow/tools/quantization:quantize_graph

量化pb

bazel-bin/tensorflow/tools/quantization/quantize_graph --input=*.pb --output_node_names="*" --output=*.pb --mode=eightbit --logtostderr
--input : 要量化的模型pb文件(完整路径)
--output_node_names : 输出的tensor节点名字
--output : 输出的.pb文件(完整路径)

至此,一个完整的流程就完成了!

tensorflow1.12 tensorflow/tools/quantization/下没有quantize_graph,已经废弃了,需要编译transform_graph工具才可以

bazel build tensorflow/tools/graph_transforms:transform_graph

在这里插入图片描述
出现这样的界面就是编译成功了!
量化pb模型

bazel-bin/tensorflow/tools/graph_transforms/transform_graph \
--in_graph=*.pb \
--out_graph=*.pb \
--outputs="*" \
--transforms='quantize_weights'

注意:
--in_graph : 要量化的模型pb文件(完整路径)
--out_graph : 输出的.pb文件(完整路径)
--outputs : 输出的tensor节点名字

我看网上有人说可以用summarize_graph分析量化前后的模型区别,权重量化、模型减小、增加了一些和量化和反量化的节点,所以我又编译了一下summarize_graph

bazel build tensorflow/tools/graph_transforms:summarize_graph

在这里插入图片描述
出现这样的界面就是编译成功了!

bazel-bin/tensorflow/tools/graph_transforms/summarize_graph \
--in_graph=*.pb \
--print_structure=true
注意:
--in_graph : 要量化的模型pb文件(完整路径)

猜你喜欢

转载自blog.csdn.net/weixin_43868576/article/details/108319753