---
title: NPULossScaleOptimizer优化器使用常见问题-昇腾社区
description: 使用NPULossScaleOptimizer优化器时，如果训练脚本中存在如下类似情况： 会出现Placeholder not support报错。
keywords: NPULossScaleOptimizer;Placeholder not support
url: https://www.hiascend.com/document/caselibrary/detail/tensorflow_faq_0009
section: (其他)
---

# NPULossScaleOptimizer优化器使用常见问题-昇腾社区

URL: https://www.hiascend.com/document/caselibrary/detail/tensorflow_faq_0009
描述: 使用NPULossScaleOptimizer优化器时，如果训练脚本中存在如下类似情况： 会出现Placeholder not support报错。
关键词: NPULossScaleOptimizer;Placeholder not support

昇腾文档 [了解详情](https://www.hiascend.com/document)

故障案例 [了解详情](https://www.hiascend.com/document/caselibrary)

NPULossScaleOptimizer优化器使用常见问题

NPULossScaleOptimizer优化器使用常见问题

2025/03/28

450

问题信息

| 问题来源 | 产品大类 | 产品子类 | 关键字 |
| --- | --- | --- | ---|
| 官方 | 模型训练 | TensorFlow | NPULossScaleOptimizer、Placeholder not support |

#### 问题现象描述

使用NPULossScaleOptimizer优化器时，如果训练脚本中存在如下类似情况：

```
with tf.control_dependencies(tf.get_collection(tf.GraphKeys.UPDATE_OPS)):
  train_op = tf.train.xxxOptimizer(0.01).minimize(loss)
```

会出现Placeholder not support报错。

#### 原因分析

这是由于动态loss_scale_manager中存在变量，如果这样创建loss_scale_manager会导致Variable初始化时，执行出错。

#### 解决方案

在创建动态loss_scale_manager时，需要将这个动作放在with的作用域之外。

```
loss_scale_manager = ExponentialUpdateLossScaleManager(init_loss_scale=2**32,incr_every_n_steps=1000,decr_every_n_nan_or_inf=2,decr_ratio=0.5)
with tf.control_dependencies(tf.get_collection(tf.GraphKeys.UPDATE_OPS)):
  train_op = NPULossScaleOptimizer(tf.train.xxxOptimizer(0.01), loss_scale_manager).minimize(loss)
```

本页内容

- 问题信息
- 问题现象描述
- 原因分析
- 解决方案
