文档
注册

简介

概述

Scope融合是一种基于Scope来进行融合的能力,把Scope内的多个小算子替换为一个大算子或多个算子组合,以实现效率的提升。

本文主要介绍内置的Scope融合规则,同时开放Scope融合规则开发接口供用户自定义,具体请参考TensorFlow Parser Scope融合规则开发指南

通用和定制化融合规则

融合规则通常分为通用和定制化融合规则两类:

  • 通用融合规则(General):各网络通用的scope融合规则;默认生效,不支持用户指定失效。
  • 定制化融合规则(Non-General):特定网络适用的scope融合规则;默认不生效,用户可以指定需要生效的融合规则,定制化融合规则生效方式可以参考如下生效方式。
    表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指定需要生效的融合规则,多个用“,”分隔:

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    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()
    
搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词