NPULossScaleOptimizer优化器使用常见问题
2022/10/11
106
问题信息
问题来源 | 产品大类 | 产品子类 | 关键字 |
---|---|---|---|
官方 | 模型训练 | TensorFlow | NPULossScaleOptimizer优化器 |
问题现象描述
使用NPULossScaleOptimizer优化器时,执行训练失败。
原因分析
在创建动态loss_scale_manager时,需要将这个动作放在with的作用域之外,否则会训练失败。
解决措施
原因是动态loss_scale_manager中会创建变量,正确的添加方式为:
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)
本页内容