昇腾社区首页
中文
注册

ScopedGraphManager

产品支持情况

产品

是否支持

Atlas A3 训练系列产品/Atlas A3 推理系列产品

Atlas A2 训练系列产品

Atlas 800I A2 推理产品/A200I A2 Box 异构组件

x

Atlas 200I/500 A2 推理产品

x

Atlas 推理系列产品

Atlas 训练系列产品

针对Atlas A3 推理系列产品,仅支持在线推理特性。

针对Atlas 推理系列产品,仅支持在线推理特性。

功能说明

可通过该接口一次性卸载变量初始化图,并释放其中常量节点占用的内存。

函数原型

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
class ScopedGraphManager(object):
    def __enter__(self):
        self.start()
        return self

    def __exit__(self, exe_type, exe_val, exc_tb):
        self.stop()

    def start(self):
        tf_adapter.EnableControl()

    def stop(self):
        tf_adapter.Clear()

参数说明

返回值

约束说明

  • ScopedGraphManager类需要通过with语句调用,且一旦超出该作用域,作用域内执行的变量初始化图将被自动卸载,所占用的常量内存也会被释放。
  • 仅变量初始化图可以放置在ScopedGraphManager所在作用域中,如果非变量初始化图放到了此作用域,可能会影响训练功能的正常运行。
  • 该接口仅适用于在主进程中一次性进行变量初始化的场景,不支持多线程、多session或多次执行变量初始化的场景。

调用示例

1
2
3
4
5
import tensorflow as tf
from npu_bridge.npu_init import *
with scoped_graph_manager.ScopedGraphManager():
    # 执行变量初始化
    sess.run(tf.global_variables_initializer())