文档首页 > > AI工程师用户指南> 算法管理> 创建我的算法

创建我的算法

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

如果您已在本地开发了一个算法,可以将算法上传至ModelArts中管理。您上传的算法,可以使用云上资源训练,得到对应的模型,同时产生的模型不仅可以通过AI市场分享给他人,也可以在ModelArts中部署为服务。算法格式要求请参考本地导入的算法有哪些格式要求

创建算法

  1. 登录ModelArts管理控制台,单击左侧菜单栏的“算法管理”
  2. “我的算法”管理页面,单击“创建”,进入“创建算法”页面。
  3. “创建算法”页面,填写算法相关参数。
    1. 设置基本参数。基本信息包含“计费模式”“名称”“版本”“描述”。其中“计费模式”当前仅支持“按需计费”,不支持修改,目前算法管理为公测功能,免费试用。
      图1 设置算法基本信息
    2. 设置“创建方式”。目前只支持使用自定义脚本创建算法,需根据实际算法代码情况设置“AI引擎”“代码目录”“启动文件”。选择的AI引擎和编写算法代码时选择的框架必须一致。例如编写算法代码使用的是TensorFlow,则在创建算法时也要选择TensorFlow。
      表1 创建方式参数说明

      参数

      说明

      “AI引擎”

      当前,支持使用如下几种类型编写的算法代码:

      • TensorFlow:TF-1.8.0-python3.6、TF-1.8.0-python2.7、TF-1.13.1-python3.6、TF-1.13.1-python2.7、TF-2.1.0-python3.6
      • MXNet:MXNet-1.2.1-python3.6、MXNet-1.2.1-python2.7
      • Caffe:Caffe-1.0.0-python2.7
      • Spark_MLlib:Spark-2.3.2-python2.7、Spark-2.3.2-python3.6
      • Ray:RAY-0.7.4-python3.6
      • XGBoost-Sklearn:XGBoost-0.80-Sklearn-0.18.1-python2.7、XGBoost-0.80-Sklearn-0.18.1-python3.6
      • PyTorch:PyTorch-1.0.0-python2.7、PyTorch-1.0.0-python3.6、PyTorch-1.3.0-python2.7、PyTorch-1.3.0-python3.6、PyTorch-1.4.0-python3.6
      • Ascend-Powered-Engine:MindSpore-1.0-python3.7-aarch64、TF-1.15-python3.7-aarch64

      “代码目录”

      算法代码存储的OBS路径,请提前将代码文件上传至OBS中。代码目录下不能存在他人上传的文件和目录,也不能存在无关的文件和目录,否则可能导致失败。

      “启动文件”

      必须为“代码目录”下的文件,且以“.py”“.pyc”结尾。即ModelArts目前只支持使用Python语言编写的启动文件。

      图2 使用自定义脚本创建算法
    3. 设置“输入路径映射”“输出路径映射”。这两个参数都是可选参数,您可以根据实际情况选择是否设置,参数的解释请参见表2

      两个参数的设置方法如下所示:

      “输入路径映射”:默认展示“data_url”参数,可以在“映射路径”下写入容器本地路径。仅支持填写一个目录名称,不支持多层级的目录,即不支持输入“/”字符。此处只能填写字母、数字、中划线或下划线。可以单击“添加输入路径映射”增加参数,也可以单击右侧删除图标,删除某一个配置参数。

      “输出路径映射”:默认展示“train_url”参数,可以在“映射路径”下写入容器本地路径。仅支持填写一个目录名称,不支持多层级的目录,即不支持输入“/”字符。此处只能填写字母、数字、中划线或下划线。可以单击“添加输入路径映射”增加参数,也可以单击右侧删除图标,删除某一个配置参数。

      表2 路径映射的参数说明

      参数

      专业解释

      简单解释

      “输入路径映射”

      为您的算法创建输入路径映射。映射路径是计算容器本地的路径,当使用该算法创建训练时,每条输入路径映射配置,都会引导用户申明一个对应的云存储位置。在训练启动时,系统将为您把申明的云存储位置上的数据,传输到对应的映射路径(容器本地路径)。该容器本地路径,则会在启动命令中,以key=value命令行参数的形式,传入你的算法脚本或镜像。您仅需解析该入参,并访问容器本地路径上的数据即可。

      简单点讲, 您配置输入映射路径是容器本地路径,作用是在启动训练时,将OBS的数据拷贝到这个本地路径中供本地代码使用。

      “输出路径映射”

      为您的算法创建输出路径映射。映射路径是计算容器本地的路径,当使用该算法创建训练时,每条输出路径映射配置,都会引导用户申明一个对应的云存储位置。在训练正常结束时,系统将为您把对应的映射路径(容器本地路径)上的数据,传输到选择的云存储的位置上。 该容器本地路径,则会在启动命令中,以key=value命令行参数的形式,传入你的算法脚本或镜像。您仅需解析该入参,并保存输出数据到容器本地路径即可。

      简单点讲,您配置输出映射路径是容器本地路径,作用是在训练结束时,将本地路径中的训练产生数据拷贝到OBS。

      图3 设置“输入路径映射”“输出路径映射”
    4. 查看“启动命令”
      启动命令是自动生成的,无需自己输入。
      图4 设置启动命令
    5. 参数填写完成后,单击右下角的“下一步”,进入“超参规范”页面。
    6. “超参规范”页面中,您可以根据实际情况定义此算法的超级参数。超级参数的设置是可选的,可以不填写执行下一步操作。
      • “导入参数”:如果您使用自定义python脚本创建算法,并在启动文件中使用argparse或 tf.app.flags定义了传参解析,打开“导入参数”“参数来源”填入超级参数文件路径,即可实现超级参数预填。
      • “显示示例”:单击“显示示例”,即可查看超级参数填写示例。参数类型为string的超级参数默认值不支持空字符。
      • “增加超级参数”:单击列表下方的“增加超级参数”,即可增加多个超级参数。参考“显示示例”中的超级参数示例,填写新增参数的具体设置。
      • “是否支持自定义超级参数”:勾选“是”“否”

        您可以单击删除、修改、清空等按钮,对已填写超级参数进行修改。

      图5 定义超级参数
    7. 参数填写完成后,单击右下角的“下一步”,进入“使用约束”页面。
    8. “使用约束”页面中,您可以根据实际情况定义此算法的输入约束和训练约束。
      1. 输入约束
        • 数据来源限制:可选“数据存储位置”“ModelArts数据集”,支持多选。
        • 标注类型:当您的数据来源限制包括“ModelArts数据集”时,根据算法的实际情况在下拉框选取您所需要的标注类型。
        • 数据格式:当您的数据来源限制包括“ModelArts数据集”时,需选择相应的数据格式。可选“Default”“CarbonData”,支持多选。其中“Default”代表Manifest格式。
        • 数据切分:当您的数据来源限制包括“ModelArts数据集”时,需选择数据切分方式。可选“仅支持切分的数据集”“仅支持未切分数据集”“无限制”
          图6 算法输入约束
      2. 训练约束
        • 资源类型:可选“CPU”“GPU”“Ascend”,支持多选。
        • 多卡训练:可选“支持”“不支持”
        • 分布式训练:可选“支持”“不支持”
        • 推荐训练规格:选择此算法推荐使用的资源规格。即用户需要使用您的算法训练模型时,推荐其选择的资源规格。在下拉框中,您可以选择目前ModelArts支持的所有用于训练的资源规格选项。
          图7 算法训练约束
    9. 单击“提交”,完成算法的创建。您可以根据页面提示,返回“算法管理”页面。
  4. “算法管理”页面,等待算法就绪,当新创建的算法状态变更为“就绪”时,即可执行其他操作。
    图8 算法就绪

后续操作

针对您创建的算法,可以使用算法快速创建训练作业,构建模型,详细操作请参见使用算法创建训练作业

分享:

    相关文档

    相关产品

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

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

*必选

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

字符长度不能超过200

提交反馈 取消

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

智能客服提问云社区提问