下载
中文
注册

融合规则生效

注册融合规则时,定义了融合规则的生效方式:

  • 当定义为通用规则时,默认生效,不支持用户指定失效。
  • 当定义为定制化规则时,默认不生效,此时,可以参考如下生效该融合规则。
    表1 定制化融合规则生效方式

    场景

    生效方式

    离线推理场景下,使用离线模型转换工具编译TensorFlow原始模型

    通过模型转换命令行参数enable_scope_fusion_passes指定需要生效的融合规则,多个用“,”分隔:

    --enable_scope_fusion_passes = DecodeBboxV2ScopeFusionPass

    离线推理场景下,解析TensorFlow原始模型

    通过aclgrphParseTensorFlow接口解析TensorFlow原始模型时,通过

    ENABLE_SCOPE_FUSION_PASSES参数指定需要生效的融合规则,多个用“,”分隔:

    {ge::AscendString(ge::ir_option::ENABLE_SCOPE_FUSION_PASSES), ge::AscendString("DecodeBboxV2ScopeFusionPass")},

    训练或在线推理场景下,在TensorFlow框架内执行

    通过TensorFlow框架运行配置参数enable_scope_fusion_passes指定需要生效的融合规则,多个用“,”分隔:

    import tensorflow as tf
    from npu_bridge.estimator import npu_ops
    from tensorflow.core.protobuf.rewriter_config_pb2 import RewriterConfig
    
    config = tf.ConfigProto()
    custom_op = config.graph_options.rewrite_options.custom_optimizers.add()
    custom_op.name = "NpuOptimizer"
    custom_op.parameter_map["use_off_line"].b = True
    custom_op.parameter_map["enable_scope_fusion_passes"].s = tf.compat.as_bytes("DecodeBboxV2ScopeFusionPass")
    config.graph_options.rewrite_options.remapping = RewriterConfig.OFF
    
    with tf.Session(config=config) as sess:
      sess.run(xx_name_scope) # xx_name_scope是融合算子名字的示例。