云服务器内容精选

  • Step1 创建OBS桶和文件夹 在OBS服务中创建桶和文件夹,用于存放样例数据集以及训练代码。需要创建的文件夹列表如表1所示,示例中的桶名称“test-modelarts” 和文件夹名称均为举例,请替换为用户自定义的名称。 创建OBS桶和文件夹的操作指导请参见创建桶和新建文件夹。 请确保您使用的OBS与ModelArts在同一区域。 表1 OBS桶文件夹列表 文件夹名称 用途 “obs://test-modelarts/mpi/demo-code/” 用于存储MPI启动脚本与训练脚本文件。 “obs://test-modelarts/mpi/log/” 用于存储训练日志文件。
  • 定义超参 使用预置框架创建算法时,ModelArts支持用户自定义超参,方便用户查阅或修改。定义超参后会体现在启动命令中,以命令行参数的形式传入您的启动文件中。 导入超参 您可以单击“增加超参”手动添加超参。 图1 添加超参 编辑超参 超参的参数说明参见表4。 表4 超参编辑参数 参数 说明 名称 填入超参名称。 超参名称支持64个以内字符,仅支持大小写字母、数字、下划线和中划线。 类型 填入超参的数据类型。支持String、Integer、Float和Boolean。 默认值 填入超参的默认值。创建训练作业时,默认使用该值进行训练。 约束 单击“约束”。在弹出对话框中,支持用户设置默认值的取值范围或者枚举值范围。 必需 选择是或否。 选择否,则在使用该算法创建训练作业时,支持在创建训练作业页面删除该超参。 选择是,则在使用该算法创建训练作业时,不支持在创建训练作业页面删除该超参。 描述 填入超参的描述说明。 超参描述支持大小写字母、中文、数字、空格、中划线、下划线、中英文逗号和中英文句号。
  • 输入输出管道设置 训练过程中,基于预置框架的算法需要从OBS桶或者数据集中获取数据进行模型训练,训练产生的输出结果也需要存储至OBS桶中。用户的算法代码中需解析输入输出参数实现ModelArts后台与OBS的数据交互,用户可以参考开发自定义脚本完成适配ModelArts训练的代码开发。 创建基于预置框架的算法时,用户需要配置算法代码中定义的输入输出参数。 输入配置 表2 输入配置 参数 参数说明 参数名称 根据实际代码中的输入数据参数定义此处的名称。此处设置的代码路径参数必须与算法代码中解析的训练输入数据参数保持一致,否则您的算法代码无法获取正确的输入数据。 例如,算法代码中使用argparse解析的data_url作为输入数据的参数,那么创建算法时就需要配置输入数据的参数名称为“data_url”。 描述 输入参数的说明,用户可以自定义描述。 获取方式 输入参数的获取方式,默认使用“超参”,也可以选择“环境变量”。 输入约束 开启后,用户可以根据实际情况限制数据输入来源。输入来源可以选择“数据存储位置”或者“ModelArts数据集”。 如果用户选择数据来源为ModelArts数据集,还可以约束以下三种: 标注类型。数据类型请参考标注数据。 数据格式。可选“Default”和“CarbonData”,支持多选。其中“Default”代表Manifest格式。 数据切分。仅“图像分类”、“物体检测”、“文本分类”和“声音分类”类型数据集支持进行数据切分功能。 可选“仅支持切分的数据集”、“仅支持未切分数据集”和“无限制”。数据切分详细内容可参考发布数据版本。 添加 用户可以根据实际算法添加多个输入数据来源。 输出配置 表3 输出配置 参数 参数说明 参数名称 根据实际代码中的训练输出参数定义此处的名称。此处设置的代码路径参数必须与算法代码中解析的训练输出参数保持一致,否则您的算法代码无法获取正确的输出路径。 例如,算法代码中使用argparse解析的train_url作为训练输出数据的参数,那么创建算法时就需要配置输出数据的参数名称为“train_url”。 描述 输出参数的说明,用户可以自定义描述。 获取方式 输出参数的获取方式,默认使用“超参”,也可以选择“环境变量”。 添加 用户可以根据实际算法添加多个输出数据路径。
  • 预测分析作业失败的排查思路 检查用于预测分析的数据是否满足要求。 由于预测分析任务未使用数据管理的功能发布数据集,因此当数据不满足训练作业要求时,会出现训练作业运行失败的错误。 建议检查用于训练的数据,是否满足预测分析作业的要求。要求如下所示,如果数据满足要求,执行下一步检查。如果不满足要求,请根据要求仅需数据调整后再重新训练。 文件规范:名称由以字母数字及中划线下划线组成,以'.csv'结尾,且文件不能直接放在OBS桶的根目录下,应该存放在OBS桶的文件夹内。如:“/obs-xxx/data/input.csv”。 文件内容:文件保存为“csv”文件格式,文件内容以换行符(即字符“\n”,或称为LF)分隔各行,行内容以英文逗号(即字符“,”)分隔各列。文件内容不能包含中文字符,列内容不应包含英文逗号、换行符等特殊字符,不支持引号语法,建议尽量以字母及数字字符组成。 训练数据:训练数据列数一致,总数据量不少于100条不同数据(有一个特征取值不同,即视为不同数据)。训练数据列内容不能有时间戳格式(如:yy-mm-dd、yyyy-mm-dd等)的数据。确保指定标签列的取值至少有两个且无数据缺失,除标签列外数据集中至少还应包含两个有效特征列(列的取值至少有两个且数据缺失比例低于10%)。训练数据的csv文件不能包含表头,否则会导致训练失败。当前由于特征筛选算法限制,标签列建议放在数据集最后一列,否则可能导致训练失败。 由于ModelArts会自动对数据进行一些过滤,过滤后再启动训练作业。当预处理后的数据不满足训练要求时,也会导致训练作业运行失败。 对于数据集中列的过滤策略如下所示: 如果某一列空缺的比例大于系统设定的阈值(0.9),此列数据在训练时将被剔除。 如果某一列只有一种取值(即每一行的数据都是一样的),此列数据在训练时将被剔除。 对于非纯数值列,如果此列的取值个数等于行数(即每一行的数值都是不一样的),此列数据在训练时将被剔除。 经过上述过滤后,如果数据集不再满足第一点中关于训练数据的要求,则会导致训练失败或无法进行。建议完善数据后,再启动训练。 数据集文件有以下限制: 如果您使用2u8g规格,测试建议数据集文件应小于10MB。当文件大小符合限制要求,如果存在极端的数据规模(行数列数之积)时,仍可能会导致训练失败,建议的数据规模低于10000。 如果您使用8u32g规格,测试建议数据集文件应小于100MB。当文件大小符合限制要求,如果存在极端的数据规模(行数列数之积)时,仍可能会导致训练失败,建议的数据规模低于1000000。 如果上述排查操作仍无法解决,请联系华为云技术支持。
  • 增量训练的操作步骤 登录ModelArts管理控制台,单击左侧导航栏的自动学习。 在自动学习项目管理页面,单击对应的项目名称,进入此项目的自动学习详情页。 在数据标注页面,单击未标注页签,在此页面中,您可以单击添加图片,或者增删标签。 如果增加了图片,您需要对增加的图片进行重新标注。如果您增删标签,建议对所有的图片进行排查和重新标注。对已标注的数据, 也需要检查是否需要增加新的标签。 在图片都标注完成后,单击右上角“开始训练”,在“训练设置”中,在“增量训练版本”中选择之前已完成的训练版本,在此版本基础上进行增量训练。其他参数请根据界面提示填写。 设置完成后,单击“确定”,即进行增量训练。系统将自动跳转至“模型训练”页面,待训练完成后,您可以在此页面中查看训练详情,如“训练精度”、“评估结果”、“训练参数”等。 图1 选择增量训练版本
  • 自动学习模型训练图片异常? 使用自动学习的图像分类或物体检测算法时,标注完成的数据在进行模型训练后,训练结果为图片异常。针对不同的异常情况说明及解决方案参见表1。 表1 自动学习训练中图片异常情况说明(图像分类和物体检测) 序号 图片异常显示字段 图片异常说明 解决方案字段 解决方案说明 1 load failed 图片无法被解码且不能修复 ignore 系统已自动过跳过这张图片,不需要用户处理。 2 tf-decode failed 图片无法被TensorFlow解码且不能修复 ignore 系统已跳过这张图片,不需要用户处理。 3 size over 图片大于5MB resize to small 系统已将图片压缩到5MB以内处理,不需要用户处理。 4 mode illegal 图片非RGB模式 convert to rgb 系统已将图片转成RGB格式处理,不需要用户处理。 5 type illegal 非图片文件,但可以转换成JPG convert to jpg 系统已将图片转换成JPG格式处理,不需要用户处理。 父主题: 模型训练
  • 可视化训练作业介绍 ModelArts支持在新版开发环境中开启TensorBoard和MindInsight可视化工具。在开发环境中通过小数据集训练调试算法,主要目的是验证算法收敛性、检查是否有训练过程中的问题,方便用户调测。 ModelArts可视化作业支持创建TensorBoard类型和MindInsight两种类型。 TensorBoard和MindInsight能够有效地展示训练作业在运行过程中的变化趋势以及训练中使用到的数据信息。 TensorBoard TensorBoard是一个可视化工具,能够有效地展示TensorFlow在运行过程中的计算图、各种指标随着时间的变化趋势以及训练中使用到的数据信息。TensorBoard相关概念请参考TensorBoard官网。 TensorBoard可视化训练作业,当前仅支持基于TensorFlow2.1、Pytorch1.4/1.8版本镜像,CPU/GPU规格的资源类型。请根据实际局点支持的镜像和资源规格选择使用。 MindInsight MindInsight能可视化展现出训练过程中的标量、图像、计算图以及模型超参等信息,同时提供训练看板、模型溯源、数据溯源、性能调试等功能,帮助您在更高效地训练调试模型。MindInsight当前支持基于MindSpore引擎的训练作业。MindInsight相关概念请参考MindSpore官网。 MindInsight可视化训练作业,当前支持的镜像如下,请根据实际局点支持的镜像和资源规格选择使用。 mindspore1.2.0版本,CPU/GPU规格的资源类型。 mindspore1.5.x以上版本,Ascend规格的资源类型。 您可以使用模型训练时产生的Summary文件在开发环境Notebook中创建可视化作业。 在开发环境中创建MindInsight可视化作业,请参见MindInsight可视化作业。 在开发环境中创建TensorBoard可视化作业,请参见TensorBoard可视化作业。 父主题: 模型训练可视化
  • 相关操作 关闭TensorBoard方式如下: 方式1:单击下图所示的,进入TensorBoard实例管理界面,该界面记录了所有启动的TensorBoard实例,单击对应实例后面的SHUT DOWN即可停止该实例。 图8 单击SHUT DOWN停该实例 方式2:在开发环境JupyterLab中的.ipynb文件窗口中输入命令,关闭 TensorBoard。PID在启动界面有提示或者通过 ps -ef | grep tensorboard 查看。 !kill PID 方式3:单击下方红框中的按钮可以关闭所有启动的TensorBoard实例。 图9 关闭所有启动的TensorBoard实例 方式4(不推荐):直接在JupyterLab中上关闭TensorBoard窗口,此方式仅关闭可视化窗口,并未关闭后台。
  • 环境介绍 CartPole,车杆游戏,游戏画面如图1所示。游戏中,黑色的方块是一个小车,小车在一维无阻力轨道上运动。小车上连接一根活动杆,杆会左右摇摆。为保证游戏持续进行,小车需要左右移动保持杆子竖直。当小车的移动位置超出游戏界面所示范围或者杆子倾斜角度大于15°,游戏结束。游戏全过程可以理解为AI智能体与环境之间的互动,可以将复杂的因素抽象成以下三个变量。 可采取的动作:左移、右移。 获得奖励规则:左移或右移小车之后游戏没有结束,reward值会+1。 目的:使用强化学习训练一个智能体,玩CartPole游戏,尽可能多获得奖励。 图1 CartPole游戏画面
  • 注意事项 TensorBoard可视化训练作业,当前仅支持基于TensorFlow2.1、Pytorch1.4/1.8以上版本镜像,CPU/GPU规格的资源类型。请根据实际局点支持的镜像和资源规格选择使用。 运行中的可视化作业不单独计费,当停止Notebook实例时,计费停止。 Summary文件数据如果存放在OBS中,由OBS单独收费。任务完成后请及时停止Notebook实例,清理OBS数据,避免产生不必要的费用。
  • Step2 上传Summary数据 在开发环境中使用TensorBoard可视化功能,需要用到Summary数据。 Summary数据可以直接传到开发环境的这个路径下/home/ma-user/work/,也可以放到OBS并行文件系统中。 Summary数据上传到Notebook路径/home/ma-user/work/下的方式,请参见上传数据至Notebook。 Summary数据如果是通过OBS并行文件系统挂载到Notebook中,请将模型训练时产生的Summary文件先上传到OBS并行文件系统,并确保OBS并行文件系统与ModelArts在同一区域。在Notebook中启动TensorBoard时,Notebook会自动从挂载的OBS并行文件系统目录中读取Summary数据。
  • 相关操作 关闭TensorBoard方式如下: 方式1:在开发环境JupyterLab中的.ipynb文件窗口中输入命令,关闭TensorBoard。PID在启动界面有提示或者通过ps -ef | grep tensorboard查看。 !kill PID 方式2:单击下方,进入TensorBoard实例管理界面,该界面记录了所有启动的TensorBoard实例,单击对应实例后面的SHUT DOWN即可停止该实例。 图8 单击SHUT DOWN停该实例 方式3:单击下方红框中的按钮可以关闭所有启动的TensorBoard实例。 图9 关闭所有启动的TensorBoard实例 方式4(不推荐):直接在JupyterLab中上关闭TensorBoard窗口,此方式仅关闭可视化窗口,并未关闭后台。
  • 创建工程 创建训练工程是从创建模型训练工程、编辑模型训练代码到调试模型训练代码的端到端的代码开发过程。 创建模型训练工程:创建模型训练代码编辑和调试的环境。 编辑模型训练代码:在线编辑模型训练代码。 调试模型训练代码:在线调试编辑好的模型训练代码。 创建训练工程步骤如下。 单击“创建”,弹出“创建训练”对话框。 配置训练工程参数,如表1所示。 表1 新建训练工程参数说明 参数名称 参数说明 请选择模型训练方式 模型训练方式。包含如下选项: 新建模型训练工程 新建联邦学习工程 新建训练服务 新建超参优化服务 请选择:新建模型训练工程。 模型训练名称 模型训练名称。 只能以字母(A~Z a~z)开头,由字母、数字(0~9)、下划线(_)组成,不能以下划线结尾,长度范围为[1,26]。 描述 对新建模型训练工程的描述。 模型试验算法 通用算法选择:分类算法、拟合算法、聚类算法、其他类型。如果选择分类算法,可以看到“创建入门模型训练代码”,如果勾选,则自动生成鸢尾花分类建模的样例代码。 开发环境 训练工程使用的开发环境,支持: WebIDE WebIDE提供类似本地VSCode的编码体验,支持代码自动补齐、调试等功能,适用于大量代码编写场景。创建在线IDE版训练模型时选择“WebIDE”开发环境。 简易编辑器 简易编辑器提供代码查看和编辑能力,不支持调试,适用于少量代码修改场景。创建WEB版训练模型时,选择“简易编辑器”开发环境。 规格 当“开发环境”选择“WebIDE”时展示,用于设置WebIDE资源的规格。请根据实际需求选择具体规格。 实例 当“开发环境”选择“WebIDE”时展示,用于设置当前环境规格对应的环境实例。 如果当前选定的规格有环境实例,可选择已存在的实例。 如果当前选定的规格没有可用的实例,可选择“新建一个新环境”。 单击“确定”。 进入模型训练工程详情页面,如图1所示。界面介绍如表2所示。 图1 模型训练工程详情界面 表2 模型训练工程详情界面说明 区域 参数名称 参数说明 1(训练工程) 创建时间 训练工程创建时间 类型 模型训练的类型 创建者 创建训练工程的用户 活动时间 最近一次模型训练执行的时间 开发环境 模型训练运行环境信息,可通过下拉框切换当前环境。 进入模型训练编辑界面 创建训练任务,详细请参考: 创建训练任务(简易编辑器) 创建训练任务(WebIDE) 删除训练工程 模型训练工程描述 模型训练工程的描述信息,支持单击“”编辑描述信息。 对训练任务的训练报告进行对比,输出训练任务在不同超参下的评估指标,同时显示各训练任务的任务系统参数。 说明: 最多支持3个模型报告对比。 切换到其他的训练工程、训练服务或超参优化服务的模型训练页面中。 Web IDE环境资源配置与管理,包括创建环境、暂停运行中的环境以及删除已有环境。还可查看当前所有配置了Web IDE环境资源的项目的环境信息。 新建训练工程、联邦学习工程、训练服务或超参优化服务。 2(模型训练任务) 根据训练状态快速检索训练任务。 仅展示关注的任务。 用户可以单击任务名称左侧的关注指定任务,再次单击取消关注。 根据任务创建时间、任务名称检索训练任务。 默认按任务创建时间检索。 按任务创建时间或者任务名称检索训练任务,检索结果按正序或者倒序排列展示。 默认按倒序排序。 任务名称 模型训练任务的名称 任务描述 模型训练任务的描述信息 任务创建时间 模型训练任务创建的时间 训练用时 模型训练耗时时长 Tensorboard Tensorboard状态 训练状态 显示训练任务当前的状态。 包括如下状态: ALL显示所有训练任务。 WAITING表示训练任务准备中。 RUNNING表示正在训练。 FINISHED表示训练成功 FAILED表示训练失败。 STOPPED表示停止训练任务。 评估报告 单击可查看训练评估报告详情。 资源占用 显示训练算法CPU、GPU和RAM的占用情况。 峰值 显示训练算法CPU、GPU和RAM使用过程中的峰值。 训练状态为RUNNING时,可以执行此按钮停止训练任务。 查看验证任务的详细情况,包括系统日志、运行日志、运行图和Tensorboard。 删除训练任务。 查看优化报告。 打包训练模型。 说明: 仅训练成功的模型支持打包。 父主题: 创建模型训练工程
  • 模型验证 模型验证界面已经预置了模型验证服务,本次不使用,仅供参考。下面会提供端到端的操作流程,帮助用户快速熟悉模型验证界面操作。 单击菜单栏中的“模型验证”,进入模型验证界面。 可以看到预置的模型验证任务“hardisk-detect”。 单击“创建”,弹出如图1所示的对话框。 配置参数“名称”为验证服务名称,示例:Harddisk。 图1 创建验证服务 单击“确定”,进入验证服务详情界面。 单击界面右上角的图标,进入代码编辑界面。 在左侧代码目录树中,单击“validation.py”文件,右侧展示文件内容,先清空文件内容。 打开预置项目“hardisk-detect”中的“validation.py”文件,拷贝文件内容,至当前文件中,并“Ctrl+S”保存文件。 在左侧目录树中,选中根目录节点“Harddisk”,单击目录树上方的图标,在弹出的“新建文件夹”对话框中,输入目录名称“hardisk”。 选中新建目录“hardisk”,单击目录树上方的图标,在弹出的“新建文件”对话框中,输入文件名称“utils.py”。 在左侧目录树中,单击“utils.py”打开文件,拷贝预置项目“hardisk-detect”中同名文件的代码至此文件中,“Ctrl+S”保存文件。 单击界面右上角的“验证”图标,弹出“验证配置”对话框,如图2所示。 参数配置说明,如下所示: 指标配置:指标配置于验证用例中,用于和模型实际训练结果比较,以判断验证用例是否通过。 一个指标需要设置“指标名称”,“指标类型”和“默认值”,如本例中设置“指标名称”为“acc”,“指标类型”为“Float”,“默认值”为“0.9”。完成一个指标设置后单击右侧的“”,可在下方生成该指标。支持设置多个指标。 场景名:验证场景的名字,示例:hardisk_validation。 执行入口:验证任务的主入口文件及方法,请设置为“validation.py”和“model_validation”。 用例:一行配置一个具体的模型包验证用例,需要设置用例名(示例:test)、数据集、数据实例和验证指标值。可单击右侧的图标,设置多条用例。 本例已写入数据集实例,无需再设置。在其他场景中,可根据实际情况设置。 AI引擎:从第一个下拉框中选择AI引擎“TensorFlow”,从第二个下拉框中选择匹配的python语言版本“TF-1.13.1-python3.6”。 计算节点规格:模型验证的资源配置信息。 图2 验证配置 单击“保存”,返回模型验证代码编辑界面。 单击界面右上角的“关闭”图标,返回到验证任务详情界面。 如果需要修改验证配置,可以单击界面右上方的图标,在弹出的对话框中,修改配置参数。 单击界面右上方的图标,在弹出的“创建验证任务”对话框内,设置模型包名称,如图3所示。 图3 创建验证任务 单击“确定”,系统开始执行验证任务。 可单击验证任务右侧的图标,查看系统日志、运行结果日志和运行图。 模型验证结束后,单击验证任务右侧的图标,查看模型验证报告,如图4所示。 图4 模型验证报告 如图4所示,用例执行结果为PASS,表示模型包验证结果达到预期。“acc指标”列的取值“0.98/0.9”分别为实际运行结果和验证服务配置的阈值。 单击界面右上角的“返回”,在验证任务详情界面,单击“展示历史指标”,可查看模型包实际运行值的历史折线图,如图5所示。 图5 模型包历史验证结果 父主题: 使用模型训练服务快速训练算法模型
  • 通过数据集导入数据后,在开发代码中如何获取这些数据? 模型训练服务提供了SDK供开发人员直接获取数据集,具体使用方式如下所示: 导入模型训练服务SDK。 from naie.datasets import data_referencefrom naie.feature_processing import data_flow 使用get_data_reference获取数据集存放路径。 以数据集“air”、数据集实例“air_20190409”为例,此时SDK返回的是数据集所存储文件路径。 data_reference=get_data_reference(dataset="air",dataset_entity="air_20190409") 父主题: 模型训练