我正在使用tensorflow 1.1版本。我想量化inception_resnet_v2模型。量化方法使用
bazel build tensorflow / tools / quantization / tools:quantize_graph
bazel-bin / tensorflow / tools /量化/ tools / quantize_graph \
--input = / tmp / classify_image_graph_def.pb \
--output_node_names =" SOFTMAX" --output = / tmp / quantized_graph.pb \
--mode = eightbit
这并没有给出准确的结果。对于inception_v3,结果是可以的,但对于inception_resnet_v2,它不起作用(预测类标签的准确度为0%)。
我知道我可以在我的情况下使用graph_transform进行量化。如https://github.com/tensorflow/tensorflow/issues/9301#issuecomment-307351419中所述。
运用
巴泽尔斌/ tensorflow /工具/ graph_transforms / transform_graph
--in_graph =。/ frozen_model_inception_resnet_v2.pb
--out_graph =。/ quantized_weights_and_nodes_inception_resnet_v2.pb
--inputs =' Placeholder_only'
--outputs =' InceptionResnetV2 / Logits /预测'
--transforms ='
add_default_attributes
strip_unused_nodes(type = float,shape =" 1,299,299,3")
remove_nodes(op = Identity,op = CheckNumerics)
fold_constants(ignore_errors =真)
fold_batch_norms
fold_old_batch_norms
quantize_weights
quantize_nodes
strip_unused_nodes
sort_by_execution_order'
但是,我得到错误" ValueError:在定义的操作中没有名为QuantizedAdd的操作"现在调用tf.import_graph_def(graph_def,name ='')时。
我检查了类似的问题和解决方案。但是,在我的情况下它没有帮助,我仍然得到错误。以下是类似问题的链接。
Tensorflow中8位量化的错误
安装Tensorflow并提供量化支持
在我的情况下,在为quantize_graph进行bazel构建之后,不会创建_quantized_ops.so和kernels / _quantized_kernels.so。
任何输入来解决这个问题?