---
title: ScopedGraphManager
description: "| 产品 | 是否支持 |"
url: https://www.hiascend.com/document/detail/zh/TensorFlowCommercial/latest/migration/tfmigr1/tfmigr1_tfadapi_0136.html
sourcePath: /source/zh/TensorFlowCommercial/900/migration/tfmigr1/tfmigr1_tfadapi_0136.html
indexId: 40bfdf905d10d227f91372ecbc5de54815fbba72690ef56f13b683b8767b5e9f79
---
# ScopedGraphManager

#### 产品支持情况

| 产品 | 是否支持 |
| --- | --- |
| Atlas 350 加速卡 | √ |
| Atlas A3 训练系列产品 / Atlas A3 推理系列产品 | √ |
| Atlas A2 训练系列产品 / Atlas A2 推理系列产品 | √ |
| Atlas 200I/500 A2 推理产品 | ☓ |
| Atlas 推理系列产品 | ☓ |
| Atlas 训练系列产品 | √ |


#### 功能说明

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


#### 函数原型

```
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或多次执行变量初始化的场景。


#### 调用示例

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