disable_autofuse

Applicability

Product

Supported

Atlas A3 training products/Atlas A3 inference products

Atlas A2 training products/Atlas A2 inference products

Atlas 200I/500 A2 inference products

Atlas inference products

Atlas training products

Description

When a TensorFlow network runs on the CANN platform, multiple operators are automatically fused based on the graph structure to obtain better performance. If you do not want to perform automatic fusion on some operators, you can use this API to mark them.

Prototype

1
def disable_autofuse()

Parameters

None

Returns

None

Restrictions

The disable_autofuse API needs to be called using the with statement. Only operators in the corresponding scope are not automatically fused.

Example

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
import tensorflow as tf
from npu_bridge.npu_init import *

a = tf.placeholder(tf.float32, (5, 1))
b = tf.constant([1, 2, 3, 4, 5], dtype=tf.float32, shape=(5, 1))
add_0 = tf.add(a, b)
mul_0 = tf.multiply(add_0, b)

with disable_scope():
    # Operators in this scope are not automatically fused.
    abs_0 = tf.abs(mul_0)
    div_0 = tf.divide(a, abs_0)

with tf.Session() as sess:
    result = sess.run(div_0, feed_dict={a: [[1], [2], [3], [4], [5]]})
    print(result)