文档首页 > > 最佳实践> Ascend应用教程> 使用预置算法实现图像分类(Ascend310推理)

使用预置算法实现图像分类(Ascend310推理)

分享
更新时间:2020/11/17 GMT+08:00

如下操作步骤,以“ResNet_v1_50”为例,指导如何从AI市场订阅算法,然后使用算法创建训练模型,将所得的模型部署为在线服务(使用Ascend 310推理)。针对支持使用Ascend 310芯片推理的算法,其操作步骤类似,因此不再赘述,可参考“ResNet_v1_50”算法操作。

针对支持Ascend 310推理的算法,如ResNet_v1_101MobileNet_v1等,可参考此章节的操作进行训练和推理操作。详细的参数填写,可根据每个算法的不同参数进行调整,官方发布的预置算法介绍,请参见“ModelArts AI市场用户指南”。

  1. 数据准备
  2. 订阅算法
  3. 使用订阅算法创建训练作业
  4. 模型转换
  5. 导入模型
  6. 部署为在线服务(Ascend 310)

数据准备

  1. 获取样例数据集“Flowers-Data-Set”数据集中包含了花卉图片及其标注信息。由于数据集中数据较多,推荐使用OBS Browser+工具上传文件
  2. 登录ModelArts管理控制台,在左侧菜单栏中选择“数据管理 > 数据集”
  3. 在数据集管理页面,单击“创建数据集”,创建一个“图像分类”类型的数据集。
    其中,“数据集输入位置”,选择步骤1中数据存储的OBS路径。“数据集输出位置”,请务必选择一个空目录存储,且此目录不能是“数据集输入位置”对应目录的子目录。
    图1 创建数据集
  4. 参数填写完成后,单击右下角的“创建”,完成数据集的创建。此时页面将自动跳转至数据集列表中。
  5. 在数据集列表页面,单击数据集名称,进入数据集概览页,然后单击右上角的“开始标注”,进入数据集详情页。
  6. 在数据集详情页面中,等待数据同步至ModelArts中。由于数据集已完成标注,无需重新标注,只需等待数据同步即可。由于数据集中数据较多,数据同步需要花费2分钟左右,请耐心等待。

    “已标注”页签下呈现所有上传数据时,表示数据已完成同步。

  7. 单击左上角“返回数据集概览”,然后在数据集概览页中,单击右上角的“发布”
  8. 在弹出的对话框中,填写“版本名称”“版本格式”,可使用默认值。“训练验证比例”建议设置为“0.8”。然后单击“确定”完成发布。

    验证集不参与训练,用于训练过程中评估模型的好坏,验证集比例太大,会导致训练集变少,影响训练效果。验证集太少,可能导致验证的精度不准确。针对此示例,推荐使用0.8比例进行切分。

    图2 发布数据集版本
  9. 在数据集列表页面,等待数据集发布完成。发布过程中的数据集,其名称前面有个运行标记。当数据集发布结束后,其操作列的发布按钮将呈现为蓝色可点击状态。

    请耐心等待,必须等数据集发布成功后,才可以执行下一步训练模型的操作。

订阅算法

ModelArts官方提供了一个“ResNet_v1_50”,算法用途为图像分类,算法介绍可参见ResNet_v1_50算法介绍,且此算法训练所得的模型,可快速部署在Ascend 310芯片上。目前“ResNet_v1_50”算法发布在AI市场中。您可以前往AI市场,订阅此模型,然后同步至ModelArts中。

  1. 在ModelArts管理控制台中,在左侧菜单栏中选择“AI市场”。选择进入新版AI市场。
  2. 在AI市场中,在搜索框中输入“ResNet_v1_50”,查找对应的算法。
    由于AI市场发布了多个“ResNet_v1_50”,本示例请选择仅支持Ascend310推理的算法。同时支持Ascend 910和Ascend 310的算法,请参考Ascend910训练和Ascend310推理的样例样例。
    图3 选择仅用于Ascend 310推理的算法
  3. 单击算法名称进入算法详情页,单击右侧的“订阅”,根据界面提示完成算法订阅。

    此算法由ModelArts官方提供,目前免费开放。订阅算法完成后,页面的“订阅”按钮显示为“已订阅”

  4. 单击商品详情页的“前往控制台”,此时弹出“选择云服务区域”对话框,选择ModelArts对应的区域,然后再单击“确定”

    页面将自动跳转至ModelArts的“算法管理>市场订阅”中同步对应的算法。

    图4 前往控制台
    图5 选择云服务区域
  5. 在ModelArts管理控制台的算法管理页面,算法将自动同步至ModelArts中。

    未同步的算法,无法直接用于创建训练作业,因此从AI市场订阅完成后,需在ModelArts管理控制台执行同步操作。同步成功后,下方界面中的“创建训练作业”按钮可用,且状态变更为“就绪”

    图6 同步算法

使用订阅算法创建训练作业

算法订阅成功后,算法将呈现在“算法管理>市场订阅”中,您可以使用订阅的“ResNet_v1_50”算法创建训练作业,获得模型。

  1. 进入“算法管理>市场订阅”页面,选择订阅的“ResNet_v1_50”算法,单击左侧的小三角展开算法,在版本列表中,单击“创建训练作业”
    图7 创建训练作业
  2. “创建训练作业”页面,参考如下说明填写关键参数。
    • “算法来源”:系统默认选择订阅的算法,请勿随意修改。
    • “数据来源”:选择数据集,然后从下拉框中选择数据准备中创建好的数据集。数据集一定要选择切分训练集比例的版本,否则将会导致训练失败。
    • “训练输出”:选择一个OBS空目录存储训练输出的模型。
    • “调优参数”:建议采用默认值。如需进行调优,可参考ResNet_v1_50算法介绍
    • “资源池”:建议选择GPU规格的资源池,训练效率会更高一些。
      图8 训练作业参数
      图9 资源池设置
  3. 参数填写完成后,单击“下一步”,根据界面提示完成训练作业创建。
  4. 进入“训练管理>训练作业”页面,等待训练作业完成。

    训练作业运行需要几分钟时间,请耐心等待。根据经验,选择样例数据集,使用GPU资源运行,预计5分钟左右可完成。

    当训练作业的状态变更为“运行成功”时,表示已运行结束。您可以单击训练作业名称,进入详情页面,了解训练作业的“配置信息”、“日志”、“资源占用情况”和“评估结果”等信息。您也可以在配置的“训练输出位置”对应的OBS目录下获得训练生成的模型。

模型转换

使用预置算法训练所得的模型,需通过转换功能,转成适用于Ascend芯片的格式,即“om”格式。

  1. 在ModelArts管理控制台,选择“模型管理 > 压缩/转换”
  2. 在模型转换作业列表页面,单击“创建任务”。在创建转换任务页面中,参考如下说明填写关键参数。
    • “输入框架”:选择“TensorFlow”
    • “转换输入目录”:请选择训练作业输出路径下的“<输出路径>/V00X/frozen_gragh”目录。其中“<输出路径>/V00X”请根据实际参数填写。
    • “输出框架”:选择“MindSpore”
    • “转换输出目录”:请选择训练作业输出路径下的“<输出路径>/V00X/om/model”目录。其中“<输出路径>/V00X”请根据实际参数填写。
    • “转换模板”:用于Ascend 310芯片的模型请选择“TF-FrozenGraph-To-Ascend-C32”模板。更多转换模板及其高级参数介绍请参见转换模板
    • “高级选项”:本示例可直接使用参数值如下所示。如果需要修改,请参见转换模板了解参数说明。

      “输入张量形状”“images:1,224,224,3”

      “输入数据格式”“NHWC”

      “转换输出节点”“logits:0”

      “优选数据格式”“5D”

      “生成高精度模型”“0”

      “网络输出类型”“FP32”

      “L2动态优化”“true”

      图10 转换模型
  3. 转换模型的参数填写完成后,单击“立即创建”,页面自动跳转至“压缩/转换”列表。

    当模型转换的“任务状态”变为“成功”时,表示模型已被转换成“om”格式。

    图11 模型转换成功

导入模型

模型转换为om格式后,可采用“从模板中选择元模型”的方式,导入模型。

  1. 在ModelArts管理控制台,选择“模型管理 > 模型”
  2. 在模型列表页面,单击导入。进入导入模型页面,参考如下说明填写关键参数。
    • “元模型来源”:选择“从模板中选择”
    • “模型模板”:本示例的模型需部署在Ascend 310芯片上,因此需选择“ARM-Ascend模板”。然后在“模型目录”中选择模型转换步骤中“转换输出目录”下的“model”目录,即“<转换输出目录>/model”
    • “输入输出模式”:由于“ResNet_v1_50”算法的模型为“图像分类”类型的,因此此处需选择预置图像处理模式
    • “部署类型”:默认勾选“在线服务”“批量服务”“边缘服务”。保持默认选项即可。
      图12 从模板中选择模型
  3. 模型导入参数填写完成后,单击立即创建。页面自动跳转至模型列表页面,等待模型导入结果。

    当模型的状态变为“正常”时,表示模型导入成功。

    图13 模型导入成功

部署为在线服务(Ascend 310)

模型导入成功后,可将此模型部署为在线服务,在部署时可使用Ascend 310芯片资源。

  1. “模型管理>模型>我的模型”列表中,单击操作列的“部署 > 在线服务”
    图14 部署模型
  2. “部署”页面,参考如下说明填写关键参数。

    “资源池”:选择“公共资源池”

    “选择模型及配置”“模型”“版本”会自动选择前面导入的模型。在“计算节点规格”中,选择您创建的Ascend 310芯片资源,目前支持“ARMCPU:3 核 6 GiB Ascend: 1 * Ascend 310”资源规格。其他参数可使用默认值。

    图15 部署为在线服务
  3. 参数设置完成后,单击“下一步”,根据界面提示,完成在线服务的部署。

    您可以进入“在线服务列表”页面,等待服务部署结束,当服务状态变为运行中时,表示服务部署成功。

    图16 运行中的服务
  4. 在线服务部署完成后,您可以单击服务名称进入服务详情页。
    • 访问服务:了解调用指南,获取API接口地址,可通过postman或使用curl命令发送请求,访问在线服务
    • 预测:单击“预测”页签,上传一个测试图片,进行预测。
    更多操作,可参见ModelArts用户指南
    图17 调用指南
    图18 预测
分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!非常感谢您的反馈,我们会继续努力做到更好!
反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

智能客服提问云社区提问