# Dump工具应用—网络训练溢出

**问题现象**

网络训练时可能会发生溢出loss或梯度为nan，需要定位到首个溢出算子。

**问题分析**

使用溢出Dump查看第一个溢出算子。

但有些场景数据是逐步变大，首溢出算子输入很大，这种场景推荐使用统计值dump保存全量数据。

**配置**

配置项：“op\_debug\_mode”: 3

相关配置：支持指定step（iteration字段），不支持指定算子\(kernels字段不生效\)，支持统计信息与Tensor\(saved\_data字段）

特定配置：overflow\_number，指定溢出dump的数据个数。

```
{
    "common_dump_settings": {
        "op_debug_mode": 3,
        "dump_mode": 0,
        "path": "/absolute_path",
        "net_name": "ResNet50",
        "iteration": "all",
        "saved_data": "tensor",
        "input_output": 0,
        "kernels": ["Default/Conv-op12"],
        "support_device": [0,1,2,3,4,5,6,7],
        "statistic_category": ["max", "min", "l2norm"],
        "overflow_number": 0
    },
    "e2e_dump_settings": {
        "trans_flag": true,
    }
}
```

**性能**：不溢出时，性能膨胀2-3倍，溢出时与溢出数据量有关

**资源占用**

**磁盘**

跟溢出数量有关系，可以在common\_dump\_settings配置overflow\_number，指定溢出dump的数据个数，执行溢出算子Dump的数量。

**显存**：膨胀不超过5%。

