---
title: 混合精度场景下，由于极端模型超参导致算子溢出-昇腾社区
description: SSD-Resnet50V1-FPN网络，在allow_mix_precision精度模式下，设置静态lossscale=1，执行单P训练，发现global_step不更新，且每个迭代都有Sub融合算子溢出。
keywords: 混合精度
url: https://www.hiascend.com/document/caselibrary/detail/topic_0000001291630618
section: (其他)
---

# 混合精度场景下，由于极端模型超参导致算子溢出-昇腾社区

URL: https://www.hiascend.com/document/caselibrary/detail/topic_0000001291630618
描述: SSD-Resnet50V1-FPN网络，在allow_mix_precision精度模式下，设置静态lossscale=1，执行单P训练，发现global_step不更新，且每个迭代都有Sub融合算子溢出。
关键词: 混合精度

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

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

混合精度场景下，由于极端模型超参导致算子溢出

混合精度场景下，由于极端模型超参导致算子溢出

2022/09/20

821

问题信息

| 问题来源 | 产品大类 | 产品子类 | 关键字 |
| --- | --- | --- | ---|
| 官方 | 模型训练 | TensorFlow | 混合精度 |

#### 问题现象描述

SSD-Resnet50V1-FPN网络，在allow_mix_precision精度模式下，设置静态lossscale=1，执行单P训练，发现global_step不更新，且每个迭代都有Sub融合算子溢出。

#### 原因分析

经分析发现，在混合精度场景下，下图中75行的计算已优化为float16高性能计算，但由于该常量转换为float16时，超过float16表达范围变为0，导致81行出现除零错误，从而导致浮点溢出。

而该常量在模型意义上是通常的除零异常规避系数，发生在box encoder的坐标系转换阶段，用于避免宽、高信息为0的场景，由于模型的原型略微久远（2017年），该参数对混合精度训练的支持并不友善，导致溢出。

#### 解决措施

对于以上极少数模型超参略微极端导致模型收敛变差的情况，可以通过调整EPSILON的取值为float16可表达的数据进行改善，比如根据经验，这里推荐1e-4，在模型超参可以稳定收敛的前提下，该修改几乎不影响模型收敛。

本页内容

- 问题信息
- 问题现象描述
- 原因分析
- 解决措施
