全部文档
AI开发平台ModelArtsAI开发平台ModelArts
- 最新动态
- 功能总览
- 产品介绍
- 准备工作
- 快速入门
- 自动学习
- 开发工具
- 数据准备与分析
- 数据处理
- 数据标注
- 模型开发
- 模型封装
- 推理部署
- AI Gallery
- 最佳实践
-
AI工程师用户指南
- AI工程师如何使用ModelArts
- 免费体验ModelArts
- 数据管理(New)
- 数据管理(旧版即将下线)
- 开发环境(New)
- 开发环境(旧版即将下线)
- 训练管理(New)
- 训练管理(旧版即将下线)
- AI应用管理(即将下线)
- 部署服务(即将下线)
- 资源池
- 使用自定义镜像
- 模型包规范(即将下线)
- 模型模板(即将下线)
- 自定义脚本代码示例
- 权限管理
- 监控
- 审计日志
- 建议反馈
- 将MLS业务迁移至ModelArts
- 修订记录
- 工具指南
- MoXing开发指南
- SDK参考
- API参考
-
常见问题
-
一般性问题
- 什么是ModelArts
- ModelArts与其他服务的关系
- ModelArts与DLS服务的区别?
- ModelArts与MLS服务的区别?
- 如何购买或开通ModelArts?
- 支持哪些型号的Ascend芯片?
- 如何获取访问密钥?
- 如何上传数据至OBS?
- 提示“上传的AK/SK不可用”,如何解决?
- 使用ModelArts时提示“权限不足”,如何解决?
- 如何用ModelArts训练基于结构化数据的模型?
- 什么是区域、可用区?
- 如何查看ModelArts与OBS桶是否在同一区域?
- 在ModelArts中如何查看OBS目录下的所有文件?
- ModelArts数据集保存到容器的哪里?
- ModelArts支持哪些AI框架?
- ModelArts训练和推理分别对应哪些功能?
- MindSpore相关问题如何解决?
- 如何查看帐号ID和IAM用户ID
- ModelArts AI识别可以单独针对一个标签识别吗?
- 计费相关
- 自动学习
- 数据管理
- Notebook
- 训练作业
- 模型管理
- 部署上线
- 资源池
- AI Gallery
- API/SDK
- 修订记录
-
一般性问题
-
故障排除
- 自动学习
- 开发环境
-
训练作业
-
OBS操作相关故障
- 读取文件报错,如何正确读取文件?
- TensorFlow-1.8作业连接OBS时反复出现提示错误
- TensorFlow在OBS写入TensorBoard到达5GB时停止
- 保存模型时出现Unable to connect to endpoint错误
- 训练作业日志中提示“No such file or directory”,如何解决?
- OBS拷贝过程中提示“BrokenPipeError: Broken pipe”
- 日志提示“ValueError: Invalid endpoint: obs.xxxx.com”
- 日志提示“errorMessage:The specified bucket does not exist”
-
云上迁移适配故障
- 无法导入模块
- 训练作业日志中提示“No module named .*”
- 如何安装第三方包,安装报错的处理方法
- 下载代码目录失败
- 训练作业日志中提示“No such file or directory”
- 训练过程中无法找到so文件
- 无法解析参数,日志报错
- 训练输出路径被其他作业使用
- 使用自定义镜像创建训练作业,找不到启动文件
- Pytorch1.0引擎提示“RuntimeError: std::exception”
- MindSpore日志提示“ retCode=0x91, [the model stream execute failed]”
- 使用moxing适配OBS路径,pandas读取文件报错
- 日志提示“Please upgrade numpy to >= xxx to use this pandas version”
- 重装的包与镜像装CUDA版本不匹配
- 创建训练作业提示错误码ModelArts.2763
- 内存限制故障
- 外网访问限制
- 权限问题
- GPU相关问题
-
业务代码问题
- 日志提示“pandas.errors.ParserError: Error tokenizing data. C error: Expected .* fields”
- 日志提示“max_pool2d_with_indices_out_cuda_frame failed with error code 0”
- 训练作业失败,返回错误码139
- 训练作业失败,如何使用云上环境调试训练代码?
- 日志提示“ '(slice(0, 13184, None), slice(None, None, None))' is an invalid key”
- 日志报错“DataFrame.dtypes for data must be int, float or bool”
- 日志提示“CUDNN_STATUS_NOT_SUPPORTED. ”
- 日志提示“Out of bounds nanosecond timestamp”
- 日志提示“Unexpected keyword argument passed to optimizer”
- 日志提示“no socket interface found”
- 分布式Tensorflow无法使用“tf.variable”
- MXNet创建kvstore时程序被阻塞,无报错
- 日志出现ECC错误,导致训练作业失败
- 超过最大递归深度导致训练作业失败
- 使用预置算法训练时,训练失败,报“bndbox”错误
- 训练作业状态显示“审核作业初始化”
- 训练作业进程异常退出
- 训练作业进程被kill
-
OBS操作相关故障
- 模型管理
- MoXing
- 修订记录
- 视频帮助
- 文档下载
链接复制成功!
使用常用框架训练模型
如果您在本地使用一些常用框架完成算法开发,如TensorFlow、MindSpore等AI引擎,您可以选择常用框架,创建训练作业来构建模型。
前提条件
- 数据已完成准备:已在ModelArts中创建可用的数据集,或者您已将用于训练的数据集上传至OBS目录。
- 如果“算法来源”为“常用框架”,请准备好训练脚本,并上传至OBS目录。
- 已在OBS创建至少1个空的文件夹,用于存储训练输出的内容。
- 由于训练作业运行需消耗资源,确保帐户未欠费。
- 确保您使用的OBS目录与ModelArts在同一区域。
注意事项
- 训练作业指定的数据集目录中,用于训练的数据名称(如图片名称、音频文件名、标注文件名称等),名称长度限制为0~255英文字符。如果数据集目录下,部分数据的文件名称超过255英文字符,训练作业将不会使用此数据,使用符合要求的数据继续进行训练。如果数据集目录下,所有数据的文件名称都超过了255英文字符,导致训练作业无数据可用,则会最终导致训练作业失败。
- 训练脚本中,“数据来源”、“训练输出位置”,两个参数必须为OBS路径。当需要对OBS进行读写交互时,建议使用MoXing接口进行读写操作。
训练管理支持的AI常用框架
当前ModelArts支持的AI引擎及对应版本如下所示。
工作环境 |
适配芯片 |
系统架构 |
系统版本 |
AI引擎与版本 |
支持的cuda或Ascend版本 |
|---|---|---|---|---|---|
TensorFlow |
CPU/GPU |
x86_64 |
Ubuntu16.04 |
TF-1.8.0-python3.6 |
cuda9.0 |
TF-1.13.1-python3.6 |
cuda10.0 |
||||
TF-2.1.0-python3.6 |
cuda10.1 |
||||
MXNet |
CPU/GPU |
x86_64 |
Ubuntu16.04 |
MXNet-1.2.1-python3.6 |
cuda9.0 |
Spark_MLlib |
CPU |
x86_64 |
Ubuntu16.04 |
Spark-2.3.2-python2.7 |
- |
Spark-2.3.2-python3.6 |
- |
||||
Ray |
CPU/GPU |
x86_64 |
Ubuntu16.04 |
RAY-0.7.4-python3.6 |
cuda10.0 |
XGBoost-Sklearn |
CPU |
x86_64 |
Ubuntu16.04 |
XGBoost-0.80-Sklearn-0.18.1-python2.7 |
- |
PyTorch |
CPU/GPU |
x86_64 |
Ubuntu16.04 |
PyTorch-1.0.0-python3.6 |
cuda9.0 |
PyTorch-1.3.0-python3.6 |
cuda10.0 |
||||
PyTorch-1.4.0-python3.6 |
cuda10.1 |
||||
Ascend-Powered-Engine |
Ascend910 |
aarch64 |
Euler2.8 |
MindSpore-1.3-can5.0.2-python3.7-euleros2.8-aarch64 |
can5.0.2 |
TF-1.15-can5.0.2-python3.7-euleros2.8-aarch64 |
can5.0.2 |
||||
MindSpore-GPU |
CPU/GPU |
x86_64 |
Ubuntu18.04 |
MindSpore-1.1.0-python3.7 MindSpore-1.2.0-python3.7 |
cuda10.1 |
Caffe |
CPU/GPU |
x86_64 |
Ubuntu16.04 |
Caffe-1.0.0-python2.7 |
cuda8.0 |
- MoXing是ModelArts团队自研的分布式训练加速框架,它构建于开源的深度学习引擎TensorFlow、MXNet、PyTorch、Keras之上,详细说明请参见MoXing使用说明。如果您使用的是MoXing框架编写训练脚本,在创建训练作业时,请根据您选用的接口选择其对应的AI引擎和版本。
- Ascend-Powered-Engine仅在“华北-北京四”区域支持。
- 如果您的训练脚本支持的版本与训练支持的AI引擎提供的版本存在差异,会出现训练失败的情况
创建训练作业
- 登录ModelArts管理控制台,在左侧导航栏中选择“训练管理 > 训练作业”,默认进入“训练作业”列表。
- 在训练作业列表中,单击左上角“创建”,进入“创建训练作业”页面。
- 在创建训练作业页面,填写训练作业相关参数,然后单击“下一步”。
- 填写基本信息。您可以根据实际情况填写“名称”和“描述”信息。“版本”信息由系统自动生成,按“V0001”、“V0002”规则命名,用户无法修改。
- 填写作业参数。包含数据来源、算法来源等关键信息,详情请参见表2。图1 算法来源为常用框架

表2 作业参数说明 参数名称
子参数
说明
一键式参数配置
-
如果您在ModelArts已保存作业参数,您可以根据界面提示,选择已有的作业参数,快速完成训练作业的参数配置。
算法来源
常用框架
选择“AI引擎”和“版本”,选择“代码目录”及“启动文件”。选择的AI引擎和编写训练代码时选择的框架必须一致。例如编写训练代码使用的是TensorFlow,则在创建训练作业时也要选择TensorFlow。
目前支持的AI引擎及其版本请参见训练管理支持的AI常用框架。
如果您的模型需要安装Python依赖包时,请按照ModelArts定义的要求将依赖包及其配置文件放置“代码目录”中,详细说明请参见模型中引用依赖包时,如何创建训练作业?
数据来源
数据集
从ModelArts数据管理中选择可用的数据集及其版本。
- “选择数据集”:从右侧下拉框中选择ModelArts系统中已有的数据集。当ModelArts无可用数据集时,此下拉框为空。
- “选择版本”:根据“选择数据集”指定的数据集选择其版本。
一个训练作业,支持选择多个数据集,单击
增加一个数据集,单击
删除当前行指定的数据集。数据存储位置
从OBS桶中选择训练数据。在“数据存储位置”右侧,单击“选择”,从弹出的对话框中,选择数据存储的OBS桶及其文件夹。
当“算法来源”选择“常用框架”时,一个训练作业,支持选择多个数据存储路径,单击
增加一个数据存储路径,单击
删除当前行指定的数据存储路径。训练输出位置
-
选择训练结果的存储位置。
说明:为避免出现错误,建议选择一个空目录用作“训练输出位置”。请勿将数据集存储的目录作为训练输出位置。
运行参数
-
代码中的命令行参数设置值,请根据您编写的算法代码逻辑进行填写,确保参数名称和代码的参数名称保持一致。
例如:train_steps=10000,其中“train_steps”为代码中的某个传参。
作业日志路径
-
选择作业运行中产生的日志文件存储路径。
- 选择用于训练作业的资源。图2 选择训练作业资源

表3 资源参数说明 参数名称
说明
资源池
选择训练作业资源池。
训练作业支持选择“公共资源池”和“专属资源池”。公共资源池又可以选择CPU或GPU两种类型,不同类型的资源池,其收费标准不同,详情请参见价格详情说明。专属资源池的创建请参见资源池。
类型
当选择公共资源池时,需选择资源类型。目前支持CPU和GPU两种类型。
GPU资源性能更佳,CPU资源性价比更高。如果您选择的算法已定义使用CPU或GPU,界面将自动呈现此资源类型,请务必根据要求选择。
不同的资源类型的数据盘容量是不同的,详细介绍参考训练环境中不同规格资源“/cache”目录的大小。
说明:如果您在训练代码使用的是GPU资源,则在选择资源池时只能选择GPU集群,否则会导致训练作业失败。
规格
针对不同的资源类型,选择资源规格。
其中针对“已有算法”、“常用框架”或“自定义镜像”,ModelArts支持使用Ascend 910创建训练作业,且此资源仅在“华北-北京四”可用。
前缀带“[限时免费] ”信息的为免费规格,您可以使用此规格免费体验ModelArts的训练作业功能。此规格的使用注意事项,请参见免费体验AI全流程开发。
计算节点个数
选择计算节点的个数。如果节点个数设置为1,表示后台的计算模式是单机模式;如果节点个数设置大于1,表示后台的计算模式为分布式的。请根据实际编码情况选择计算模式。
当“常用框架”选择Caffe时,只支持单机模式,即“计算节点个数”必须设置为“1”。针对其他“常用框架”,您可以根据业务情况选择单机模式或分布式模式。
- 配置订阅消息,并设置是否将当前训练作业中的参数保存为作业参数。图3 配置训练作业订阅消息

表4 订阅消息及作业参数的参数说明 参数名称
说明
订阅消息
订阅消息使用消息通知服务,在事件列表中选择需要监控的资源池状态,在事件发生时发送消息通知。
此参数为可选参数,您可以根据实际情况设置是否打开开关。如果开启订阅消息,请根据实际情况填写如下参数。
- “主题名”:订阅消息主题名称。您可以单击创建主题,在消息通知服务中创建主题。
- “事件列表”:订阅事件。当前可选择“OnJobRunning”、“OnJobSucceeded”、“OnJobFailed”三种事件,分别代表训练运行中、运行成功、运行失败。
保存作业参数
勾选此参数,表示将当前训练作业设置的作业参数保存,方便后续一键复制使用。
勾选“保存训练参数”,然后填写“作业参数名称”和“作业参数描述”,即可完成当前参数配置的保存。训练作业创建成功后,您可以从ModelArts的作业参数列表中查看保存的信息,详细操作指导请参见管理作业参数。
- 完成参数填写后,单击“下一步”。
- 在“规格确认”页面,确认填写信息无误后,单击“提交”,完成训练作业的创建。训练作业一般需要运行一段时间,根据您选择的数据量和资源不同,训练时间将耗时几分钟到几十分钟不等。
训练作业创建完成后,将立即启动,运行过程中将按照您选择的资源按需计费。
您可以前往训练作业列表,查看训练作业的基本情况。在训练作业列表中,刚创建的训练作业“状态”为“初始化”,当训练作业的“状态”变为“运行成功”时,表示训练作业运行结束,其生成的模型将存储至对应的“训练输出位置”中。当训练作业的“状态”变为“运行失败”时,您可以单击训练作业的名称,进入详情页面,通过查看日志等手段处理问题。