云服务器内容精选

  • 定义超参 使用预置框架创建算法时,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”。 描述 输出参数的说明,用户可以自定义描述。 获取方式 输出参数的获取方式,默认使用“超参”,也可以选择“环境变量”。 添加 用户可以根据实际算法添加多个输出数据路径。
  • 使用预置框架 + 自定义镜像 此功能与直接基于预置框架创建训练作业的区别仅在于,镜像是由用户自行选择的。用户可以基于预置框架制作自定义镜像。基于预置框架制作自定义镜像可参考使用基础镜像构建新的训练镜像章节。 图1 使用预置框架+自定义镜像创建算法 该功能的行为与直接基于预置框架创建的训练作业相同,例如: 系统将会自动注入一系列环境变量 PATH=${MA_HOME}/anaconda/bin:${PATH} LD_LIBRARY_PATH=${MA_HOME}/anaconda/lib:${LD_LIBRARY_PATH} PYTHONPATH=${MA_JOB_DIR}:${PYTHONPATH} 您选择的启动文件将会被系统自动以python命令直接启动,因此请确保镜像中的Python命令为您预期的Python环境。注意到系统自动注入的PATH环境变量,您可以参考下述命令确认训练作业最终使用的Python版本: export MA_HOME=/home/ma-user; docker run --rm {image} ${MA_HOME}/anaconda/bin/python -V docker run --rm {image} $(which python) -V 系统将会自动添加预置框架关联的超参
  • 完全使用自定义镜像 图2 完全使用自定义镜像创建算法 训练支持的自定义镜像使用说明请参考使用自定义镜像创建训练作业。 完全使用自定义镜像场景下,指定的“conda env”启动训练方法如下: 由于训练作业运行时不是shell环境,因此无法直接使用“conda activate”命令激活指定的 “conda env”,需要使用其他方式以达成使用指定“conda env”来启动训练的效果。 假设您的自定义镜像中的“conda”安装于“/home/ma-user/anaconda3”目录“conda env”为“python-3.7.10”,训练脚本位于“/home/ma-user/modelarts/user-job-dir/code/train.py”。可通过以下方式使用指定的“conda env”启动训练: 方式一:为镜像设置正确的“DEFAULT_CONDA_ENV_NAME”环境变量与“ANACONDA_DIR”环境变量。 ANACONDA_DIR=/home/ma-user/anaconda3 DEFAULT_CONDA_ENV_NAME=python-3.7.10 您可以使用Python命令启动训练脚本。启动命令示例如下: python /home/ma-user/modelarts/user-job-dir/code/train.py 方式二:使用“conda env python”的绝对路径。 您可以使用“/home/ma-user/anaconda3/envs/python-3.7.10/bin/python”命令启动训练脚本。启动命令示例如下: /home/ma-user/anaconda3/envs/python-3.7.10/bin/python /home/ma-user/modelarts/user-job-dir/code/train.py 方式三:设置PATH环境变量。 您可以将指定的“conda env bin”目录配置到PATH环境变量中。您可以使用Python命令启动训练脚本。启动命令示例如下: export PATH=/home/ma-user/anaconda3/envs/python-3.7.10/bin:$PATH; python /home/ma-user/modelarts/user-job-dir/code/train.py 方式四:使用“conda run -n”命令。 您可以使用“/home/ma-user/anaconda3/bin/conda run -n python-3.7.10”命令来执行训练命令,启动命令示例如下: /home/ma-user/anaconda3/bin/conda run -n python-3.7.10 python /home/ma-user/modelarts/user-job-dir/code/train.py 如果在训练时发生找不到“$ANACONDA_DIR/envs/$DEFAULT_CONDA_ENV_NAME/lib ”目录下“.so”文件的相关报错,可以尝试将该目录加入到“LD_LIBRARY_PATH”,将以下命令放在上述启动方式命令前: export LD_LIBRARY_PATH=$ANACONDA_DIR/envs/$DEFAULT_CONDA_ENV_NAME/lib:$LD_LIBRARY_PATH; 例如,方式一的启动命令示例此时变为: export LD_LIBRARY_PATH=$ANACONDA_DIR/envs/$DEFAULT_CONDA_ENV_NAME/lib:$LD_LIBRARY_PATH; python /home/ma-user/modelarts/user-job-dir/code/train.py