美文网首页我爱编程
facenet训练后模型使用tensorflow量化

facenet训练后模型使用tensorflow量化

作者: zhenggeaza | 来源:发表于2017-08-10 15:43 被阅读0次

1、使用facenent/src/freeze_graph.py将ckpt模型文件转化为pb模型文件,

需要注意的是,需要在这里面添加模型名称及scope,如下图所示,转化ResNeXt模型是需要添加ResNeXt:

2、使用bazel搭建tensorflow的quzntization工具,如下面命令所示;

$ cd ~/tensorflow/ (tensorflow的源码路径)

$ bazel build tensorflow/tools/quantization:quantize_graph

3、量化前需要修改/tensorflow/tensorflow/python/framework/graph_util_impl.py,由于“Identity”的原因有些层无法量化,使量化后的模型无法使用,需做如下图的修改:

3.1、if node.name == "input": \n continue解决了由于“Identity”不将input层量化的错误;

3.2、re.match(r".*/cond.*", input_name)能够结果下面的错误:

ValueError: graph_def is invalid at node 'InceptionResnetV1/Conv2d_1a_3x3/BatchNorm/cond/AssignMovingAvg/decay': More inputs specified ('InceptionResnetV1/Conv2d_1a_3x3/BatchNorm/cond/Switch:1') than the op expects.

4、量化指令:

bazel-bin/tensorflow/tools/quantization/quantize_graph \

--input=/tmp/classify_image_graph_def.pb \

--output_node_names="embeddings" \

--output=/tmp/quantized_graph.pb \

--mode=eightbit

参考文献:https://zhuanlan.zhihu.com/p/25323688

https://www.tensorflow.org/performance/quantization

相关文章

网友评论

    本文标题:facenet训练后模型使用tensorflow量化

    本文链接:https://www.haomeiwen.com/subject/tfmhrxtx.html