AI开发平台MODELARTS-Open-Clip基于DevServer适配PyTorch NPU训练指导:Step6 训练Open clip模型

时间:2024-12-09 20:36:13

Step6 训练Open clip模型

  1. 适配昇腾代码。

    在目录/home/ma-user/open_clip/src/training下,修改main.py文件,在第10行添加如下代码。

    import torch_npu
    from torch_npu.contrib import transfer_to_npu

    同样,修改train.py文件,在第11行添加如上代码,如图1所示。

    图1 修改train.py文件
  2. 单卡训练。

    训练命令参考如下。

    cd /home/ma-user/open_clip
    python -m training.main \
        --save-frequency 1 \
        --zeroshot-frequency 1 \
        --report-to tensorboard \
        --train-data '/home/ma-user/open_clip/mscoco/{00000..00059}.tar' \
        --train-num-samples 102400 \
        --dataset-type webdataset \
        --warmup 10000 \
        --batch-size=256 \
        --lr=1e-3 \
        --wd=0.1 \
        --epochs=30 \
        --workers=8 \
        --model ViT-B-32

    参数说明:

    • save-frequency:指定运行多少个epoch就保存模型参数,可以调大。
    • report-to tensorboard:指定输出loss指标到tensorboard,一般需要做精度评估才需要带上。
    • train-num-samples:指定每个epoch需要训练的样本个数,不超过总样本个数。
    • batch-size:指定一次处理的数据batch。
    • epochs:指定训练的epoch个数。

    训练结束后,模型输出目录为:

    /home/ma-user/open_clip/logs/xxx-model_ViT-B-32-lr_0.001-b_32-j_8-p_amp/checkpoints

  3. 多卡训练

    训练命令参考如下。

    cd /home/ma-user/open_clip/src
    torchrun --nproc_per_node 4 -m training.main \
        --save-frequency 1 \
        --zeroshot-frequency 1 \
        --report-to tensorboard \
        --train-data '/home/ma-user/open_clip/mscoco/{00000..00059}.tar' \
        --train-num-samples 102400 \
        --dataset-type webdataset \
        --warmup 10000 \
        --batch-size=256 \
        --lr=1e-3 \
        --wd=0.1 \
        --epochs=30 \
        --workers=8 \
        --model ViT-B-32
support.huaweicloud.com/bestpractice-modelarts/modelarts_10_1952.html