华为云用户手册

  • 样例 inputs = { "dataframe": None # @input {"label":"dataframe","type":"DataFrame"}}params = { "inputs": inputs, "b_output_action": True, "outer_pipeline_stages": None, "input_features_str": "", # @param {"label":"input_features_str","type":"string","required":"false","helpTip":""} "label_col": "", # @param {"label":"label_col","type":"string","required":"true","helpTip":""} "regressor_feature_vector_col": "model_features", # @param {"label":"regressor_feature_vector_col","type":"string","required":"false","helpTip":""} "prediction_col": "prediction", # @param {"label":"prediction_col","type":"string","required":"false","helpTip":""} "objective": "regression", # @param {"label":"objective","type":"string","required":"false","helpTip":""} "max_depth": -1, # @param {"label":"max_depth","type":"integer","required":"false","range":"[-1,2147483647]","helpTip":""} "num_iteration": 100, # @param {"label":"num_iteration","type":"integer","required":"false","range":"(0,2147483647]","helpTip":""} "learning_rate": 0.1, # @param {"label":"learning_rate","type":"number","required":"false","helpTip":""} "num_leaves": 31, # @param {"label":"num_leaves","type":"integer","required":"false","range":"(0,2147483647]","helpTip":""} "max_bin": 255, # @param {"label":"max_bin","type":"integer","required":"false","range":"(0,2147483647]","helpTip":""} "bagging_fraction": 1.0, # @param {"label":"bagging_fraction","type":"number","required":"false","helpTip":""} "bagging_freq": 0, # @param {"label":"bagging_freq","type":"integer","required":"false","range":"[0,2147483647]","helpTip":""} "bagging_seed": 3, # @param {"label":"bagging_seed","type":"integer","required":"false","range":"[0,2147483647]","helpTip":""} "early_stopping_round": 0, # @param {"label":"early_stopping_round","type":"integer","required":"false","range":"[0,2147483647]","helpTip":""} "feature_fraction": 1.0, # @param {"label":"feature_fraction","type":"number","required":"false","helpTip":""} "min_sum_hessian_in_leaf": 1e-3, # @param {"label":"min_sum_hessian_in_leaf","type":"number","required":"false","helpTip":""} "boost_from_average": True, # @param {"label":"boost_from_average","type":"boolean","required":"false","helpTip":""} "boosting_type": "gbdt", # @param {"label":"boosting_type","type":"string","required":"false","helpTip":""} "lambda_l1": 0.0, # @param {"label":"lambda_l1","type":"number","required":"false","helpTip":""} "lambda_l2": 0.0, # @param {"label":"lambda_l2","type":"number","required":"false","helpTip":""} "num_batches": 0, # @param {"label":"num_batches","type":"integer","required":"false","range":"[0,2147483647]","helpTip":""} "parallelism": "data_parallel" # @param {"label":"parallelism","type":"string","required":"false","helpTip":""}}lightgbm_regressor____id___ = MLSLightGbmRegression(**params)lightgbm_regressor____id___.run()# @output {"label":"pipeline_model","name":"lightgbm_regressor____id___.get_outputs()['output_port_1']","type":"PipelineModel"}
  • 样例 inputs = { "dataframe": None # @input {"label":"dataframe","type":"DataFrame"}}params = { "inputs": inputs, "b_output_action": True, "b_use_default_encoder": True, # @param {"label": "b_use_default_encoder", "type": "boolean", "required": "true", "helpTip": ""} "input_features_str": "", # @param {"label": "input_features_str", "type": "string", "required": "false", "helpTip": ""} "outer_pipeline_stages": None, "label_col": "", # @param {"label": "label_col", "type": "string", "required": "true", "helpTip": "target label column"} "regressor_feature_vector_col": "model_features", # @param {"label": "regressor_feature_vector_col", "type": "string", "required": "true", "helpTip": ""} "max_iter": 100, # @param {"label": "max_iter", "type": "integer", "required": "true", "range": "(0,2147483647]", "helpTip": ""} "reg_param": 0.0, # @param {"label": "reg_param", "type": "number", "required": "true", "range": "[0.0,none)", "helpTip": ""} "elastic_net_param": 0.0, # @param {"label": "elastic_net_param", "type": "number", "required": "true", "range": "[0.0,none)", "helpTip": ""} "tol": 1e-6, # @param {"label": "tol"", "type": "number", "required": "true", "range": "[0.0,none)", "helpTip": ""} "fit_intercept": True, # @param {"label": "fit_intercept"", "type": "boolean", "required": "true", "helpTip": ""} "standardization": True, # @param {"label": "standardization"", "type": "boolean", "required": "true", "helpTip": ""} "solver": "auto", # @param {"label": "solver", "type": "enum", "required": "true", "options": "l-bfgs,normal,auto", "helpTip": ""} "aggregation_depth": 2, # @param {"label": "aggregation_depth", "type": "integer", "required": "true", "range": "(0,2147483647]", "helpTip": ""} "loss": "squaredError", # @param {"label": "loss", "type": "enum", "required": "true", "options": "squaredError,huber", "helpTip": ""} "epsilon": 1.35 # @param {"label": "epsilon", "type": "number", "required": "true", "range": "(1.0,none)", "helpTip": ""}}linear_regression____id___ = MLSLinearRegression(**params)linear_regression____id___.run()# @output {"label":"pipeline_model","name":"linear_regression____id___.get_outputs()['output_port_1']","type":"PipelineModel"}
  • 参数说明 参数 子参数 参数说明 b_use_default_encoder - 是否使用默认编码,默认为True input_features_str - 输入的列名以逗号分隔组成的字符串,例如: "column_a" "column_a,column_b" label_col - 目标列 regressor_feature_vector_col - 算子输入的特征向量列的列名,默认为"model_features" max_iter - 最大迭代次数,默认为100 reg_param - 正则化参数,默认为0.0 elastic_net_param - 弹性网络参数,默认为0.0 tol - 收敛阈值,默认为1e-6 fit_intercept - 是否使用截距,默认为True standardization - 是否对特征进行正则化,默认为True solver - 优化时采用的处理算法,支持l-bfgs、normal、auto,默认为"auto" aggregation_depth - 聚合深度,默认为2 loss - 损失函数类型,支持squaredError、huber,默认为"squaredError" epsilon - 默认为1.35
  • 参数说明 参数 子参数说明 参数说明 b_use_default_encoder - 是否使用默认编码,默认为True input_features_str - 输入的列名以逗号分隔组成的字符串,例如: "column_a" "column_a,column_b" label_col - 目标列 regressor_feature_vector_col - 算子输入的特征向量列的列名,默认为"model_features" max_depth - 树的最大深度,默认为5 max_bins - 最大分箱数,默认为32 min_instances_per_node - 节点分割时,要求子节点必须包含的最少实例数,默认为1 min_info_gain - 节点是否分割要求的最小信息增益,默认为0.0 subsampling_rate - 学习每棵决策树用到的训练集的抽样比例,默认为1.0 num_trees - 树的个数,默认为20 feature_subset_strategy - 节点分割时考虑用到的特征列的策略,支持auto、all、onethird、sqrt、log2、n,默认为"all"
  • 样例 inputs = { "dataframe": None # @input {"label":"dataframe","type":"DataFrame"}}params = { "inputs": inputs, "b_output_action": True, "b_use_default_encoder": True, # @param {"label": "b_use_default_encoder", "type": "boolean", "required": "true", "helpTip": ""} "input_features_str": "", # @param {"label": "input_features_str", "type": "string", "required": "false", "helpTip": ""} "outer_pipeline_stages": None, "label_col": "", # @param {"label": "label_col", "type": "string", "required": "true", "helpTip": ""} "regressor_feature_vector_col": "model_features", # @param {"label": "regressor_feature_vector_col", "type": "string", "required": "true", "helpTip": ""} "max_depth": 5, # @param {"label": "max_depth", "type": "integer", "required": "true", "range": "(0,2147483647]", "helpTip": ""} "max_bins": 32, # @param {"label": "max_bins", "type": "integer", "required": "true", "range": "(0,2147483647]", "helpTip": ""} "min_instances_per_node": 1, # @param {"label": "min_instances_per_node", "type": "integer", "required": "true", "range": "(0,2147483647]", "helpTip": ""} "min_info_gain": 0.0, # @param {"label": "min_info_gain", "type": "number", "required": "true", "range": "[0.0,none)", "helpTip": ""} "impurity": "variance", "subsampling_rate": 1.0, # @param {"label": "subsampling_rate", "type": "number", "required": "true", "range": "(0.0,1.0]", "helpTip": ""} "num_trees": 20, # @param {"label": "num_trees", "type": "integer", "required": "true", "range": "(0,2147483647]", "helpTip": ""} "feature_subset_strategy": "all" # @param {"label": "feature_subset_strategy", "type": "enum", "required": "true", "options":"auto,all,onethird,sqrt,log2", "helpTip": ""}}rf_regressor____id___ = MLSRandomForestRegression(**params)rf_regressor____id___.run()# @output {"label":"pipeline_model","name":"rf_regressor____id___.get_outputs()['output_port_1']","type":"PipelineModel"}
  • 概述 “词频-逆文档频率”节点主要功能是计算某个词对于所属文档的重要程度。词频-逆文档频率(Term Frequency-Inverse Document Frequency, TF-IDF)算法规定某个词语的重要性与它在一个文档中出现的次数成正比,与该词语在语料库的所有文档中出现的频率成反比。给定语料库D,则文档中的词语的定义如下: 式中,指词语在文档出现频率的归一化结果,表示该词在文档dj中的出现次数,表示文件中所有词语的出现次数之和;表示词语的逆向文件频率(Inverse Document Frequency),|D|表示语料库的文件总数,表示包含词语的文件数目。
  • 参数说明 参数 子参数 参数说明 text_col - 文本列所在的列名,默认为"text_col" tokenizer_col - 对数据集文本列分词之后的结果列名,默认为"tokenizer_col" tf_col - 对数据集应用HashingTF之后的结果列名,默认为"tf_col" idf_col - 对数据集应用IDF之后的结果列名,默认为"idf_col" tf_binary - 默认为False tf_num_features - HashingTF中的特征个数 idf_min_doc_freq - 最小文档频率,默认为0
  • 算法开发套件简介 ModelArts算法开发套件提供了一个全流程和白盒化的云原生算法开发工具,支持通过本地VSCode/PyCharm远程连接到云上开发环境后使用。Notebook作为算法工程开发入口,便于用户无感调用云上计算存储资源进行开发,同时提供丰富的、可扩展的算法套件便于用户使用或二次开发。 算法开发套件支持的主要特性: - 工程管理:用户可通过ma-cli createproject创建工程。 - 资产管理:用户可通过python manage.py list列举或python manage.py install来安装、升级、覆盖已发布的算法包、模型包、数据集。 - 数据拷贝:用户可通过python manage.py copy命令来实现OBS和本地数据的快速传输。 - 本地训练、验证、推理:用户可通过python manage.py run命令。 - 本地部署:用户可通过python manage.py deploy命令。 - ModelArts训练、模型转换:用户可通过python manage.py run --launch_remote命令提交远程训练作业。 - ModelArts部署:用户可通过python manage.py deploy --launch_remote命令提交远程部署任务。 - 模块化设计:用户可基于算法框架规范构建自定义的算法资产并发布到ModelArts。 算法开发套件还支持用户在Notebook中用python API进行交互式、参数化、低代码的开发方式快速完成算法验证与实践,使用指导请参考通过Python API使用算法套件。 父主题: 算法开发套件
  • 运行算链 算链运行分为三种模式:运行算链、运行到此处、运行当前算子。 由于一个MLS Editor对应一个Kernel(进程),所有运行模式皆可获取前续阶段运行后的所有变量。 表1 算链运行模式 运行模式 操作 说明 运行算链 点击算链编排界面导航栏运行按钮。 运行整个算链,如图1所示。对应Notebook的Run All功能。 运行至此算子 右击算链编排界面算子,选择运行至此算子。 运行选中算子的前面分支(包含该算子),如图2所示。对应Notebook的Run Above功能。 运行当前算子 右击算链编排界面算子,选择运行当前算子。 运行选中算子,可使用前续阶段运行后的所有变量,如图3所示。对应Notebook的Run Selected Cell功能。 图1 运行算链 图2 运行至模型应用算子 图3 运行回归评估算子 父主题: 算链操作
  • 算子菜单 鼠标右键单击算子结点出现算子菜单,包含编辑、删除、高亮显示、设置参数、编辑代码、运行至此算子、运行当前算子、展示运行结果功能,如图3所示。算子菜单说明如表4所示。 图3 算子菜单 表4 算子菜单说明 菜单名称 操作说明 编辑 可对选中算子进行剪切、复制操作;选择粘贴,对之前复制的算子进行粘贴操作。 删除 对选中算子进行删除操作。 高亮显示 选择分支亮显,对选中算子所在算链分支高亮。 选择上行亮显,对选中算子前(包含该算子)的分支高亮。 选择下行亮显,对选中算子后(包含该算子)的分支高亮。 选择取消高亮,使其恢复正常状态。 设置参数 单击“设置参数”,算链界面右侧滑出参数编辑框。 修改参数后,单击“确定”,保存参数设置;单击“取消”则不保存。 编辑代码 单击“编辑代码”,算链界面右侧滑出编辑代码框,如图4所示。 上方为自定义编辑算子框,可编辑代码; 单击“执行代码”,结果将展现在代码执行结果框; 单击“保存”,则将修改后的代码保存并退出边界代码界面; 单击“取消”,则不保存且退出; 右上角为控制选择项,选中“代码”即展示代码;选中“结果”即显示结果;单击“全屏”,编辑界面将铺满算链编辑界面;单击“退出全屏”则取消全屏。 运行至此算子 算链运行至该算子。 运行当前算子 算链运行当前选中算子。 展示运行结果 展示当前选中算子的运行结果,若该算子为未运行状态,则运行至当前算子后,展示结果。 图4 编辑算子代码
  • 界面菜单 在算链编辑区右键界面空白处,出现界面菜单,包含添加评论、全选、编辑、撤销、恢复、取消高亮功能。 图2 界面菜单 表2 界面菜单说明 操作名称 功能说明 添加评论 同导航栏添加评论功能。 全选 选中界面上所有算子和评论。 使用键盘全选键Ctrl+A也可实现该功能。 编辑 选中算子或评论,可进行剪切、复制操作;选择粘贴,对之前剪切、复制的算子或评论进行粘贴操作。 撤消 同导航栏撤消功能。 恢复 同导航栏恢复功能。 取消亮显 消除界面上所有高亮的算子和评论。
  • Kernel切换及状态 在Jupyter体系结构中,Kernel是由服务器启动的独立进程,不同的Kernel具有不同的编程语言和环境,用户可通过kernel运行代码。 目前,MLS的一个Editor对应一个Kernel,Editor中的所有算子会在此Kernel中运行。 Kernel切换及状态 同算链编排界面导航栏kernel切换及状态。 支持的Kernel 目前MLS仅支持PySpark-2.4.5。
  • 算子连线 算子之间的连线具有两种意义,分为控制流和数据流。 控制流表示连线两端算子具有控制关系,即算子运行顺序。 数据流表示连线两端算子之间具有数据交换关系(简称数据关系),具有数据关系的两个算子,源算子的某个输出为目标算子的某个输入。 MLS中未刻意区分这两种关系,一般而言,存在数据交换的算子同时具有控制关系和数据关系,而不存在数据交换的算子之间则仅具有控制关系。 表5 算子连线说明 流状态 状态说明 限制说明 数据流-单个输入输出 源算子具有单输出,目标算子具有单输入 若源算子输出数据的类型和目标算子输入数据的类型不一致,则连线失败。 数据流-多个输入输出 源算子或目标算子具有多个输出或输入 会出现输入输出选择框,若选择的源算子输出数据的类型和目标算子输入数据的类型不一致,则连线失败。 控制流 源算子和目标算子均无输出或输入 无。
  • 导航按钮 算链编排界面导航栏提供丰富的界面操作,包括运行、保存、清除、撤销、恢复等功能。 图1 算链编排界面导航栏 表1 导航栏功能说明 图标 操作名称 功能说明 运行算链 运行界面上的算链。 保存算链 保存算链。 清除算链 一键清除画布所有算子及连线。 撤销 撤销上一步的操作。键盘撤销操作也可实现该功能。 恢复 恢复撤销的操作。 剪切 选中界面上的算子,单击剪切图标即删除该算子。 可以使用键盘Shift选中多个算子,同时剪切。 剪切后可粘贴算子。 复制 选中界面上的算子,单击复制图标或键盘复制操作Ctrl+C,即复制该算子。 可同时复制多个算子。 粘贴 单击粘贴图标或键盘粘贴操作Ctrl+V,即可将复制算子粘贴在画布中。 添加评论 选中界面上的算子,单击添加评论,可以在画布空白处为该算子添加标注或注释。可以同时选中多个算子添加评论。 删除 选中界面上的算子,删除该算子。可删除多个算子。 水平排列 将画布中的算链进行水平方向的重排列。 垂直排列 将画布中的算链进行垂直方向的重排列。 转换至Notebook 将画布中的所有算链按照顺序转化为一个ipynb后缀格式的Notebook文件。 转换至Python 将画布中的所有算链按照顺序转化为一个py后缀格式的Python脚本。 算链发布 将算链一键发布至ModelArst Workflow。Workflow是邀测功能暂未上线。 放大 将画布放大。 缩小 将画布缩小。 自适应屏幕 将画布重定位到画布中间。 kernel切换 单击右上角kernel信息框,如,可切换kernel。 kernel状态 表示kernel处于空闲状态,表示kernel处于运行状态。
  • 参数说明 参数 是否必选 参数说明 默认值 text_col 是 输入数据集中文本所在列的列名。 "words" text_id 是 文本id列,用一个id代表文本。 "id" result_col 是 结果列的列名。 "result_col" delimiter 是 单词间的分隔符。 " " vector_size 是 向量长度。 10 min_count 是 词出现的最小次数,低于该值的单词会被过滤。 2 num_partitions 否 分区数目。 8 step_size 是 迭代优化时的步长,学习率。 0.025 max_iter 是 最大迭代次数。 1 window_size 是 训练过程中的窗口大小。 5 max_sentence_length 否 最大句子长度。 1000
  • 输出 参数 子参数 参数说明 output output_port_1 output为字典类型,output_port_1为pyspark中的PipelineModel类型。 output output_port_2 output_port_2为pyspark中的DataFrame类型,为词向量。 output output_port_3 output_port_3为pyspark中的DataFrame类型,为文本向量。
  • 创建Notebook实例 登录ModelArts控制台。选择控制台区域,以“华北-北京四”为例。 在开发环境Notebook(New)中创建基于pytorch1.4-cuda10.1-cudnn7-ubuntu18.04镜像的Notebook,具体操作请参见创建Notebook实例章节。 如果需要使用本地IDE(PyCharm或VSCode)远程连接Notebook,此处需要开启SSH远程开发。 图1 创建Notebook实例
  • 查询在线服务详情 from modelarts.session import Sessionfrom modelarts.predictor import Predictordef query_service(service_id): sess = Session() model_instance = Predictor(session=sess, service_id=service_id) return model_instance.get_service_info(service_id)if __name__ == '__main__': service_id = '*************************' service_info = query_service(service_id) print(service_info)
  • 样例 inputs = { "predict_dataframe": None # @input {"label":"dataframe","type":"DataFrame"}}params = { "inputs": inputs, "features_col": "model_features", # @param {"label": "features_col", "type": "string", "required": "true", "helpTip": ""} "prediction_col": "prediction" # @param {"label": "prediction_col", "type": "string", "required": "true", "helpTip": ""}}cluster_evaluation____id___ = MLSClusterEvaluation(**params)cluster_evaluation____id___.run()# @output {"label":"dataframe","name":"cluster_evaluation____id___.get_outputs()['output_port_1']","type":"DataFrame"}
  • 公共参数 - alg_type: 表示使用的算法类型,继承Global参数。 - convert_dir: 表示converter的工作目录,继承Global参数。 - pipeline: 表示不同模型转换模式构成的流水线,允许command传入`--pipeline mode1,mode2,...`进行覆盖。 - pipeline_maps: 表示算法支持的模型转换模式及对应的类型及脚本,所有涉及code-based model的模型转换均由用户实现custom脚本调用套件能力进行转换,其余采用default的套件能力即可。
  • Step3 安装预训练模型 默认下载到当前工程的./model_zoo/{算法类型}/{算法版本}目录下。 python manage.py install model ivgPose:body/simplepose_resnet50_coco_256x192python manage.py install model ivgPose:backbone/resnet50_imagenet_224x224
  • Step4 修改配置文件 配置文件主要包括算法配置文件和算法参数文件,例如: 算法配置文件:./algorithms/ivgPose/config/sample/config.py 算法参数文件:./algorithms/ivgPose/config/sample/simplepose_resnet50_coco_256x192.py 根据需要修改训练相关参数,如数据集路径data_root、runner中的train_args参数以及train参数等。如下述代码所示。 config.py文件 train_args=dict( cfg=alg_cfg['cfg'], output_dir=run_dir, data_root=alg_cfg['data_root'], load_from=None, gpus=None, lr=None, max_epoch=5, samples_per_gpu=None, resume_from=None, pretrained=alg_cfg['pretrained'], train_data_root=None, val_data_root=None, ), simplepose_resnet50_coco_256x192.py文件 train = dict( save_period=-1, val_period=5, best_saver=dict(key_indicator='AP', rule='max'), ema=dict(type='ExpEMA'))
  • Step1 上传数据集到开发环境中 按照不同算法定义的数据结构和格式准备好数据集。 若数据集在OBS桶里,在Terminal里可执行下述命令将OBS里的数据下载到Notebook环境中。 python manage.py copy --source obs://my_bucket/my_data_dir/ --dest /home/ma-user/work/my_data_dir 若数据集比较小且存放在PC上。 若使用的本地IDE是VS Code,可以通过拖放方式复制到VS Code连接的Notebook中。
  • Step2 修改配置文件 配置文件主要包括算法配置文件和算法参数文件,例如: 算法配置文件:./algorithms/ivgPose/config/sample/config.py 算法参数文件:./algorithms/ivgPose/config/sample/simplepose_resnet50_coco_256x192.py。 根据需要修改训练相关参数,如数据集路径data_root、runner中的train_args参数以及train参数等。如下述代码所示。 config.py文件 train_args=dict( cfg=alg_cfg['cfg'], output_dir=run_dir, data_root=alg_cfg['data_root'], load_from=None, gpus=None, lr=None, max_epoch=5, samples_per_gpu=None, resume_from=None, pretrained=alg_cfg['pretrained'], train_data_root=None, val_data_root=None, ), simplepose_resnet50_coco_256x192.py文件 train = dict( save_period=-1, val_period=5, best_saver=dict(key_indicator='AP', rule='max'), ema=dict(type='ExpEMA'))
  • Step4 在开发环境进行验证 在Terminal中执行下述测试命令,其中:--cfg为该预训练模型对应算法资产的配置文件路径,--load_from的值为待测试的模型路径,config.py为: python manage.py run --cfg algorithms/ivgPose/config/sample/config.py --pipeline evaluate --load_from ./model_zoo/ivgPose/body/simplepose_resnet50_coco_256x192.pth.tar 运行完毕后,在交互式输出界面或config.py配置的{run_dir}目录下的test.log可以看到验证过程的日志和结果。如下述信息所示: ivgpose-utils.py 133: Test: AP:0.735012 | AP .5:0.925143 | AP .75:0.813647 | AP (M):0.705874 | AP (L):0.778985 | AR:0.764798 | AR .5:0.933879 | AR .75:0.832966 | AR (M):0.732641 | AR (L):0.813304 | elapsed:00:28
  • Step5 推理 准备好待推理的图片,本小节以算法套件里内置的推理图片为例,原图片如下: 图1 待推理的图片 在Terminal中执行下述推理命令,其中--img_file的值为待推理图片的路径: python manage.py run --cfg algorithms/ivgPose/config/sample/config.py --pipeline infer --demo_type image_demo --load_from model_zoo/ivgPose/body/simplepose_resnet50_coco_256x192.pth.tar --img_path algorithms/ivgPose/algorithm/examples/images/body/human36m_s_01_act_02_subact_01_ca_01_000001.jpg --is_show 运行完毕后,在当前目录的export/exp_tmp下可以看到推理后的文件,打开后显示如下。 图2 推理后的文件
  • 删除已发布模型和在线服务 已经部署的模型和在线服务可以在ModelArts控制台上手动删除,也可以在Notebook中通过ModelArts SDK删除。 执行删除操作不可逆,请谨慎删除模型和在线服务! 根据模型ID删除已部署模型。 from modelarts.session import Sessionfrom modelarts.model import Modeldef delete_model_by_id(model_id): sess = Session() model_instance = Model(session=sess, model_id="").model_instance model_instance.delete_model(model_id)if __name__ == '__main__': model_id = '*************************' delete_model_by_id(auth, model_id) 根据部署服务ID删除已部署服务。 from modelarts.session import Sessionfrom modelarts.model import Modeldef delete_service_by_id(service_id): sess = Session() model_instance = Model(session=sess, model_id="").model_instance model_instance.delete_service(service_id)if __name__ == '__main__': service_id = '*************************' delete_service_by_id(service_id) 父主题: 部署
  • Step6 提交Modelarts训练作业 参考Step2,修改外壳的配置文件 填写OBS桶信息 obs_bucket = 'obs://my_bucket/my_object' 按需修改runner里的Adapter参数。 adapter=dict( requirements=f'{work_dir}/algorithm/requirements.txt', framework_type='PyTorch', framework_version='PyTorch-1.4.0-python3.6', instance_type='modelarts.p3.large.public', pool_id=None, downloads=dict( src=[f'{obs_bucket}/{alg_cfg["data_root"]}', f'{obs_bucket}/{alg_cfg["pretrained"]}'], dst=[alg_cfg['data_root'], alg_cfg['pretrained']], ), uploads=dict( src=[run_dir], dst=[f'{obs_bucket}/{run_dir}'], ), ), 在Terminal中输入下述命令来提交ModelArts训练作业完成训练。 python manage.py run --launch_remote --cfg algorithms/ivgPose/config/sample/config.py --gpus 0 提交完训练作业后,可以在ModelArts控制台交互式界面看到当前训练作业的状态(如排队中、运行中等),可以在config.py配置的{run_dir}/{训练作业名称目录}下看到ModelArts上的训练日志。注:仅支持Modelarts新版训练作业。
  • 将本地文件或文件夹上传至OBS 在Project窗口单击鼠标右键,在弹出的选项中选择“ModelArts Upload”。 图2 ModelArts Upload 在弹出的配置框中填写“OBS Path”和“Local File Path”,上传的文件或文件夹大小建议不超过10MB。配置完成后单击“Upload File”。 “OBS Path”:表示本地文件需要上传的OBS路径。 “Local File Path”:表示需上传的文件或文件夹所在的本地目录。如果上传文件,此参数请指定对应的具体文件。 图3 填写文件路径 在“ModelArts Event Log”窗口中可以看到上传的日志。 图4 查看上传日志
  • 从OBS下载文件或文件夹 在Project窗口单击鼠标右键,在弹出的选项中选择“ModelArts Download”。 在弹出的配置框中填写“OBS Path”和“Local File Path”,配置完成后,单击“Download File”。 “OBS Path”:表示下载文件的OBS路径。当下载的是具体文件时,此处需指定为此文件的文件名。 “Local File Path”:表示下载文件需要存储的本地路径。 图6 从OBS下载文件 当本地的目录下已经存在同名文件时,将提示是否选择覆盖,选择“是”表示覆盖,选择“否”表示有冲突的文件就跳过了不下载了,其他没有冲突的文件继续下载 。请根据实际情况进行选择。 图7 选择是否覆盖 在“ModelArts Event Log”窗口中可以看到下载的日志。 图8 查看下载日志
共100000条