当前位置:主页 > 查看内容

使用TensorFlow实现手写数字识别_AI开发平台ModelArts_最佳实践_

发布时间:2021-04-24 00:00| 位朋友查看

简介:本文介绍在华为云ModelArts平台如何使用TensorFlow实现MNIST数据集的手写数字图像识别应用。 开始使用如下样例前,请务必按 准备工作 指导完成必要操作。使用TensorFlow实现手写数字图像识别样例的操作流程如下所示。 准备数据 :获取MNIST数据集,并上传至O……

本文介绍在华为云ModelArts平台如何使用TensorFlow实现MNIST数据集的手写数字图像识别应用。

开始使用如下样例前,请务必按准备工作指导完成必要操作。使用TensorFlow实现手写数字图像识别样例的操作流程如下所示。

  1. 准备数据:获取MNIST数据集,并上传至OBS。
  2. 训练模型:使用TensorFlow框架编写模型训练脚本,并新建训练作业进行模型训练。
  3. 部署模型:训练结束后,将模型导入ModelArts,并将模型部署为在线服务
  4. 预测结果:发起预测请求获取预测结果。

准备工作

  • 已注册华为云帐号,且在使用ModelArts前检查帐号状态,帐号不能处于欠费或冻结状态。
  • 当前帐号已完成访问授权的配置。如未完成,请参考使用委托授权针对之前使用访问密钥授权的用户,建议清空授权,然后使用委托进行授权。
  • 已在OBS服务中创建桶和文件夹,用于存放样例数据集以及模型。如下示例中,请创建命名为“test-modelarts”的桶,并创建如表1所示的文件夹。
    创建OBS桶和文件夹的操作指导请参见创建桶新建文件夹。请确保您使用的OBS与ModelArts在同一区域。
    表1 文件夹列表

    文件夹名称

    用途

    “dataset-mnist”

    用于存储数据集。

    “mnist-tensorflow-code”

    用于存储训练脚本。

    “mnist-model”

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

  • 针对此示例,ModelArts提供了部署上线需使用的训练脚本、推理代码和配置文件。请获取示例文件并上传OBS指定路径,详细请参见表2
    1. 在gitee的ModelArts-Lab工程中,单击“克隆/下载”,然后单击“下载ZIP”,下载工程。
    2. 下载完成后,解压缩“ModelArts-Lab-master.zip”文件,然后在“\ModelArts-Lab-master\official_examples\Using_TensorFlow_to_Create_a_MNIST_Dataset_Recognition_Application\codes”目录中获取到训练脚本“train_mnist_tf.py”、推理代码“customize_service.py”和配置文件“config.json”,并上传至对应OBS路径。上传文件至OBS的操作指导请参见上传文件
    表2 上传示例文件至OBS

    文件名称

    描述

    上传至如下OBS路径中

    “train_mnist_tf.py”

    训练脚本。

    “test-modelarts/mnist-tensorflow-code”

    “customize_service.py”

    推理代码。

    “test-modelarts/mnist-model/model”

    说明:
    • 请在训练作业完成后,再执行上传操作。
    • 如果训练作业运行多次,将生成不同的版本,“mnist-model”目录下将生成多种版本的目录,如“V0001”“V0002”,请基于训练作业的版本,将文件上传至对应版本下的“model”文件夹内。

    “config.json”

    配置文件。

准备数据

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

  1. 单击数据集下载链接,将“Mnist-Data-Set”数据集下载至本地。
  2. 在本地,将“Mnist-Data-Set.zip”压缩包解压。例如,解压至本地“Mnist-Data-Set”文件夹下。
  3. 参考上传文件,使用批量上传方式将“Mnist-Data-Set”文件夹下的所有文件上传至“test-modelarts/dataset-mnist”OBS路径下。

    “Mnist-Data-Set”数据集包含的内容如下所示,其中“.gz”为对应的压缩包。

    • “t10k-images-idx3-ubyte”:验证集,共包含10000个样本。
    • “t10k-images-idx3-ubyte.gz”:验证集的压缩包文件。
    • “t10k-labels-idx1-ubyte”:验证集标签,共包含10000个样本的类别标签。
    • “t10k-labels-idx1-ubyte.gz”:验证集标签的压缩包文件。
    • “train-images-idx3-ubyte”:训练集,共包含60000个样本。
    • “train-images-idx3-ubyte.gz”:训练集的压缩包文件。
    • “train-labels-idx1-ubyte”:训练集标签,共包含60000个样本的类别标签。
    • “train-labels-idx1-ubyte.gz”:训练集标签的压缩包文件。

训练模型

数据准备完成后,您需要使用TensorFlow编写训练脚本代码,ModelArts提供了一个编写好的代码示例“train_mnist_tf.py”,如下操作使用此示例训练模型。

  1. 参考准备工作的操作指导,将“train_mnist_tf.py”文件上传至OBS,例如“test-modelarts/mnist-tensorflow-code”
  2. 在ModelArts管理控制台,进入“训练管理 > 训练作业”页面,单击左上角的“创建”
  3. “创建训练作业”页面,参考图1图2填写相关信息,然后单击“下一步”
    图1 创建训练作业-填写基本信息
    图2 创建训练作业-填写详细参数
  4. “规格确认”页面,确认训练作业的参数信息,确认无误后单击“提交”
  5. 在训练作业管理页面,当训练作业变为“运行成功”时,即完成了模型训练过程。如有问题,可单击作业名称,进入作业详情界面查看训练作业日志信息。

    训练作业需要花费一些时间,预计十几分钟。当训练时间超过一定时间(如1个小时),请及时手动停止,释放资源。否则会导致欠费,尤其对于使用GPU训练的模型项目。

  6. (可选)在模型训练的过程中或者完成后,可以通过创建可视化作业查看一些参数的统计信息。详细操作指导请参见创建可视化作业

    其中,“训练输出位置”请选择步骤训练作业中“训练输出位置”参数中的路径,如“/test-modelarts/mnist-model/”。根据界面提示完成可视化作业创建。

部署模型

模型训练完成后,可以创建预测作业,将模型部署为在线预测服务。在部署模型之前,获取推理代码“customize_service.py”和配置文件“config.json”并上传至OBS中。此推理代码和配置文件为ModelArts为操作样例提供的示例。您也可以基于模型包规范开发自己所需的推理代码及配置文件。

  1. 在部署模型之前,请参见准备工作,将推理代码和配置文件上传至对应OBS路径下。本示例中模型输出位置的OBS路径为“test-modelarts/mnist-model/model”
  2. 在ModelArts管理控制台,单击左侧导航栏中的模型管理>模型,进入“模型”页面,单击“导入”
  3. “导入模型”页面,参考图3填写相关参数,然后单击“立即创建”

    “元模型来源”中,选择“从对象存储服务(OBS)中选择”页签。然后在“选择元模型”右侧文本框选择训练作业中“训练输出位置”指定的路径。

    图3 导入模型

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

  4. 单击模型名称左侧的小三角,打开此模型下的所有版本。在对应版本所在行,单击操作列“部署>在线服务”,将模型部署为在线服务。
    “部署”页面,参考图4填写参数,然后根据界面提示完成在线服务创建。
    图4 部署模型

预测结果

完成模型部署后,等待服务部署完成,当服务状态显示“运行中”,表示服务已部署成功。

  1. “在线服务”页面,单击在线服务名称,进入服务详情页面。
  2. 单击“预测”页签,在“选择预测图片文件”右侧,单击“上传”按钮选择一张黑底白字的图片,然后单击“预测”

    预测完成后,预测结果显示区域将展示预测结果,根据预测结果内容,可识别出此图片的数字是“1”

    • 由于推理代码和配置文件中已指定图片要求,用于预测的图片,大小必须为“28px*28px”,且图片必须是黑底白字。
    • 建议不要使用数据集中自带的图片,可以使用Windows自带的画图工具绘制一张。
    图5 预测结果展示
  3. 如果不再需要使用此模型及在线服务,建议清除相关资源,避免产生不必要的费用。
    • “在线服务”页面,“停止”“删除”刚创建的在线服务。
    • “模型管理”页面,“删除”刚导入的模型。
    • “训练作业”页面,“删除”运行结束的训练作业。
    • 进入OBS,删除本示例使用的OBS桶及文件夹,以及文件夹的文件。

本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!

推荐图文

  • 周排行
  • 月排行
  • 总排行

随机推荐