快速入门
简介
PyTorch GPU2Ascend工具可将基于GPU的训练脚本迁移为支持NPU的脚本,大幅度提高脚本迁移速度,降低开发者的工作量。本样例可以让开发者快速体验PyTorch GPU2Ascend工具的迁移效率。
本样例选用ResNet50模型,数据集为ImageNet。
前提条件
- 准备一台基于Atlas 训练系列产品的训练服务器,并安装对应的驱动和固件。驱动和固件的安装请参考安装NPU驱动固件
- 安装开发套件包Ascend-cann-toolkit,具体请参考安装CANN。
- 以安装PyTorch 2.1.0版本为例,具体操作请参考“安装PyTorch”章节,完成PyTorch框架和torch_npu插件的安装。
- 使用PyTorch GPU2Ascend迁移前须执行如下命令安装依赖,如下命令如果使用非root用户安装,需要在安装命令后加上--user。
pip3 install pandas #必选,pandas版本号需大于或等于1.2.4 pip3 install libcst #必选,语义分析库,用于解析Python文件 pip3 install prettytable #必选,将数据可视化为图表形式 pip3 install jedi #必选,用于跨文件解析
自动迁移
修改内容少,只需在训练脚本中导入库代码,迁移后直接在昇腾NPU平台上运行(推荐)。
- 在训练脚本main.py文件中导入自动迁移的库代码。
from torch.utils.data import Subset import torch_npu from torch_npu.contrib import transfer_to_npu .....
- 切换目录至迁移完成后的训练脚本所在路径(以/home/user为例),执行以下命令使用虚拟数据集进行训练,迁移完成后的训练脚本可在NPU上正常运行。开始打印迭代日志,说明训练功能迁移成功。
cd /home/user python main.py -a resnet50 --gpu 1 --epochs 1 --dummy # --gpu 1表示使用卡1,--epochs 1是指迭代次数为1
- 成功保存权重,说明保存权重功能迁移成功。
使用PyTorch GPU2Ascend工具迁移
- 进入迁移工具所在路径。
cd Ascend-cann-toolkit安装目录/ascend-toolkit/latest/tools/ms_fmk_transplt/
- 执行脚本迁移任务,参考表1配置信息。
./pytorch_gpu2npu.sh -i 原始脚本路径 -o 脚本迁移结果输出路径 -v 原始脚本的PyTorch框架版本
命令示例:
./pytorch_gpu2npu.sh -i /home/user -o /home/out -v 2.1.0
- 切换目录至迁移完成后的训练脚本所在路径(以/home/user为例),执行以下命令使用虚拟数据集进行训练,迁移完成后的训练脚本可在NPU上正常运行。开始打印迭代日志,说明训练功能迁移成功。
cd /home/user python main.py -a resnet50 --gpu 1 --epochs 1 --dummy # --gpu 1表示使用卡1,--epochs 1是指迭代次数为1
- 完成脚本迁移,进入脚本迁移结果的输出路径查看结果件。
- 成功保存权重,说明保存权重功能迁移成功。