---
title: ExponentialUpdateLossScaleManager构造函数
description: "| 产品 | 是否支持 |"
url: https://www.hiascend.com/document/detail/zh/TensorFlowCommercial/latest/migration/tfmigr1/tfmigr1_tfadapi_0067.html
sourcePath: /source/zh/TensorFlowCommercial/900/migration/tfmigr1/tfmigr1_tfadapi_0067.html
indexId: 0eecef6049ff3b0e71ce065f81249f93f625fe76cfeda29445efca74bfd1eeac79
---
# ExponentialUpdateLossScaleManager构造函数

#### 产品支持情况

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


#### 功能说明

ExponentialUpdateLossScaleManager类的构造函数，浮点计算的溢出模式为“饱和模式”的场景下，用于定义训练场景下的动态LossScale参数，并通过定义loss_scale变量动态获取和更新LossScale值。- 针对Atlas 350 加速卡，浮点计算支持两种溢出模式：饱和模式与INF/NaN模式，请保持默认值INF/NaN模式。饱和模式仅用于兼容旧版本，后续不再演进，且此模式下计算精度可能存在误差。
- Atlas A3 训练系列产品 / Atlas A3 推理系列产品，浮点计算支持两种溢出模式：饱和模式与INF/NaN模式，请保持默认值INF/NaN模式。饱和模式仅用于兼容旧版本，后续不再演进，且此模式下计算精度可能存在误差。
- Atlas A2 训练系列产品 / Atlas A2 推理系列产品，浮点计算支持两种溢出模式：饱和模式与INF/NaN模式，请保持默认值INF/NaN模式。饱和模式仅用于兼容旧版本，后续不再演进，且此模式下计算精度可能存在误差。
- Atlas 训练系列产品，浮点计算的溢出模式默认为“饱和模式”，且仅支持“饱和模式”。饱和模式是指当计算出现溢出时，饱和为浮点数极值（+-MAX）。


#### 函数原型

```
class ExponentialUpdateLossScaleManager(lsm_lib.ExponentialUpdateLossScaleManager):
    def __init__(self,
                 init_loss_scale,
                 incr_every_n_steps,
                 decr_every_n_nan_or_inf=2,
                 incr_ratio=2,
                 decr_ratio=0.8)
```


#### 参数说明

| 参数名 | 输入/输出 | 描述 |
| --- | --- | --- |
| init\_loss\_scale | 输入 | 初始LossScale值。float类型。 |
| incr\_every\_n\_steps | 输入 | 当累计N次迭代未出现溢出时，增大LossScale值。 |
| decr\_every\_n\_nan\_or\_inf | 输入 | 当累计N次迭代出现溢出时，减小LossScale值。默认值：2。 |
| incr\_ratio | 输入 | LossScale增大的比例。默认值：2。 |
| decr\_ratio | 输入 | LossScale减小的比例。默认值：0.8。 |


#### 返回值

返回ExponentialUpdateLossScaleManager类对象。


#### 约束说明

ExponentialUpdateLossScaleManager类对象的构造不能在tf.control_dependencies()接口的作用域内，否则可能会造成图结构执行顺序与预期不一致。
