如何量化除特定节点之外的所有节点?

时间:2018-05-12 08:01:24

标签: tensorflow

我使用tensorflow图形转换工具使用

量化图形
input_names = ["prefix/input"]
output_names = ["final_result"]


transforms1 = ["strip_unused_nodes","fold_constants(ignore_errors=true)",  "fold_batch_norms",  "fold_old_batch_norms","quantize_weights" ]

transformed_graph_def = TransformGraph(graph.as_graph_def(), input_names,output_names, transforms1)

我使用选项quantize_weights来量化图表中的权重,我知道某些节点可以通过更改minimum_size中的阈值quantize_weights来保持不量化,因此保留一些节点不量化当然是可能的

我想量化除名称为K的特定节点或名称为K(set)的节点集之外的所有节点的权重。如何实现这一目标?

1 个答案:

答案 0 :(得分:0)

编辑:上一个答案是指 Tensorflow Lite 代码。我更新了它以引用 Tensorflow。

看看 Tensorflow's quantize_weights 的实现,这些是权重没有被量化的实例:

  1. 不是 float 类型的张量
  2. 权重少于 1024 个(或由参数 minimum_size 指定的其他数字)的张量

如果您能够修改图中的节点,使它们被上述规则之一排除,然后进行量化,然后将节点恢复到预量化状态,您或许可以做到这一点。