华为云用户手册

  • 常见问题 使用从OBS选择的数据创建表格数据集如何处理Schema信息? Schema信息表示表格的列名和对应类型,需要跟导入数据的列数保持一致。 如果您的原始表格中已包含表头,需要开启“导入是否包含表头”开关,系统会导入文件的第一行(表头)作为列名,无需再手动修改Schema信息。 如果您的原始表格中没有表头,需关闭“导入是否包含表头”开关,从OBS选择数据后,Schema信息的列名默认为表格中的第一行数据,请更改Schema信息中的“列名”为attr_1、attr_2、……、attr_n,其中attr_n为最后一列,代表预测列。
  • 数据上传至OBS 在本文档中,采用通过OBS管理控制台将数据上传至OBS桶。 上传OBS的文件规范: 预测分析项目的OBS数据路径需符合以下规则: 输入数据的OBS路径应指向数据文件,且文件不能直接放在OBS桶的根目录下,应该存放在OBS桶的文件夹内。如:“/obs-xxx/data/input.csv”。 输入数据的格式必须为csv格式,有效数据行数必须大于100行。列数必须小于200列,数据总大小不能超过100MB。 上传OBS操作步骤: 执行如下操作,将数据导入到您的数据集中,以便用于模型训练和构建。 登录OBS管理控制台,在ModelArts同一区域内创建桶。如果已存在可用的桶,需确保OBS桶与ModelArts在同一区域。 参考上传文件,将本地数据上传至OBS桶中。如果您的数据较多,推荐OBS Browser+上传数据或上传文件夹。上传的数据需满足此类型自动学习项目的数据集要求。 在上传数据时,请选择非加密桶进行上传,否则会由于加密桶无法解密导致后期的训练失败。
  • 服务测试 服务部署节点运行成功后,单击“实例详情”可跳转至对应的在线服务详情页面。单击“预测”页签,进行服务测试。 图1 服务测试 下面的测试,是您在自动学习物体检测项目页面将模型部署上线之后进行服务测试的操作步骤。 模型部署完成后,“服务部署”节点,单击“实例详情”按钮,进入服务预测界面,在“预测”页签单击“上传”,选择本地图片进行测试。 单击“预测”进行测试,预测完成后,右侧“预测结果”区域输出结果。如模型准确率不满足预期,可在“数据标注”页签中添加图片并进行标注,重新进行模型训练及模型部署。预测结果中的参数说明请参见表1。如果您对模型预测结果满意,可根据界面提示调用接口访问在线服务。 目前只支持jpg、jpeg、bmp、png格式的图片。 表1 预测结果中的参数说明 参数 说明 detection_classes 每个检测框的标签。 detection_boxes 每个检测框的四点坐标(y_min,x_min,y_max,x_max),如图2所示。 detection_scores 每个检测框的置信度。 图2 检测框的四点坐标示意图 由于“运行中”的在线服务将持续耗费资源,如果不需再使用此在线服务,建议在版本管理区域,单击“停止”,即可停止在线服务的部署,避免产生不必要的费用。如果需要继续使用此服务,可单击“启动”恢复。 如果您启用了自动停止功能,服务将在指定时间后自动停止,不再产生费用。
  • 模型部署 模型部署操作即将模型部署为在线服务,并且提供在线的测试UI与监控能力。完成模型训练后,可选择准确率理想且训练状态为“运行成功”的版本部署上线。具体操作步骤如下。 在“运行节点”页面中,待服务部署节点的状态变为“等待输入”时,双击“服务部署”进入配置详情页,完成资源的参数配置操作。 在服务部署页面,选择模型部署使用的资源规格。 模型来源:默认为生成的模型。 选择模型及版本:自动匹配当前使用的模型版本,支持选择版本。 资源池:默认公共资源池。 分流:默认为100,输入值必须是0-100之间。 计算节点规格:请根据界面显示的列表,选择可用的规格,置灰的规格表示当前环境无法使用。如果公共资源池下规格为空数据,表示当前环境无公共资源。建议使用专属资源池,或者联系系统管理员创建公共资源池。 计算节点个数:默认为1,输入值必须是1-5之间的整数。 是否自动停止:启用该参数并设置时间后,服务将在指定时间后自动停止。如果不启用此参数,在线服务将一直运行,同时一直收费,自动停止功能可以帮您避免产生不必要的费用。默认开启自动停止功能,且默认值为“1小时后”。 目前支持设置为“1小时后”、“2小时后”、“4小时后”、“6小时后”、“自定义”。如果选择“自定义”的模式,可在右侧输入框中输入1~24范围内的任意整数。 如果您购买了套餐包,计算节点规格可选择您的套餐包,同时在“配置费用”页签还可查看您的套餐包余量以及超出部分的计费方式,请您务必关注,避免造成不必要的资源浪费。 完成资源配置后,单击“继续运行”,服务部署节点将继续运行,直至状态变为“运行成功”,至此,已将模型部署为在线服务。
  • 操作步骤 在新版自动学习页面,单击项目名称进入运行总览页面,单击“数据标注”节点的“实例详情”进入数据标注页面,完成数据标注。 图1 完成数据标注 返回新版自动学习页面,单击数据标注节点的“继续运行”,然后等待工作流按顺序进入训练节点。 模型将会自动进入训练,无需人工介入,训练时间相对较长,建议您耐心等待。如果关闭或退出此页面,系统仍然在执行训练操作。 在“物体检测”节点中,待训练状态由“运行中”变为“运行成功”,即完成模型的自动训练。 图2 运行成功 训练完成后,您可以单击物体检测节点上方的按钮,查看相关指标信息,如“准确率”、“评估结果”等。评估结果参数说明请参见表1。 图3 模型评估报告 表1 评估结果参数说明 参数 说明 recall:召回率 被用户标注为某个分类的所有样本中,模型正确预测为该分类的样本比率,反映模型对正样本的识别能力。 precision:精确率 被模型预测为某个分类的所有样本中,模型正确预测的样本比率,反映模型对负样本的区分能力。 accuracy:准确率 所有样本中,模型正确预测的样本比率,反映模型对样本整体的识别能力。 f1:F1值 F1值是模型精确率和召回率的加权调和平均,用于评价模型的好坏,当F1较高时说明模型效果较好。 同一个自动学习项目可以训练多次,每次训练会注册一个新的模型一个版本。如第一次训练版本号为“0.0.1”,下一个版本为“0.0.2”。基于训练版本可以对训练模型进行管理。当训练的模型达到目标后,再执行模型部署的操作。
  • 修改标注 当数据完成标注后,您还可以进入已标注页签,对已标注的数据进行修改。 基于图片修改 在数据集详情页面,单击“已标注”页签,然后在图片列表中选中待修改的图片,在右侧“标注”区域中对图片信息进行修改。 修改标签:“标注”区域中,单击编辑按钮,在文本框中输入正确的标签名,然后单击确定按钮完成修改。标签颜色不支持修改。 删除标签:在“标注”区域中,单击删除按钮,即可删除此图片中的标签。 标签删除后,单击页面左上角的项目名称离开标注页面。该图片会重新回到“未标注”页签。 图5 编辑物体检测标签 基于标签修改 在数据标注作业概览页,单击右侧的“标签管理”,进入标签管理页面,标签管理页展示所有标签信息。 图6 标签管理页 修改标签:单击操作列的“修改”按钮,然后在弹出的对话框中输入修改后的标签名,然后单击“确定”完成修改。修改后,之前添加了此标签的图片,都将被标注为新的标签名称。 删除标签:单击操作列的“删除”按钮,在弹出的对话框中,根据界面提示选择删除对象,然后单击“确定”。 删除后的标签无法再恢复,请谨慎操作。
  • 同步或添加图片 在“数据标注”节点单击“实例详情”进入数据标注页面,数据标注的图片来源有两种,通过本地添加图片和同步OBS中的图片数据。 图3 添加本地图片 图4 同步OBS图片数据 添加数据:您可以将本地图片快速添加到ModelArts,同时自动上传至创建项目时所选择的OBS路径中。单击“添加数据”,根据弹出的对话框的引导,输入正确的数据并添加。 同步新数据:将图片数据上传至创建项目时指定的OBS目录,然后单击“同步新数据”,快速将原OBS目录中的新数据添加到ModelArts数据集。 删除图片:您可以依次单击选中图片进行删除,也可以勾选“选择当前页”对该页面所有图片进行删除。 所有的删除操作均不可恢复,请谨慎操作。
  • 模型部署 模型部署操作即将模型部署为在线服务,并且提供在线的测试UI与监控能力。完成模型训练后,可选择准确率理想且训练状态为“运行成功”的版本部署上线。具体操作步骤如下。 在“运行节点”页面中,待服务部署节点的状态变为“等待输入”时,双击“服务部署”进入配置详情页,完成资源的参数配置操作。 在服务部署页面,选择模型部署使用的资源规格。 模型来源:默认为生成的模型。 选择模型及版本:自动匹配当前使用的模型版本,支持选择版本。 资源池:默认公共资源池。 分流:默认为100,输入值必须是0-100之间。 计算节点规格:请根据界面显示的列表,选择可用的规格,置灰的规格表示当前环境无法使用。如果公共资源池下规格为空数据,表示当前环境无公共资源。建议使用专属资源池,或者联系系统管理员创建公共资源池。 计算节点个数:默认为1,输入值必须是1-5之间的整数。 是否自动停止:启用该参数并设置时间后,服务将在指定时间后自动停止。如果不启用此参数,在线服务将一直运行,同时一直收费,自动停止功能可以帮您避免产生不必要的费用。默认开启自动停止功能,且默认值为“1小时后”。 目前支持设置为“1小时后”、“2小时后”、“4小时后”、“6小时后”、“自定义”。如果选择“自定义”的模式,可在右侧输入框中输入1~24范围内的任意整数。 如果您购买了套餐包,计算节点规格可选择您的套餐包,同时在“配置费用”页签还可查看您的套餐包余量以及超出部分的计费方式,请您务必关注,避免造成不必要的资源浪费。 完成资源配置后,单击“继续运行”,服务部署节点将继续运行,直至状态变为“运行成功”,至此,已将模型部署为在线服务。
  • 操作步骤 参考标注图像分类数据章节,确保您的数据已全部完成标注。 在新版自动学习页面,单击数据标注节点的“继续运行”按钮,然后等待工作流按顺序进入训练节点即可。 模型将会自动进入训练,无需人工介入,训练时间相对较长,建议您耐心等待。如果关闭或退出此页面,系统仍然在执行训练操作。 在“图像分类”节点中,待训练状态由“运行中”变为“运行成功”,即完成了模型的自动训练。 训练完成后,您可以单击“图像分类”节点上方的按钮,查看相关指标信息,如“准确率”、“评估结果”等。评估结果参数说明请参见表1。 图1 模型评估报告 表1 评估结果参数说明 参数名称 参数含义 说明 recall 召回率 被用户标注为某个分类的所有样本中,模型正确预测为该分类的样本比率,反映模型对正样本的识别能力。 precision 精确率 被模型预测为某个分类的所有样本中,模型正确预测的样本比率,反映模型对负样本的区分能力。 accuracy 准确率 所有样本中,模型正确预测的样本比率,反映模型对样本整体的识别能力。 f1 F1值 F1值是模型精确率和召回率的加权调和平均,用于评价模型的好坏,当F1较高时说明模型效果较好。 同一个自动学习项目可以训练多次,每次训练会注册一个新的模型版本。如第一次训练版本号为“0.0.1”,下一个版本为“0.0.2”。基于训练版本可以对训练模型进行管理。当训练的模型达到目标后,再执行模型部署的操作。
  • 图片标注 在新版自动学习页面的数据标注节点单击“实例详情”按钮,前往数据标注页面。 图2 单击实例详情 依次勾选待标注的图片,或勾选“选择当前页”选中该页面所有图片,在页面右侧进行图片标注。 选中图片后,在页面右侧“添加标签”,输入“标签名”或从下拉列表中选择已添加的标签。单击“确定”,完成选中图片的标注操作。例如,您可以选择多张图片,按照花朵种类将图片标注为“tulips”。同样选择其他未标注分类图片,将其标注为“sunflowers”、“roses”等。标注完成后,图片将存储至“已标注”页签下。 图片标注不支持多标签,即一张图片不可以添加多个标签。 标签名是由中文、大小写字母、数字、中划线或下划线组成。 当图片目录中所有图片都完成标注后,您可以在“已标注”页签下查看已完成标注的图片,或者通过右侧的“全部标签”列表,了解当前已完成的标签名称和标签数量。
  • 同步或添加图片 在“数据标注”节点单击“实例详情”进入数据标注页面,数据标注的图片来源有两种,通过本地添加图片和同步OBS中的图片数据。 图3 添加本地图片 图4 同步OBS图片数据 添加数据:您可以将本地图片快速添加到ModelArts,同时自动上传至创建项目时所选择的OBS路径中。单击“添加数据”,根据弹出的对话框的引导,输入正确的数据并添加。 同步新数据:将图片数据上传至创建项目时指定的OBS目录,然后单击“同步新数据”,快速将原OBS目录中的新数据添加到ModelArts数据集。 删除图片:您可以依次单击选中图片进行删除,也可以勾选“选择当前页”对该页面所有图片进行删除。 所有的删除操作均不可恢复,请谨慎操作。
  • 修改标注 当数据完成标注后,您还可以进入已标注页签,对已标注的数据进行修改。 基于图片修改 在数据标注页面,单击“已标注”页签,然后在图片列表中选中待修改的图片(选择一个或多个)。在右侧标签信息区域中对图片信息进行修改。 添加标签:在“标签名”右侧文本框中,选择已有标签或输入新的标签名,然后单击,为选中图片增加标签。 修改标签:在“选中文件标签”区域中,单击操作列的编辑图标,然后在文本框中输入正确的标签名,然后单击确定图标完成修改。 图5 编辑标签 删除标签:在“选中文件标签”区域中,单击操作列的删除该标签。 基于标签修改 在数据标注概览页,单击右侧的“标签管理”,即可显示全部标签的信息。 图6 全部标签的信息 修改标签:在需要修改的标签的“操作”列,单击“修改”,输入修改后的标签,单击“确定”即可。 删除标签:选择对应的标签,单击操作列的“删除”,在弹出的“删除标签”对话框中单击“确定”即可删除对应的标签。 删除后无法再恢复,请谨慎操作。
  • 自动学习流程介绍 使用ModelArts自动学习开发AI模型无需编写代码,您只需上传数据、创建项目、完成数据标注、发布训练、然后将训练的模型部署上线。具体流程请参见图1。新版自动学习中,该流程可完全由Workflow进行承载,如图2。开发者可以通过Workflow进行有向无环图(Directed Acyclic Graph,DAG)的开发,整个DAG的执行就是有序的任务执行模板,依次执行从数据标注、数据集版本发布、模型训练、模型注册到服务部署环节。如果想了解更多关于Workflow您可以参考Workflow简介。 图1 自动学习操作流程 图2 Workflow运行流程
  • 准备工作 准备一套可以连接外部网络,装有Linux系统并安装18.09.7及以上版本docker的虚拟机或物理机用作镜像构建节点,以下称“构建节点”。 可以通过执行docker pull、apt-get update/upgrade和pip install命令判断是否可正常访问外部可用的开源软件仓库,若可以正常访问表示环境已连接外部网络。 上述的虚拟机或物理机需要为arm64架构。 建议构建节点安装的Linux系统版本为Ubuntu 18.04。 本指导使用/opt目录作为构建任务承载目录,请确保该目录下可用存储空间大于30GB。 Docker的安装可以参考官方文档:Install Docker Engine on Ubuntu。MiniConda与tflite安装包为第三方安装包,ModelArts不对其安全相关问题进行负责,如用户有安全方面的需求,可以对该安装包进行加固后发布成同样名称的文件上传到构建节点。
  • 上传镜像至SWR服务 登录 容器镜像服务 控制台,选择区域,要和ModelArts区域保持一致,否则无法选择到镜像。 单击右上角“创建组织”,输入组织名称完成组织创建。请自定义组织名称,本示例使用“deep-learning”,下面的命令中涉及到组织名称“deep-learning”也请替换为自定义的值。 单击右上角“登录指令”,获取登录访问指令,本文选择复制临时登录指令。 以root用户登录本地环境,输入复制的SWR临时登录指令。 上传镜像至容器 镜像服务 镜像仓库。 使用docker tag命令给上传镜像打标签。 #region和domain信息请替换为实际值,组织名称deep-learning也请替换为自定义的值。 sudo docker tag pytorch:2.1.0-cann7.0.0 swr.{region-id}.{domain}/deep-learning/pytorch:2.1.0-cann7.0.0 #此处以华为云cn-north-4为例 sudo docker tagpytorch:2.1.0-cann7.0.0 swr.cn-north-4.myhuaweicloud.com/deep-learning/pytorch:2.1.0-cann7.0.0 使用docker push命令上传镜像。 #region和domain信息请替换为实际值,组织名称deep-learning也请替换为自定义的值。 sudo docker push swr.{region-id}.{domain}/deep-learning/pytorch:2.1.0-cann7.0.0 #此处以华为云cn-north-4为例 sudo docker push swr.cn-north-4.myhuaweicloud.com/deep-learning/pytorch:2.1.0-cann7.0.0 完成镜像上传后,在容器镜像服务控制台的“我的镜像”页面可查看已上传的 自定义镜像 。 “swr.cn-north-4.myhuaweicloud.com/deep-learning/pytorch:2.1.0-cann7.0.0”即为此自定义镜像的“SWR_URL”。
  • 统一镜像更新说明 表1 统一镜像更新说明 镜像名称 更新时间 更新说明 mindspore_2.3.0-cann_8.0.rc1-py_3.9-euler_2.10.7-aarch64-snt9b 2024-05-21 基于昇腾415商发版本,mindspore更新至2.3.0-rc4,cann更新至8.0.rc1 下线ma-cau 1.1.6、ma-cau-adapter 1.1.3 pytorch_2.1.0-cann_8.0.rc1-py_3.9-euler_2.10.7-aarch64-snt9b 2024-05-21 基于昇腾415商发版本,cann更新至8.0.rc1 pytorch_1.11.0-cann_8.0.rc1-py_3.9-euler_2.10.7-aarch64-snt9b 2024-05-21 基于昇腾415商发版本,cann更新至8.0.rc1 mindspore_2.3.0-cann_8.0.rc2-py_3.9-euler_2.10.7-aarch64-snt9b 2024-07-27 基于昇腾715商发版本,mindspore更新至2.3.0,cann更新至8.0.rc2,配套驱动Ascend HDK 24.1.RC2 pytorch_2.1.0-cann_8.0.rc2-py_3.9-euler_2.10.7-aarch64-snt9b 2024-07-27 基于昇腾715商发版本,cann更新至8.0.rc2,配套驱动Ascend HDK 24.1.RC2 pytorch_1.11.0-cann_8.0.rc2-py_3.9-euler_2.10.7-aarch64-snt9b 2024-07-27 基于昇腾715商发版本,cann更新至8.0.rc2,配套驱动Ascend HDK 24.1.RC2 mindspore_2.4.0-cann_8.0.rc3-py_3.9-euler_2.10.10-aarch64-snt9b 2024-11-08 基于昇腾930商发版本,cann更新至8.0.rc3,配套驱动Ascend HDK 24.1.RC3 pytorch_2.1.0-cann_8.0.rc3-py_3.9-euler_2.10.10-aarch64-snt9b 2024-11-15 基于昇腾930商发版本,cann更新至8.0.rc3,配套驱动Ascend HDK 24.1.RC3
  • Notebook自定义镜像制作流程 图1 Notebook自定义镜像制作流程图(适用于场景一和场景二) 场景一:基于Notebook预置镜像或第三方镜像,在服务器上配置docker环境,编写Dockerfile后构建镜像并注册,具体案例参考在E CS 上构建自定义镜像并在Notebook中使用 场景二:基于Notebook提供的预置镜像或第三方镜像,借助ModelArts命令行工具(ma-cli镜像构建命令介绍)制作和注册镜像,构建一个面向AI开发的自定义镜像。此场景Notebook作为制作镜像的平台。具体案例参考在Notebook中通过Dockerfile从0制作自定义镜像。 场景三:通过预置的镜像创建Notebook实例,在预置镜像上安装对应的自定义软件和依赖,进而将运行的实例环境以容器镜像的方式保存下来。具体案例参考在Notebook中通过镜像保存功能制作自定义镜像。
  • Notebook自定义镜像规范 制作自定义镜像时,Base镜像需满足如下规范: 基于昇腾、Dockerhub官网等官方开源的镜像制作,开源镜像需要满足如下操作系统约束: x86:Ubuntu18.04、Ubuntu20.04 ARM:Euler2.8.3、Euler2.10.7 Ubuntu20.04.6可能有兼容性问题,请优先使用低于该版本的操作系统。 不满足以上镜像规范,所制作的镜像使用可能会出现故障,请用户检查镜像规范,并参考Notebook自定义镜像故障基础排查自行排查,如未解决请联系华为技术工程师协助解决。
  • 统一镜像列表 ModelArts提供了ARM+Ascend规格的统一镜像,包括MindSpore、PyTorch。适用于开发环境,模型训练,服务部署,请参考统一镜像列表。 表1 MindSpore 预置镜像 适配芯片 适用范围 mindspore_2.3.0-cann_8.0.rc1-py_3.9-euler_2.10.7-aarch64-snt9b Ascend snt9b Notebook、训练、推理部署 mindspore_2.2.0-cann_7.0.1-py_3.9-euler_2.10.7-aarch64-snt9b Ascend snt9b Notebook、训练、推理部署 mindspore_2.1.0-cann_6.3.2-py_3.7-euler_2.10.7-aarch64-snt9b Ascend snt9b Notebook、训练、推理部署 mindspore_2.2.12-cann_7.0.1.1-py_3.9-euler_2.10.7-aarch64-snt3p Ascend snt3p 推理部署 mindspore_2.3.0-cann_8.0.rc2-py_3.9-euler_2.10.7-aarch64-snt9b Ascend snt9b Notebook、训练、推理部署 mindspore_2.4.0-cann_8.0.rc3-py_3.9-euler_2.10.10-aarch64-snt9b Ascend snt9b Notebook、训练、推理部署 表2 PyTorch 预置镜像 适配芯片 适用范围 pytorch_2.1.0-cann_8.0.rc1-py_3.9-euler_2.10.7-aarch64-snt9b Ascend snt9b Notebook、训练、推理部署 pytorch_1.11.0-cann_8.0.rc1-py_3.9-euler_2.10.7-aarch64-snt9b Ascend snt9b Notebook、训练、推理部署 pytorch_1.11.0-cann_6.3.2-py_3.7-euler_2.10.7-aarch64-snt9b Ascend snt9b Notebook、训练、推理部署 pytorch_2.1.0-cann_7.0.1.1-py_3.9-euler_2.10.7-aarch64-snt3p Ascend snt3p 推理部署 pytorch_2.1.0-cann_8.0.rc2-py_3.9-euler_2.10.7-aarch64-snt9b Ascend snt9b Notebook、训练、推理部署 pytorch_1.11.0-cann_8.0.rc2-py_3.9-euler_2.10.7-aarch64-snt9b Ascend snt9b Notebook、训练、推理部署 pytorch_2.1.0-cann_8.0.rc3-py_3.9-euler_2.10.10-aarch64-snt9b Ascend snt9b Notebook、训练、推理部署
  • Step2 在Notebook中调试模型 打开一个新的Terminal终端,进入“/home/ma-user/infer/”目录,运行启动脚本run.sh,并预测模型。基础镜像中默认提供了run.sh作为启动脚本。启动命令如下: sh run.sh 图6 运行启动脚本 上传一张预测图片(手写数字图片)到Notebook中。 图7 手写数字图片 图8 上传预测图片 重新打开一个新的Terminal终端,执行如下命令进行预测。 curl -kv -F 'images=@/home/ma-user/work/test.png' -X POST http://127.0.0.1:8080/ 图9 预测 在调试过程中,如果有修改模型文件或者推理脚本文件,需要重启run.sh脚本。执行如下命令先停止nginx服务,再运行run.sh脚本。 #查询nginx进程 ps -ef |grep nginx #关闭所有nginx相关进程 kill -9 {进程ID} #运行run.sh脚本 sh run.sh 也可以执行pkill nginx命令直接关闭所有nginx进程。 #关闭所有nginx进程 pkill nginx #运行run.sh脚本 sh run.sh 图10 重启run.sh脚本
  • 模型包文件样例 模型包文件model.zip中需要用户自己准备模型文件,此处仅是举例示意说明,以一个手写数字识别模型为例。 Model目录下必须要包含推理脚本文件customize_service.py,目的是为开发者提供模型预处理和后处理的逻辑。 图5 推理模型model目录示意图(需要用户自己准备模型文件) 推理脚本customize_service.py的具体写法要求可以参考模型推理代码编写说明。 本案例中提供的customize_service.py文件具体内容如下: import logging import threading import numpy as np import tensorflow as tf from PIL import Image from model_service.tfserving_model_service import TfServingBaseService class mnist_service(TfServingBaseService): def __init__(self, model_name, model_path): self.model_name = model_name self.model_path = model_path self.model = None self.predict = None # 非阻塞方式加载saved_model模型,防止阻塞超时 thread = threading.Thread(target=self.load_model) thread.start() def load_model(self): # load saved_model 格式的模型 self.model = tf.saved_model.load(self.model_path) signature_defs = self.model.signatures.keys() signature = [] # only one signature allowed for signature_def in signature_defs: signature.append(signature_def) if len(signature) == 1: model_signature = signature[0] else: logging.warning("signatures more than one, use serving_default signature from %s", signature) model_signature = tf.saved_model.DEFAULT_SERVING_SIGNATURE_DEF_KEY self.predict = self.model.signatures[model_signature] def _preprocess(self, data): images = [] for k, v in data.items(): for file_name, file_content in v.items(): image1 = Image.open(file_content) image1 = np.array(image1, dtype=np.float32) image1.resize((28, 28, 1)) images.append(image1) images = tf.convert_to_tensor(images, dtype=tf.dtypes.float32) preprocessed_data = images return preprocessed_data def _inference(self, data): return self.predict(data) def _postprocess(self, data): return { "result": int(data["output"].numpy()[0].argmax()) }
  • 使用预置框架构建自定义镜像原理介绍 如果先前基于预置框架且通过指定代码目录和启动文件的方式来创建的训练作业;但是随着业务逻辑的逐渐复杂,您期望可以基于预置框架修改或增加一些软件依赖的时候,可以使用预置框架构建自定义镜像,即在创建训练作业页面选择预置框架名称后,在预置框架版本下拉列表中选择“自定义”。 该方式的训练流程与直接基于预置框架创建的训练作业相同,例如: 系统会自动注入一系列环境变量,如下所示。 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 系统会自动添加预置框架关联的超参。
  • 推理基础镜像详情MindSpore(CPU/GPU) ModelArts提供了以下MindSpore(CPU/GPU)推理基础镜像: 引擎版本一:mindspore_1.7.0-cpu-py_3.7-ubuntu_18.04-x86_64 引擎版本二:mindspore_1.7.0-cuda_10.1-py_3.7-ubuntu_18.04-x86_64 引擎版本三:mindspore_1.7.0-cuda_11.1-py_3.7-ubuntu_18.04-x86_64
  • 引擎版本一:mindspore_1.7.0-cpu-py_3.7-ubuntu_18.04-x86_64 镜像地址:swr.{region_id}.myhuaweicloud.com/atelier/mindspore_1_7_0:mindspore_1.7.0-cpu-py_3.7-ubuntu_18.04-x86_64-20220702120711-8590b76 镜像构建时间:20220702120711(yyyy-mm-dd-hh-mm-ss) 镜像系统版本:Ubuntu 18.04.4 LTS Python解释器路径及版本:/home/ma-user/anaconda3/envs/MindSpore/bin/python, python 3.7.10 三方包安装路径:/home/ma-user/anaconda3/envs/MindSpore/lib/python3.7/site-packages 部分pip安装包列表: cycler 0.11.0 easydict 1.9 Flask 2.0.1 grpcio 1.47.0 gunicorn 20.1.0 ipykernel 6.7.0 Jinja2 3.0.1 lxml 4.9.0 matplotlib 3.5.1 mindinsight 1.7.0 mindspore 1.7.0 mindvision 0.1.0 moxing-framework 2.1.0.5d9c87c8 numpy 1.17.0 opencv-contrib-python-headless 4.6.0.66 opencv-python-headless 4.6.0.66 pandas 1.1.5 Pillow 9.1.1 pip 22.1.2 protobuf 3.20.1 psutil 5.8.0 PyYAML 5.1 requests 2.27.1 scikit-learn 0.22.1 scipy 1.5.2 setuptools 62.6.0 sklearn 0.0 tensorboardX 2.0 threadpoolctl 3.1.0 tomli 2.0.1 tornado 6.1 tqdm 4.64.0 traitlets 5.3.0 treelib 1.6.1 urllib3 1.26.9 wheel 0.37.1 zipp 3.8.0 ... 部分apt安装包列表: apt ca-certificates cmake curl ethtool fdisk ffmpeg g++ gcc git gpg graphviz libsm6 libxext6 libopencv-dev libxrender-dev libatlas3-base libnuma-dev libcap-dev libssl-dev liblz-dev libbz2-dev liblzma-dev libboost-graph-dev libsndfile1 libcurl4-openssl-dev libopenblas-base liblapack3 libopenblas-dev libprotobuf-dev libleveldb-dev libsnappy-dev libhdf5-serial-dev liblapacke-dev libgflags-dev libgoogle-glog-dev liblmdb-dev libatlas-base-dev librdmacm1 libcap2-bin libpq-dev mysql-common net-tools nginx openslide-tools openssh-client openssh-server openssh-sftp-server openssl protobuf-compiler redis-server redis-tools rpm tar tofrodos unzip vim wget zip zlib1g-dev ...
  • 引擎版本三:mindspore_1.7.0-cuda_11.1-py_3.7-ubuntu_18.04-x86_64 镜像地址:swr.{region_id}.myhuaweicloud.com/atelier/mindspore_1_7_0:mindspore_1.7.0-cuda_11.1-py_3.7-ubuntu_18.04-x86_64-20220702120711-8590b76 镜像构建时间:20220702120711(yyyy-mm-dd-hh-mm-ss) 镜像系统版本:Ubuntu 18.04.4 LTS cuda:11.1.1 cudnn:8.0.5.39 Python解释器路径及版本:/home/ma-user/anaconda3/envs/MindSpore/bin/python, python 3.7.10 三方包安装路径:/home/ma-user/anaconda3/envs/MindSpore/lib/python3.7/site-packages 部分pip安装包列表: cycler 0.11.0 easydict 1.9 Flask 2.0.1 grpcio 1.47.0 gunicorn 20.1.0 ipykernel 6.7.0 Jinja2 3.0.1 lxml 4.9.0 matplotlib 3.5.1 mindinsight 1.7.0 mindspore 1.7.0 mindvision 0.1.0 moxing-framework 2.1.0.5d9c87c8 numpy 1.17.0 opencv-contrib-python-headless 4.6.0.66 opencv-python-headless 4.6.0.66 pandas 1.1.5 Pillow 9.1.1 pip 22.1.2 protobuf 3.20.1 psutil 5.8.0 PyYAML 5.1 requests 2.27.1 scikit-learn 0.22.1 scipy 1.5.2 setuptools 62.6.0 sklearn 0.0 tensorboardX 2.0 threadpoolctl 3.1.0 tomli 2.0.1 tornado 6.1 tqdm 4.64.0 traitlets 5.3.0 treelib 1.6.1 urllib3 1.26.9 wheel 0.37.1 zipp 3.8.0 ... 部分apt安装包列表: apt ca-certificates cmake cuda curl ethtool fdisk ffmpeg g++ gcc git gpg graphviz libsm6 libxext6 libopencv-dev libxrender-dev libatlas3-base libnuma-dev libcap-dev libssl-dev liblz-dev libbz2-dev liblzma-dev libboost-graph-dev libsndfile1 libcurl4-openssl-dev libopenblas-base liblapack3 libopenblas-dev libprotobuf-dev libleveldb-dev libsnappy-dev libhdf5-serial-dev liblapacke-dev libgflags-dev libgoogle-glog-dev liblmdb-dev libatlas-base-dev librdmacm1 libcap2-bin libpq-dev mysql-common net-tools nginx openslide-tools openssh-client openssh-server openssh-sftp-server openssl protobuf-compiler redis-server redis-tools rpm tar tofrodos unzip vim wget zip zlib1g-dev ...
  • 引擎版本一:tensorflow_1.15-cann_5.1.0-py_3.7-euler_2.8.3-aarch64 镜像地址: swr.{region_id}.myhuaweicloud.com/atelier/tensorflow_1_15_ascend:tensorflow_1.15-cann_5.1.0-py_3.7-euler_2.8.3-aarch64-d910-20220715093657-9446c6a 镜像构建时间:20220715093657(yyyy-mm-dd-hh-mm-ss) 镜像系统版本:euleros 2.8.3 cann:5.1.0 Python解释器路径及版本:/home/ma-user/anaconda3/envs/TensorFlow-1.15.0/bin/python, python 3.7.10 三方包安装路径:/home/ma-user/anaconda3/envs/TensorFlow-1.15.0/lib/python3.7/site-packages 部分pip安装包列表: Cython 0.29.14 Flask 2.0.1 grpcio 1.26.0 grpcio-tools 1.26.0 gunicorn 20.1.0 h5py 2.10.0 hccl 0.1.0 huaweicloud-sdk-python-modelarts-dataset 0.1.5 idna 2.10 image 1.5.28 imageio 2.9.0 ipykernel 6.7.0 Jinja2 3.0.1 Keras 2.3.1 matplotlib 3.5.1 mmcv 0.2.14 modelarts-mindspore-model-server 1.0.4 moxing-framework 2.0.1.rc0.ffd1c0c8 moxing-tensorflow 2.0.0.rc2.65f98f7d numpy 1.17.5 opencv-python 4.2.0.34 pandas 0.24.2 Pillow 9.2.0 pip 22.1.2 protobuf 3.11.3 psutil 5.7.0 ptyprocess 0.7.0 pycocotools 2.0.0 PyYAML 5.3.1 requests 2.27.1 scikit-image 0.17.2 scikit-learn 0.20.0 scipy 1.3.3 setuptools 63.1.0 tensorboard 1.15.0 tensorflow 1.15.0 tensorflow-estimator 1.15.1 tensorflow-probability 0.10.1 tqdm 4.46.1 wheel 0.37.1 zipp 3.8.1 ... 部分apt安装包列表: ca-certificates.noarch cmake.aarch64 compat-openssl10.aarch64 curl.aarch64 dos2unix.aarch64 gcc.aarch64 gcc-c++.aarch64 gdb.aarch64 gzip.aarch64 iproute.aarch64 iptables.aarch64 iptables-libs.aarch64 iputils.aarch64 libXext.aarch64 libXrender.aarch64 libbabeltrace.aarch64 libblkid.aarch64 libcap.aarch64 libcap-ng.aarch64 libgcc.aarch64 libssh.aarch64 make.aarch64 net-tools.aarch64 nettle.aarch64 nginx.aarch64 openssl.aarch64 openssl-libs.aarch64 openssl-pkcs11.aarch64 seccomponent.aarch64 security-tool.aarch64 tar.aarch64 unzip.aarch64 vim-minimal.aarch64 wget.aarch64 zip.aarch64 zlib.aarch64 zlib-devel.aarch64 ...
  • 引擎版本一:pytorch_1.8.1-cann_5.1.0-py_3.7-euler_2.8.3-aarch64 镜像地址:swr.{region_id}.myhuaweicloud.com/atelier/pytorch_1_8_ascend:pytorch_1.8.1-cann_5.1.0-py_3.7-euler_2.8.3-aarch64-d910-20220715093657-9446c6a 镜像构建时间:20220715093657(yyyy-mm-dd-hh-mm-ss) 镜像系统版本:euleros 2.8.3 cann:5.1.0 Python解释器路径及版本:/home/ma-user/anaconda3/envs/PyTorch-1.8.1/bin/python, python 3.7.10 三方包安装路径:/home/ma-user/anaconda3/envs/PyTorch-1.8.1/lib/python3.7/site-packages 部分pip安装包列表: Cython 0.29.14 Flask 2.0.1 grpcio 1.26.0 gunicorn 20.1.0 h5py 2.10.0 hccl 0.1.0 ipykernel 6.7.0 Jinja2 3.0.1 Keras 2.3.1 Keras-Applications 1.0.8 Keras-Preprocessing 1.1.2 lxml 4.4.2 matplotlib 3.5.1 matplotlib-inline 0.1.3 mmcv 0.2.14 modelarts-mindspore-model-server 1.0.4 moxing-framework 2.0.1.rc0.ffd1c0c8 numpy 1.21.2 opencv-python 4.2.0.34 pandas 0.24.2 Pillow 9.2.0 pip 22.1.2 protobuf 3.11.3 psutil 5.7.0 pycocotools 2.0.0 PyYAML 5.3.1 requests 2.27.1 scikit-image 0.17.2 scikit-learn 0.20.0 scipy 1.3.3 setuptools 63.1.0 Shapely 1.8.2 tensorflow-probability 0.10.1 torch 1.8.1+ascend.rc1.20220409 torch-npu 1.8.1rc1.post20220409 torchvision 0.9.1 tornado 6.2 tqdm 4.46.1 urllib3 1.26.10 wheel 0.37.1 zipp 3.8.1 ... 部分apt安装包列表: ca-certificates.noarch cmake.aarch64 compat-openssl10.aarch64 curl.aarch64 dos2unix.aarch64 gcc.aarch64 gcc-c++.aarch64 gdb.aarch64 gzip.aarch64 iproute.aarch64 iptables.aarch64 iptables-libs.aarch64 iputils.aarch64 libXext.aarch64 libXrender.aarch64 libbabeltrace.aarch64 libblkid.aarch64 libcap.aarch64 libcap-ng.aarch64 libgcc.aarch64 libssh.aarch64 make.aarch64 net-tools.aarch64 nettle.aarch64 nginx.aarch64 openssl.aarch64 openssl-libs.aarch64 openssl-pkcs11.aarch64 seccomponent.aarch64 security-tool.aarch64 tar.aarch64 unzip.aarch64 vim-minimal.aarch64 wget.aarch64 zip.aarch64 zlib.aarch64 zlib-devel.aarch64 ...
  • 引擎版本一:mindspore_1.7.0-cann_5.1.0-py_3.7-euler_2.8.3-aarch64 镜像地址:swr.{region_id}.myhuaweicloud.com/atelier/mindspore_1_7_0:mindspore_1.7.0-cann_5.1.0-py_3.7-euler_2.8.3-aarch64-d910-20220715093657-9446c6a 镜像构建时间:20220715093657(yyyy-mm-dd-hh-mm-ss) 镜像系统版本:euleros 2.8.3 cann:5.1.0 Python解释器路径及版本:/home/ma-user/anaconda3/envs/MindSpore/bin/python, python 3.7.10 三方包安装路径:/home/ma-user/anaconda3/envs/MindSpore/lib/python3.7/site-packages 部分pip安装包列表: Cython 0.29.14 Flask 2.0.1 grpcio 1.47.0 gunicorn 20.1.0 h5py 2.10.0 huaweicloud-sdk-python-modelarts-dataset 0.1.5 ipykernel 6.7.0 Jinja2 3.0.1 Keras 2.3.1 Keras-Applications 1.0.8 Keras-Preprocessing 1.1.2 lxml 4.4.2 matplotlib 3.5.1 mindarmour 1.7.0 mindinsight 1.7.0 mindspore-ascend 1.7.0 mmcv 0.2.14 modelarts-mindspore-model-server 1.0.4 moxing-framework 2.0.1.rc0.ffd1c0c8 numpy 1.21.2 opencv-python 4.2.0.34 pandas 1.1.3 Pillow 9.2.0 pip 22.1.2 protobuf 4.21.2 psutil 5.7.0 pycocotools 2.0.0 PyYAML 5.3.1 scikit-image 0.17.2 scikit-learn 0.24.0 scipy 1.5.4 setuptools 63.1.0 tensorboard 1.15.0 tensorflow 1.15.0 tensorflow-estimator 1.15.1 tensorflow-probability 0.10.1 tqdm 4.46.1 urllib3 1.26.10 wheel 0.37.1 zipp 3.8.1 ...
  • 引擎版本二:mindspore_1.7.0-cuda_10.1-py_3.7-ubuntu_18.04-x86_64 镜像地址:swr.{region_id}.myhuaweicloud.com/atelier/mindspore_1_7_0:mindspore_1.7.0-cuda_10.1-py_3.7-ubuntu_18.04-x86_64-20220702120711-8590b76 镜像构建时间:20220702120711(yyyy-mm-dd-hh-mm-ss) 镜像系统版本:Ubuntu 18.04.4 LTS cuda:10.1.243 cudnn:7.6.5.32 Python解释器路径及版本:/home/ma-user/anaconda3/envs/MindSpore/bin/python, python 3.7.10 三方包安装路径:/home/ma-user/anaconda3/envs/MindSpore/lib/python3.7/site-packages 部分pip安装包列表: cycler 0.11.0 easydict 1.9 Flask 2.0.1 grpcio 1.47.0 gunicorn 20.1.0 ipykernel 6.7.0 Jinja2 3.0.1 lxml 4.9.0 matplotlib 3.5.1 mindinsight 1.7.0 mindspore 1.7.0 mindvision 0.1.0 moxing-framework 2.1.0.5d9c87c8 numpy 1.17.0 opencv-contrib-python-headless 4.6.0.66 opencv-python-headless 4.6.0.66 pandas 1.1.5 Pillow 9.1.1 pip 22.1.2 protobuf 3.20.1 psutil 5.8.0 PyYAML 5.1 requests 2.27.1 scikit-learn 0.22.1 scipy 1.5.2 setuptools 62.6.0 sklearn 0.0 tensorboardX 2.0 threadpoolctl 3.1.0 tomli 2.0.1 tornado 6.1 tqdm 4.64.0 traitlets 5.3.0 treelib 1.6.1 urllib3 1.26.9 wheel 0.37.1 zipp 3.8.0 ... 部分apt安装包列表: apt ca-certificates cmake cuda curl ethtool fdisk ffmpeg g++ gcc git gpg graphviz libsm6 libxext6 libopencv-dev libxrender-dev libatlas3-base libnuma-dev libcap-dev libssl-dev liblz-dev libbz2-dev liblzma-dev libboost-graph-dev libsndfile1 libcurl4-openssl-dev libopenblas-base liblapack3 libopenblas-dev libprotobuf-dev libleveldb-dev libsnappy-dev libhdf5-serial-dev liblapacke-dev libgflags-dev libgoogle-glog-dev liblmdb-dev libatlas-base-dev librdmacm1 libcap2-bin libpq-dev mysql-common net-tools nginx openslide-tools openssh-client openssh-server openssh-sftp-server openssl protobuf-compiler redis-server redis-tools rpm tar tofrodos unzip vim wget zip zlib1g-dev ...
  • 引擎版本二: tensorflow_1.15.5-cuda_11.4-py_3.8-ubuntu_20.04-x86_64 镜像地址:swr.{region_id}.myhuaweicloud.com/aip/tensorflow_1_15:tensorflow_1.15.5-cuda_11.4-py_3.8-ubuntu_20.04-x86_64-20220524162601-50d6a18 镜像构建时间:20220524162601(yyyy-mm-dd-hh-mm-ss) 镜像系统版本:Ubuntu 20.04.4 LTS cuda:11.4.3 cudnn:8.2.4.15 Python解释器路径及版本:/home/ma-user/anaconda3/envs/TensorFlow-1.15.5/bin/python, python 3.8.13 三方包安装路径:/home/ma-user/anaconda3/envs/TensorFlow-1.15.5/lib/python3.8/site-packages 部分pip安装包列表: Cython 0.29.21 psutil 5.9.0 matplotlib 3.5.1 protobuf 3.20.1 tensorflow 1.15.5+nv Flask 2.0.1 grpcio 1.46.1 gunicorn 20.1.0 Pillow 9.0.1 tensorboard 1.15.0 PyYAML 6.0 pip 22.0.4 lxml 4.7.1 numpy 1.18.5 tensorflow-estimator 1.15.1 ... 部分apt安装包列表: apt ca-certificates cmake cuda curl ethtool fdisk ffmpeg g++ gcc git gpg graphviz libsm6 libxext6 libopencv-dev libxrender-dev libatlas3-base libnuma-dev libcap-dev libssl-dev liblz-dev libbz2-dev liblzma-dev libboost-graph-dev libsndfile1 libcurl4-openssl-dev libopenblas-base liblapack3 libopenblas-dev libprotobuf-dev libleveldb-dev libsnappy-dev libhdf5-serial-dev liblapacke-dev libgflags-dev libgoogle-glog-dev liblmdb-dev libatlas-base-dev librdmacm1 libcap2-bin libpq-dev mysql-common net-tools nginx openslide-tools openssh-client openssh-server openssh-sftp-server openssl protobuf-compiler redis-server redis-tools rpm tar tofrodos unzip vim wget zip zlib1g-dev ...
共100000条