如何量化除特定节点外的所有TensorFlow图节点?
如何用TensorFlow Graph Transform Tool量化权重时排除特定节点
嘿,这问题我熟!你要实现量化所有节点权重但排除指定节点的需求,其实直接给quantize_weights添加excluded_nodes参数就能搞定,不用绕弯子。
具体操作方式
- 单个节点排除:如果要排除名称为
K的节点,直接在quantize_weights里指定excluded_nodes="K" - 多个节点排除:如果要排除集合K里的多个节点(比如节点名为
K_node1、K_node2),就用逗号分隔这些节点名,写成excluded_nodes="K_node1,K_node2"
修改后的完整代码示例
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(excluded_nodes=\"K\")" # 核心修改:添加排除节点参数 ] # 多个节点排除的写法(按需切换) # transforms1 = [ # "strip_unused_nodes", # "fold_constants(ignore_errors=true)", # "fold_batch_norms", # "fold_old_batch_norms", # "quantize_weights(excluded_nodes=\"K_node1,K_node2\")" # ] transformed_graph_def = TransformGraph(graph.as_graph_def(), input_names, output_names, transforms1)
补充说明
这个excluded_nodes是quantize_weights变换的官方支持参数,它会精准跳过你指定的节点,不对它们的权重做量化处理,其他节点则会正常执行权重量化逻辑,完全匹配你的需求。
内容的提问来源于stack exchange,提问作者A. Sam
相关产品推荐
相关产品推荐

