本地pytorch代码迁移至华为云ModelArts平台训练

上传代码和数据集至华为云OBS

  • 注册华为云OBS账号并使用AK登录。
    参考这篇文件OBS账号注册和登录
  • 修改pytorch本地训练代码文件,在源代码开始处新增以下片段。
    # 创建解析
    parser = argparse.ArgumentParser(description="train flower",
                                     formatter_class=argparse.ArgumentDefaultsHelpFormatter)
    # 添加参数
    parser.add_argument('--train_url', type=str,
                        help='the path model saved')
    parser.add_argument('--data_url', type=str, help='the training data')
    # 解析参数
    args, unkown = parser.parse_known_args()
    # 输出位置
    train_url = args.train_url
    # 数据集位置
    data_url = args.data_url

在这里插入图片描述
在这里插入图片描述

train_url:表示你之前代码所指向的数据集位置(例:H:\dataset\flower_data)
data_url:表示你之前代码模型权重保存的位置或者其他输出文件保存的位置(例:H:\weights)

  • 将原来的数据集路径用data_url变量代替,权重保存路径用train_url变量代替。
    在这里插入图片描述

  • 修改完成后,在Pycharm的Terminal里(或其他可执行python程序的终端)执行以下命令若程序成功运行,表明修改成功(注意命令之间的空格,建议直接复制)。

python train.py --data_url H:/dataset/TB_Database22 --train_url ./

在这里插入图片描述

  • 本地调试完后,将模型训练的相关代码和数据集上传至OBS文件夹下。
    在这里插入图片描述

华为云运行环境训练

华为云Notebook创建实例
  • 登录华为云ModelArts控制台(华为云官网搜索框输入ModelArts控制台点击即可进入)
  • 选择开发环境-Notebook-点击创建
    在这里插入图片描述
  • 设置相关参数(只提供两个pytorch镜像,若没有与本地同版本镜像,请自行尝试哪个版本能正常运行)
    在这里插入图片描述
    在这里插入图片描述
  • 第一次部署选择CPU 2核 8GB规格,部署成功且熟悉部署过程后,再重新创建GPU实例执行训练作业,点击立即创建。
    在这里插入图片描述
JupyterLab加载数据和代码
  • 创建成功后,状态为运行中,如下图所示,再点击打开JupterLab。
    在这里插入图片描述
  • 选择Notebook中的pytorch进入编辑器。
    在这里插入图片描述
  • 通过以下指令将OBS中的数据集文件夹和代码文件夹拷贝至左侧文件存放区域。copy_parallel函数的第一个参数为OBS中的文件路径,第二个参数为拷贝过来的文件路径。
import moxing as mox
mox.file.copy_parallel('obs://anle-data/flower_myself','./flower')

在这里插入图片描述

开始训练
  • 模型输出文件夹需要手动新建,处理好后点击Terminal图标,跳转至控制台。
  • 在控制台输入以下指令进入到与训练代码同目录的文件夹。
cd work
  • 输入以下指令执行训练代码
python train.py --data_url ../flower/ --train_url ../output/

…/flower/:数据集所在文件夹
…/output/:模型相关输出存放文件夹
在这里插入图片描述
在这里插入图片描述
可以看到模型已经开始运行,并保存权重get_squeezenet1_0.pth在output文件夹下,亦可下载至本地。重要一点是代码必须先在本地调试好,再上传华为云平台进行训练,不然中途会出现各种难以解释的问题,祝好运

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐