昇腾社区首页
中文
注册

训练状态监控

前提条件

完成训练前配置检查

操作步骤

  1. 以执行权重梯度监控功能为例,创建配置文件。
    以在训练脚本所在目录创建monitor_config.json配置文件为例,文件内容拷贝如下示例配置。
    1
    2
    3
    4
    5
    6
    7
    { 
        "targets": {
        },
        "wg_distribution": true,
        "format": "csv",
        "ops": ["norm", "min", "max", "nans"]
    } 
    
  2. 在训练脚本中添加工具,如下所示。

    添加以下接口前,建议注释前面步骤的非训练脚本接口。

    • MindSpore训练场景:

      完整代码请参见MindSpore训练状态监控代码样例

       1
       2
       3
       4
       5
       6
       7
       8
       9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      ...
      from msprobe.mindspore import TrainerMon
      monitor = TrainerMon(
          config_file_path="./monitor_config.json",
          process_group=None,
          params_have_main_grad=True,  # 权重是否使用main_grad,通常megatron为True,deepspeed为False。默认为True。
      )
      
      ...
      
      model = Net()
      optimizer = nn.Momentum(model.trainable_params(), 1, 0.9)
      # 挂载监控对象
      monitor.set_monitor(
          model,
          grad_acc_steps=1,
          optimizer=optimizer,
          dp_group=None,
          tp_group=None)
      ...
      
    • PyTorch训练场景:

      完整代码请参见PyTorch训练状态监控代码样例

       1
       2
       3
       4
       5
       6
       7
       8
       9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
       23
       24 import torch_npu
       25 from torch_npu.contrib import transfer_to_npu
       26 
       27 monitor = TrainerMon(
       28     config_file_path="./monitor_config.json",
       29     params_have_main_grad=False,  # 权重是否使用main_grad,通常megatron为True,deepspeed为False。默认为True。
       30 ) 
      ...
      333     # switch to train mode
      334     model.train()
      335 
      336     # 挂载监控对象
      337     monitor.set_monitor(
      338         model,
      339         grad_acc_steps=1,
      340         optimizer=optimizer,
      341         dp_group=None,
      342         tp_group=None,
      343         start_iteration=0  # 断点续训时提供当前iteration,默认从0开始
      344     ) 
      ...
      
  3. 执行训练脚本命令。
    • MindSpore训练场景:
      python mindspore_main.py
    • PyTorch训练场景:
      python pytorch_main.py -a resnet50 -b 32 --gpu 1 --dummy
  4. 查看结果。
    训练执行完成后在当前路径生成monitor_output目录,目录下根据时间戳生成多份结果,查看最新目录下的文件,如下所示。
    图1 结果文件内容

    输出结果详细介绍请参见“输出路径”。