基于ModelArts预置算法ResNet_v1_50识别花卉

举报
运气男孩 发表于 2022/01/30 00:03:08 2022/01/30
【摘要】 针对有一定AI基础的AI初学者,ModelArts基于业界的主流引擎提供了预置算法,无需关注模型开发过程,直接使用预置算法对已有数据进行训练,并快速部署为服务。预置算法可用于物体类别和位置、图像分类等场景。        本次实验提供了一个花卉图像分类应用的样例,帮助您快速熟悉使用ModelArts预置算法构建模型的过程。此样例针对预置的花卉图像数据集,对已有图像数据进行标注,然后使用预置的...

针对有一定AI基础的AI初学者,ModelArts基于业界的主流引擎提供了预置算法,无需关注模型开发过程,直接使用预置算法对已有数据进行训练,并快速部署为服务。预置算法可用于物体类别和位置、图像分类等场景。

        本次实验提供了一个花卉图像分类应用的样例,帮助您快速熟悉使用ModelArts预置算法构建模型的过程。此样例针对预置的花卉图像数据集,对已有图像数据进行标注,然后使用预置的“ResNet_v1_50”算法对数据进行训练,得到一个可用的模型,最后,将此模型部署为在线服务。部署完成后,用户可通过在线服务识别输入图片的花卉种类。使用预置算法完成模型构建的步骤如下所示:

  • 步骤1:准备数据

  • 步骤2:训练模型

  • 步骤3:(可选)创建可视化作业,查看模型训练过程

  • 步骤4:导入模型

  • 步骤5:部署上线

  • 步骤6:测试服务

  • 步骤7:清除相应资源,避免产生费用

准备工作

  • 已注册华为云账号,且在使用ModelArts前检查账号状态,账号不能处于欠费或冻结状态。

  • 当前账号已完成访问授权的配置。如未完成,请参考使用委托授权。针对之前使用访问密钥授权的用户,建议清空授权,然后使用委托进行授权。

  • 已在OBS服务中创建桶和文件夹,用于存放样例数据集以及模型。如下示例中,请创建命名为“test-modelarts”的桶,并创建如表1所示的文件夹。

  • 创建OBS桶和文件夹的操作指导请参见创建桶新建文件夹。确保您使用的OBS目录与ModelArts在同一区域。

    文件夹名称

    用途

    “dataset-flowers”

    用于存储数据集。

    “model-test”

    用于存储训练输出的模型和预测文件。

    “train-log”

    用于存储训练作业的日志。

步骤1:准备数据

        ModelArts在公共OBS桶中提供了花卉的示例数据集,命名为“Flowers-Data-Set”,因此,本文的操作示例使用此数据集进行模型构建。您需要执行如下操作,将数据集上传至您的OBS目录下,即准备工作中您创建的OBS目录“test-modelarts/dataset-flowers”。


说明

  • 由于“Flowers-Data-Set”数据集已完成数据标注,数据集中文件格式为“.txt”是对应图片的标注文件,因此在此操作步骤中忽略了数据标注操作。

  • 如果您想使用自己的数据集,可跳过此步骤,直接将数据上传至OBS文件夹中,并在步骤2:训练模型操作中直接选择此目录即可。如果您使用的数据集未进行标注,在创建训练作业前请在“数据管理>数据集”页面创建数据集并进行人工标注。


  1. 单击数据集下载链接,将“Flowers-Data-Set”数据集下载至本地。

  2. 在本地,将“Flowers-Data-Set.zip”压缩包解压。例如,解压至本地“Flowers-Data-Set”文件夹下。

  3. 参考上传文件,使用批量上传方式将“Flowers-Data-Set”文件夹下的所有文件上传至“test-modelarts/dataset-flowers”OBS路径下。

步骤2:训练模型

数据准备完成后,您可以创建一个训练作业,选用预置算法“ResNet_v1_50”,并最终生成一个可用的模型。

ResNet_v1_50”算法基于“TensorFlow, TF-1.8.0-python2.7”引擎,其用途为图像分类。如果您想获取更多预置算法的介绍,您可以在“训练作业”页面中,单击“预置算法”页签,了解ModelArts提供的算法信息,如用途、引擎类型、精度等。

  1. 在ModelArts管理控制台,在左侧导航栏中选择“训练管理>训练作业”,进入“训练作业”管理页面。

  2. 单击“创建”,进入“创建训练作业”页面。

  3. 在“创建训练作业”页面,填写相关信息,参数填写指导请参见如下步骤。

    1. “算法来源”:单击“选择”,从“预置算法”列表中,选择“ResNet_v1_50”算法。

    2. “数据来源”:由于导入的数据集已完成标注,因此直接从数据存储位置导入即可。单击“数据存储位置”,然后单击文本框右侧的“选择”,选择数据集所在的OBS路径,如“/test-modelarts/dataset-flowers/”。

    3. “训练输出位置”:从已有的OBS桶中选择模型和预测文件存储路径。使用准备工作中已创建好的“model-test”文件夹。如果没有可用文件夹,您可以单击“选择”,在弹出对话框中新建文件夹。

    4. “运行参数”:选择“ResNet_v1_50”算法后,默认包含“max_epoches”参数,默认值为“100”。针对此示例,建议将“max_epoches”参数值修改为“10”,1个epoch代表整个数据集训练一遍,此运行参数表示训练10个epoch,“max_epoches”值越大训练时间越长。

    5. “作业日志路径”:从已有的OBS桶中选择日志存储路径。使用准备工作中已创建好的“train-log”文件夹。如果没有可用文件夹,您可以单击“选择”,在弹出对话框中新建文件夹。

    6. 在基本信息区域,“计费模式”和“版本”为系统自动生成,不需修改。请根据界面提示填写“名称”和“描述”。

      图1 填写名称和描述
      image.png
    7. 在参数配置区域,选择“算法来源”,设置“数据来源”、“训练输出位置”、“运行参数”和“作业日志路径”。

      图2 参数配置
      image.png
    8. 在资源设置区域,选择“公共资源池”,同时设置“规格”和“计算节点个数”。

      如果选择使用免费规格,请仔细阅读提示信息,然后勾选“我已阅读并同意以上内容”。

      图3 设置使用的资源
      image.png
    9. 单击“下一步”完成信息填写。

  4. 在“规格确认”页面,确认训练作业的参数信息,确认无误后单击“提交”。

  5. 在“训练作业”管理页面,可以查看新建训练作业的状态。训练作业的创建和运行需要一些时间,预计十几分钟,当状态变更为“运行成功”时,表示训练作业创建完成。

    您可以单击训练作业的名称,可进入此作业详情页面,了解训练作业的“配置信息”、“日志”和“资源占用情况”等信息。在“训练输出位置”所在的OBS路径中,即“/test-modelarts/model-test/”路径,可以获取到生成的模型文件。

    图4 训练作业详情
    image.png

步骤3:(可选)创建可视化作业,查看模型训练过程

目前ModelArts提供的可视化作业默认为TensorBoard类型的作业。TensorBoard是一个可视化工具,能够有效地展示TensorFlow或MXNet在运行过程中的计算图、各种指标随着时间的变化趋势以及训练中使用到的数据信息。可视化作业当前只支持基于TensorFlow和MXNet引擎的训练作业。

如果训练详情页的详细信息已足够支撑您判断模型好坏并构建模型,您可以选择跳过此步骤,直接执行步骤4:导入模型的操作。

  1. 在ModelArts管理控制台,在左侧导航栏中选择“训练管理 > 训练作业”,然后单击“可视化作业”页签进入“可视化作业”管理页面。

  2. 在“可视化作业”管理页面,单击“创建”。

  3. 在“创建可视化作业”页面,设置相关参数,然后单击“下一步”。

    可视化作业的类型默认为“可视化作业”,且不可更改。设置可视化作业的“名称”,以及“训练输出位置”。“训练输出位置”需要设置为训练作业中的“训练输出位置”,上述步骤中“训练输出位置”为“/test-modelarts/model-test/”。“自动停止”启用,并设置为“1小时后”停止,避免产生不必要的费用。
    图5 设置可视化作业参数信息
    image.png
  4. 在“规格确认”页面,信息确认完毕后,单击“提交”。

  5. 进入“可视化作业”管理页面,等待一段时间,当可视化作业的状态为“运行中”时,表示已创建成功。

    针对运行中的可视化作业,您可以单击可视化作业的名称跳转到其可视化界面。您可以通过此界面的信息,了解到此模型的具体训练过程。如果此模型训练过程和参数满足要求,您可以开始执行步骤4:导入模型操作。

    图6 可视化界面
    image.png

步骤4:导入模型

训练完成的模型还是存储在OBS路径中,您可以将此模型导入到ModelArts中进行管理和部署。

  1. 在ModelArts管理控制台中,单击左侧导航栏中的“模型管理>模型”,进入“模型”页面。

  2. 在“模型”页面,单击“导入”。

  3. 在“导入模型”页面,设置相关参数,然后单击“立即创建”。

    设置模型的“名称”和“版本”,然后在“元模型来源”参数中,选择“从训练中选择”,此时系统会自动选择您创建的训练作业,您可以从下拉框中可以选择系统中可用的训练作业。由于本示例数据较简单,其他参数采用默认值。
    图7 导入模型
    image.png
  4. 模型导入完成后,系统将自动跳转至模型列表页面。您可以在模型列表页面查看已导入的模型及其版本。

    图8 模型列表
    image.png

步骤5:部署上线

模型导入完成后,当状态显示为“正常”时,可以将模型部署上线,可部署为“在线服务”、“批量服务”或“边缘服务”。如下操作步骤以部署为在线服务为例。

  1. 在“模型管理 > 模型”页面,单击模型名称左侧的小三角,打开此模型下的所有版本。在对应版本所在行,单击操作列的“部署”,然后在下拉框中选择“在线服务”,进入“部署”页面。

  2. 在“部署”页面中,设置相关参数,然后单击“下一步”。

    设置在线服务的“名称”,将“是否自动停止”功能启用。在“选择模型及配置”区域中,系统将自动选择步骤4:导入模型中的模型及其版本,在“计算节点规格”右侧下拉框中选择使用的资源,本示例选用“CPU:2核 8GiB”资源部署在线服务。其他参数使用默认值。

    “数据采集”和“难例筛选”功能,建议使用默认值,保持关闭。
    图9 部署为在线服务
    image.png
  3. 在“规格确认”页面,确认信息完毕后,单击“提交”。

  4. 在“部署上线 > 在线服务”页面,您可以查看在线服务的相关信息。由于模型部署上线需要花费一些时间,请耐心等待几分钟。当在线服务的状态为“运行中”时,表示在线服务已部署完成。

步骤6:测试服务

  1. 在线服务部署成功后,您可以进入在线服务,发起预测请求进行测试。

  2. 在“在线服务”管理页面,单击在线服务名称,进入在线服务详情页面。

  3. 在线服务详情页面中,单击“预测”页签,进入预测页面。

  4. 在“选择预测图片文件”右侧,单击“上传”按钮,上传一张带花的图片,然后单击“预测”。

  5. 预测完成后,预测结果显示区域将展示预测结果,根据预测结果得分,可识别出此图片的花为“daisy”。


说明:由于此处是测试服务,为保证测试效果,建议选择图片时,不要使用示例数据集中已有的图片。


图10 预测结果
image.png

步骤7:清除相应资源,避免产生费用

为避免产生不必要的费用,在完成试用后,建议您删除相关资源,如在线服务、可视化作业、训练作业、数据及其OBS目录。

  • 删除在线服务:在“在线服务”页面,单击操作列的“更多>删除”。

  • 删除可视化作业:在“训练作业>可视化作业”页面,单击操作列的“删除”。

  • 删除训练作业:在“训练作业”页面,单击操作列的“删除”。

  • 删除数据:前往OBS,删除上传的数据,然后删除文件夹及OBS桶。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。