使用NAS提交单机PyTorch迁移学习任务

本文介绍如何使用DLC、DSWNAS,基于PyTorch进行离线迁移训练。

前提条件

选择合适的地域,创建通用型NAS文件系统,详情请参见通过控制台创建通用型NAS文件系统

使用限制

本文的操作仅支持通用计算资源公共资源组的工作集群。

步骤一:创建数据集

  1. 进入数据集管理页面。

    1. 登录PAI控制台

    2. 在左侧导航栏单击工作空间列表,在工作空间列表页面中单击待操作的工作空间名称,进入对应的工作空间。

    3. 在左侧导航栏,选择AI资产管理 > 数据集

  2. 创建基础数据集,其中,存储类型选择为文件存储(通用型NAS)

步骤二:创建DSW实例

创建DSW实例时,您需要在数据集区域单击添加,选择步骤一创建的NAS类型数据集,并将挂载路径配置为/mnt/data/,工作目录选择数据集-/mnt/data/

其他参数配置详情,请参见创建DSW实例

image

步骤三:准备数据

本文使用的数据已经存放在公开地址,您可以直接下载(下载数据),解压后即可使用。

  1. 进入DSW开发环境。

    1. 登录PAI控制台

    2. 在左侧导航栏单击工作空间列表,在工作空间列表页面中单击待操作的工作空间名称,进入对应工作空间内。

    3. 在页面左上方,选择使用服务的地域。

    4. 在左侧导航栏,选择模型开发与训练 > 交互式建模(DSW)

    5. 可选:交互式建模(DSW)页面的搜索框,输入实例名称或关键字,搜索实例。

    6. 单击需要打开的实例操作列下的打开

  2. DSW开发环境的顶部菜单栏,单击Notebook页签。

  3. 下载数据。

    1. 单击左上方工具栏中的创建文件夹图标,创建文件夹(例如pytorch_transfer_learning)。

    2. DSW开发环境的顶部菜单栏,单击Terminal页签,即可打开Terminal。

    3. Terminal中,使用cd命令进入已创建的文件夹,并通过wget命令下载数据集,如下图所示。

      cd /mnt/workspace/pytorch_transfer_learning/
      wget https://pai-public-data.oss-cn-beijing.aliyuncs.com/hol-pytorch-transfer-cv/data.tar.gz

      其中https://pai-public-data.oss-cn-beijing.aliyuncs.com/hol-pytorch-transfer-cv/data.tar.gz表示数据集地址,即从该地址下载数据集。

      image

    4. 使用tar -xf ./data.tar.gz命令解压数据集。

    5. 切换到Notebook页签,在左侧目录树,进入目录pytorch_transfer_learning中,右键单击已解压的数据文件夹(hymenoptera_data),在快捷菜单中,单击Rename将该文件重命名为input,以便后续操作。

步骤四:准备训练代码和模型存储文件夹

  1. DSW实例的Terminal中,使用wget命令将训练代码下载到pytorch_transfer_learning文件夹下。

    cd /mnt/workspace/pytorch_transfer_learning/
    wget https://pai-public-data.oss-cn-beijing.aliyuncs.com/hol-pytorch-transfer-cv/main.py

    其中https://pai-public-data.oss-cn-beijing.aliyuncs.com/hol-pytorch-transfer-cv/main.py表示训练代码存储地址。

  2. pytorch_transfer_learning文件夹下,创建名为output的文件夹,用于存储训练完成的模型。

    mkdir output
  3. 查看pytorch_transfer_learning文件夹的内容。

    文件夹下包括如下文件:

    • input:训练数据文件夹。

    • main.py:训练代码。

    • output:模型存储文件夹。

    最终的文件夹内容

步骤五:创建任务

  1. 进入新建任务页面。

    1. 登录PAI控制台

    2. 在左侧导航栏单击工作空间列表,在工作空间列表页面中单击待操作的工作空间名称,进入对应工作空间内。

    3. 在工作空间页面的左侧导航栏选择模型开发与训练 > 分布式训练(DLC),在分布式训练(DLC)页面中单击新建任务,进入新建任务页面。

  2. 新建任务页面,配置如下参数。

    区域

    参数

    描述

    基本信息

    任务名称

    深度学习训练的任务名称。

    节点镜像

    选择官方镜像 ,并在下面列表中选择PyTorch镜像。例如:选择pytorch-training:1.12pai-gpu-py38-cu113-ubuntu20.04

    数据集配置

    选择步骤一创建的NAS类型数据集。

    代码配置

    无需配置。

    启动命令

    配置为python /mnt/data/pytorch_transfer_learning/main.py -i /mnt/data/pytorch_transfer_learning/input -o /mnt/data/pytorch_transfer_learning/output

    三方库配置

    选择三方库列表,并在下方文本框中输入以下内容。

    numpy==1.16.4
    absl-py==0.11.0

    资源配置

    资源配额

    选择公共资源

    框架

    选择Pytorch

    任务资源

    选择一台合适的服务器。例如:资源规格选择CPU下的ecs.g6.xlarge节点数量配置为1。

  3. 单击确定

步骤六:查看任务详情和日志结果

  1. 分布式训练任务页面,单击任务的名称

  2. 任务详情页面,即可查看任务的基本信息基本任务配置等信息。

  3. 任务详情页面底部的实例页签,单击目标实例操作列下的日志,即可查看日志结果。

    日志结果如下图所示。image.png