Enabling a Fusion Pattern
According to Registering a Fusion Pattern:
- A general pattern is enabled by default and cannot be manually disabled.
- A non-general pattern is disabled by default. You can enable a non-general fusion pattern as required.
Table 1 Enabling a non-general fusion pattern Scenario
Method
TensorFlow model conversion using ATC for offline inference
Include the enable_scope_fusion_passes option to set the fusion pattern (or fusion patterns separated by commas) to take effect.
--enable_scope_fusion_passes = DecodeBboxV2ScopeFusionPass
TensorFlow model parsing for offline inference
Parse a TensorFlow model by using the aclgrphParseTensorFlow call.
Set ENABLE_SCOPE_FUSION_PASSES to the fusion pattern (or fusion patterns separated by commas) to take effect.
{ge::AscendString(ge::ir_option::ENABLE_SCOPE_FUSION_PASSES), ge::AscendString("DecodeBboxV2ScopeFusionPass")},Training or online inference within the TensorFlow framework
Set enable_scope_fusion_passes to the fusion pattern (or fusion patterns separated by commas) to take effect within the TensorFlow framework.
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 is an example of the fused operator name.