| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Python知识库 -> ModelArts(一)——从快速入门到远程开发 -> 正文阅读 |
|
[Python知识库]ModelArts(一)——从快速入门到远程开发 |
ModelArts(一)——从快速入门到远程开发引言关于ModelArts,你可能没有听说过很多。但是,你一定知道,云计算在现在日新月异的发展中有不可动摇的地位。你也一定知道notebook这款python应用在python编程中的重大作用,你也听说过人工智能中图片可以轻易的被计算机识别,效率大大高过人类;你也了解到Python可以进行智能预测,各项回归算法可以预测经济、新冠等的未来发展趋势。ModelArts就能够把云计算和我们熟知的jupyter结合起来,让我们仅仅使用浏览器就可以运行各样的Python程序,还能训练自己的算法和模型,让你在十五分钟左右就能完成一个简单的图像分类,今天就让我们从入门走向算法训练师! 一、小白入手ModelArts连Python都不熟,我能用modelarts吗?当然可以。 1、准备工作1.1创建自动学习项目进入modelarts官网,点击管理控制台 点击自动学习 我们去创建一个自动学习:图像分类项目。 自定义名称,这个时候就需要找点数据集。 没有桶的话,新建桶即可。为了让小白也能轻松上手,在这里演示一下,看官大佬们可自行跳过。 1.2创建桶并上传数据集选择新建桶。 多AZ存储能提高您的数据可用性,同时会采用相对较高的计费标准。由于桶存储是按需计费,我们的训练图片较少,这里选择多AZ存储即可。 配置信息:
立即创建。 单击进入新创建的桶nice-photos查看详情。 点击对象,新建文件夹后上传对象。 新建文件夹input和output 进入到input文件夹,上传文件。 这里我们选择标准存储,上传从搜索引擎找到的鲸鱼和麻雀图片。如何利用爬虫查找图片,可参阅本人另一篇小短文Python批量自动下载获取图片。 本地自定义一个路径,运行如下python代码:
选择常用的数据集分割方法,训练集:验证集≈2:1,选择120,3150为训练集,其余作为验证集,上传到input,output作为空文件夹输出。 注意:此处不要选择加密,否则会出现训练无法读取数据的情况。 上传完成后,回到创建图像分类项目的界面,选择输入输出位置为刚刚上传的训练集和验证集,创建项目。至此,准备工作完成。 2、开始训练2.1标注数据集刚刚上传的数据是未标注的,下面我们就来标注这些数据集。 enter添加标签:鲸、麻雀 选中其中所有为鲸的图片,标注为鲸,其余标注为麻雀。 标注完成,开始训练! 2.2训练数据集点击开始训练,训练规格作为测试,免费学习即可,注意填入自己设定的训练集比例。 提交,耐心等待训练, 训练状态从发布中转为了训练中 训练完成,时长两分钟,准确率100%,非常可人。 2.3部署模型提交,稍事等待。 部署成功,我们来测试一下。上传除训练集以外的图片,观察右侧输出结果。 预测准确度非常好。 2.4linuxAPI调用测试使用curl命令发送预测请求的命令格式也分为文件输入、文本输入两类。
二、Python上手ModelArts1、准备数据1.1创建桶参考实验步骤一中1.2创建桶,配置如下 ①复制桶配置:不选 ②区域:华北-北京四 ③ 数据冗余存储策略:单AZ存储 ④桶名称:自定义即可(需要记住此名称以备后续步骤使用) ⑤ 存储类别:标准存储 ⑥桶策略:私有 ⑦ 默认加密:关闭 ⑧归档数据直读:关闭 然后新建一个文件夹data 1.2创建notebook在ModelArts控制台左侧,点击开发环境下的Notebook,点击创建,配置如下: ①名称:自定义 ②自动停止:根据自己需要时间设置 ③镜像:公共镜像-pytorch1.4-cuda10.1-cudnn7-ubuntu18.04 ④资源池:公共资源池 ⑥类型:CPU ⑦规格:CPU:2核心8GB ⑧存储配置:默认存储 ⑨SSH远程开发:关闭 配置好后提交,返回,直到notebook状态变为运行中。 1.3创建Notebook Python开发环境点击“打开”进入Notebook,如果习惯旧版本的Notebook,可以点击返回旧版,这里新版本打开的是jupyter Lab。这里再次演示一下旧版本如何设计。 单击返回旧版,点击创建 选择multiengine2.0 选择对象存储服务,配置如下: 提交,返回Notebook列表 状态变为运行中,打开,进入华为云远程jupyter界面,选择新建一个TensorFlow-2.1.0 点击untitle,重命名 测试有关功能 2、Python代码实现创建好了Notebook环境,接下来就跟我们平时的实验操作是一样的了。 我们来验证一下。 简单输出 3、新版Jupyter Lab体验最新版的已经可以打开Lab界面 启动后单击打开 点击Python3.7.10即可新建Notebook 进行基本操作完全没有问题 文件读写操作,可以看到旁边生成了文件。 拖拽可以上传文件,非常方便。 三、自动学习强化学习需要自己上传数据集。遵守有关规范。 1、图像分类1.1数据准备数据集要求
OBS上传文件规范
那这次我们就下载猫、狗、麻雀、鲸各100张 我已经编写好了一段代码供大家使用。mkdir一个路径用于存放图片,然后运行即可。
起始编号分别设置为1 101 201 301共400张图片。 把利用代码下载好的图片和标注归到一个文件夹dataset-animals。 比较过瘾的400个数据。 上传到obs,而一次只能上传100个。官网说上传文件较多,使用OBS Browser+,那我们下载了试试。win64下载地址:OBSBrowserPlus-win64,其余下载请参考下载OBS Browser+ 解压运行 安装完成后,利用AK/SK登录。 直接添加文件夹,这样就很爽。 1.2创建项目ModelArts控制台,自动学习-图像分类创建项目 配置如图。 需要稍等,会自动根据txt文件标注数据集 全部标注完成。 1.3训练模型并部署上线开始训练。默认配置即可。 训练完成,部署上线 上传图片进行检验,效果很好。 2、物体检测2.1准备数据数据集需要有xml文件标注,或者未经标注需要现场标注。xml格式参考准备数据_AI开发平台ModelArts_自动学习_物体检测_华为云 (huaweicloud.com) 这里我们选择上传图片后再标注。 我们从网上下载100张海鸥图片。 2.2标注数据上传50张进行标注 创建物体检测项目 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NeTbyrTX-1643000810083)(C:%5CUsers%5C25122%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5Cimage-20220122221959341.png)] 挨个标注 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2aZh4cMl-1643000810084)(https://gitee.com/qmckw/pic/raw/master/PicGO-updata-img/202201222230753.png)] 好了,全部变成了已标注,我们同步一下数据集 2.3训练并发布部署 变为运行中后,选择后50个海鸥图片开始测试 不错,识别比较准确。 3、预测分析3.1准备数据我们使用鸢尾花数据集,下载链接http://download.tensorflow.org/data/iris_training.csv 有关鸢尾花数据集的更多信息,可以看我的这篇笔记鸢尾花数据集的各种玩法_kewei chen-CSDN博客 训练数据的csv文件不能包含表头,否则会导致训练失败。 因此我们删除第一行。在excel里,光标移到1行上,右击删除即可。 输入数据的格式必须为csv格式,数据文件不包括表头,有效数据行数必须大于100行。列数必须小于200列,数据总大小不能超过100MB。 3.2创建项目注意:当前由于特征筛选算法限制,标签列必须是数据集的最后一列。模型训练将会使用全部数据训练预测模型,该模型以其他列的数据为输入,以标签列的预测值为输出。 配置完成,开始训练。 3.3结果预测键入以下内容
输出为0,即代表Setosa 4、声音分类数据准备 浏览记录 :: 第1页 :: 异种-canto (xeno-canto.org) 我们在这里,可以下载公益组织上传的鸟类声音。 利用如下代码,可以把文本转为人声
使用以下代码,把mp3声音转为wav文件。
m4a转wav
最后那几个是用计算机合成的人声。其他的都是鸟类声音数据集。 登录我的obs控制台 上传。 创建声音分类项目。 进行批量标注 开始训练 模型部署 数据集小了,拟合效果还不够好。 增加数据集数目后,效果好多了。 5、文本分类我们使用中文数据集:链接 https://thunlp.oss-cn-qingdao.aliyuncs.com/THUCNews.zip 模仿上述自动学习步骤即可,此处不在赘述。 四、进阶体验1、一键完成商超商品识别模型部署订阅模型:商超商品识别 (huaweicloud.com),前往控制台 部署为在线服务 配置如下,提交 在在线服务详情界面,点击预测 点击上传,我上传了一张西瓜,预测结果如下 可以看见,输出结果为西瓜,占了绝对优势。 上传的苹果,给我预测成了石榴。。。 下面是香蕉 2、一键运行Notebook实现工地钢筋盘点进入案例界面基于计算机视觉的钢筋条数检测 (huaweicloud.com) Run in modelarts 等待右上角链接完成 链接成功,切换规格 选择限时免费的GPU,等待切换 切换完成后,直接run即可 还可以一键自动运行 3、使用自动学习0代码开发图像分类AI模型3.1下载数据集进入AI Gallery,在“资产集市”>“数据”页面找到四类花卉图像分类小数据集,单击右侧“下载”。 配置如图 3.2创建图像分类项目进入ModelArts控制台,在左侧导航栏选择“自动学习”>“图象分类”,单击“创建项目”。 配置如图 开始训练 配置如图,训练完成后部署 模型变成了运行中 上传玫瑰进行预测,准确度蛮高 雏菊 使用完成后,选择停止 4、使用订阅算法构建模型实现花卉识别我们这次仍然以花卉识别为例,参考步骤{(四)3.1}下载数据集 将数据集下载:四类花卉图像分类小数据集 (huaweicloud.com) 下载到空目录:/test-modelartsz/dataset-flower/ 数据集下载后,记住下载路径,订阅识别算法图像分类-ResNet_v1_50 (huaweicloud.com) 提交 点击名称,进入详情界面,等待完成。 完成后,点击右上角创建AI应用。 全部为默认即可,立即创建。 部署为在线服务 配置如下 等待部署完成 点击预测,选择上传 当然也有预测不准的时候,比如这个玫瑰给我搞成100%的雏菊。。。 上面这个还比较合理。 不需要训练后,可以点击右上角的停止。 5、使用自定义算法构建模型(手写数字识别)5.1准备数据点此下载数据集:数据集下载链接 解压后如图 进入对象存储服务,选择桶。新建一个文件夹,取名test-modelarts-cz/dataset-mnist,会自动生成子路径。 上传**“Mnist-Data-Set”**数据集 去gitee下载modelarts的工程zipModelArts-Lab 在新建的路径上传对象,上传,不要加密。 再新建两个文件夹mnist-tensorflow-code和mnist-model,存放脚本和模型。 下载完成后,解压缩“ModelArts-Lab-master.zip”文件,然后在“\ModelArts-Lab-master\official_examples\Using Custom Algorithms to Build Models on ModelArts\codes”目录中获取到训练脚本“train_mnist_tf.py”、推理代码“customize_service.py”和配置文件“config.json”,并上传至对应OBS路径。上传文件至OBS的操作指导请参见上传文件。
默认下载路径:C:\Users\25122\Downloads\ModelArts-Lab-master\official_examples\Using Custom Algorithms to Build Models on ModelArts\codes 先上传第一个,后两个先不传。 5.2创建算法并训练modelarts控制台-算法管理-我的算法-创建 配置如下图 提交即可。 ModelArts管理控制台>训练管理 > 训练作业(New)>创建 参数配置:
5.3部署AI应用推理代码“customize_service.py”和配置文件“config.json”并上传至OBS路径test-modelarts-cz/mnist-model/model中,请查看前面我们的表格。此推理代码和配置文件为ModelArts为操作样例提供的示例。也可以基于模型包规范,开发自己所需的推理代码及配置文件。 ModelArts控制台 AI应用 配置如图 部署为在线服务 配置如图,其余默认。 等待部署完成 开启预测 和样例(点击另存为)[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IKgLHkOE-1643000810133)(https://support.huaweicloud.com/qs-modelarts/zh-cn_image_0000001215589667.png)]吻合很好,但是和自己写的就不怎么行了。 至于为什么不行,本人有一篇小文说明原因:mnist模型为何识别咱自己写的字就不行?_kewei chen-CSDN博客 测试完成后,停止应用作业。 6、使用PyCharm ToolKit在本地进行云上训练(手写数字识别)在Pycharm中的插件,安装HUAWEI ModelArts 单击ToolKit工具的下载地址 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qjkcaSfL-1643000810135)(https://support.huaweicloud.com/qs-modelarts/zh-cn_image_0250172229.png)] [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WQLolGZE-1643000810135)(https://support.huaweicloud.com/qs-modelarts/zh-cn_image_0000001175291280.png)] [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rNnU7drJ-1643000810136)(https://support.huaweicloud.com/qs-modelarts/zh-cn_image_0000001175131316.png)] 重启。 之后就可以看到顶部有modelarts这一栏了。 点击第一行edit credential 即可把自己的AKSK输入 点击OK,可以看到右下角的提示信息SUCCESS。 下载mnist数据集数据集下载链接 解压,上传至“test-modelarts/dataset-mnist”OBS路径下 obs控制台,对象 克隆/下载gitee的ModelArts-Lab工程ZIP 下载完成后,解压缩“ModelArts-Lab-master.zip”文件,然后在“\ModelArts-Lab-master\official_examples\Using_MXNet_to_Create_a_MNIST_Dataset_Recognition_Application\codes”目录中获取到训练代码“train_mnist.py”。 打开PyCharm工具,单击**“File > New Project”**创建新工程, 在工程目录下创建“src”文件夹,并将训练代码文件“train_mnist.py”拷贝到“src”文件夹下。 在PyCharm工具栏中,选择**“ModelArts > Edit Training Job Configuration”** 配置如图。 训练完成。 右侧的信息提示我们去WEB端控制台看日志。 我们去modelarts控制台,训练作业旧版看。 这就是我们刚刚训练的。点击名称查看详情。 日志让我们去找log。 我们在本地也可以看到同样的信息。 这里超过max log length,应该是我把项目名称起太长了。 根据提示,我们在obs控制台的对象中找到log 点击下载 我们看到了最后的成功信息。 我们在pycharm的左侧栏,单击ModelArts Explorer 第一版配置出现了一些错误,把AI引擎选错了,选成了TensorFlow,应该是MXNet,因此我们查看,对比两个版本 训练作业生成的模型存储在“test-modelarts/mnist-output/MA-mnist-11-30-16/output/V0002(根据自己版本决定)”路径下(其中MA-mnist-11-30-16是Job Name,笔者在配置时填写了自定义Job Name,则路径中就是自定义的Job Name),且系统将自动生成“model”文件夹,模型相关的文件存储在此目录下。将获取的“customize_service.py”和“config.json”(在\ModelArts-Lab-master\official_examples\Using Custom Algorithms to Build Models on ModelArts\codes)文件,上传至OBS的“model”文件夹下。 现在,在pycharm控制台,将其部署为在线服务。 “Environment Variables”:填写运行参数,设置为“input_data_name=images;input_data_shape=0,1,28,28;output_data_shape=0,10” 配置如图 部署完成后,会自动弹出链接。点击即可进入测试,也可以在控制台的在线服务中找到。 下面我们开始预测工作,注意mnist模型需要黑底白字,使用windows画图制作几张即可。 糟糕,预测超时了。 查看日志 报了一个路径不存在的错。 为什么呢?可能是上线的时候出了问题。 发现了问题的所在:模型路径错了,不应该是Using Custom Algorithms to Build Models on ModelArts,而是\ModelArts-Lab-master\official_examples\Using_MXNet_to_Create_a_MNIST_Dataset_Recognition_Application\codes 重新来V0003,训练完成 上传,部署配置如图 开始部署,部署完成。 可以了,预测成功。 预测成了8,把5的概率预测的那么小。。。 成功,不错! 最后,我们清除响应资源。 停止在线服务 五、开发工具体验——远程开发1、配置本地IDE(PyCharm ToolKit连接)新建一个notebook实例 创建实例后,新建一个notebook 在(四)6中已安装ToolKit的条件下,点击config [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aiPG49lD-1643000810178)(C:%5CUsers%5C25122%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5Cimage-20220124100254048.png)] 选择我们刚刚创建的Conatiner apply后需要重启,首次约需20min进行update python interpreter 链接成功后,右击即可stop 单击即可链接 开启自动上传 可以选择远程python解释器 首次需要约20min更新解释器 上传后,我们可以看到如图所示的工程文件已经在云端了。 可以直接在本地运行,在控制台可以看到有关信息。 我们也可以断点调试,并且读出每一步变量的情况。 2、配置本地IDE(PyCharm手动连接)手动SSH连接需要下载Pycharm专业版。 创建一个notebook实例 在百度上查询自己的ip地址,配置ssh远程开发 在实例详情界面,查看实例链接和端口 在Pycharm中,选择File -> Settings -> Tools -> SSH Configurations,单击+号,增加一个SSH连接配置。 根据地址填写配置如图,选择密钥对方式连接,进行测试 可以进行重命名,起个好听的名字。 然后,单击“Tools > Start SSH Session”,进入虚拟开发环境。 选择刚刚起好名字的notebook-kewei
执行上面这个命令查看有关配置。 我们的notebook有两个环境,执行右侧的source命令可以进入具体环境。 执行which python查看python路径并拷贝出来,以备后续配置云上Python Interpreter使用
跟我们命令行的一般操作是一样的。 我们也可以像上一步一样,新建py或者ipynb文件,进行远程开发。 3、VScode远程开发安装vscode:Windows用户直接单击此处下载:https://update.code.visualstudio.com/1.57.1/win32-x64-user/stable。 其他系统用户的下载地址: https://code.visualstudio.com/updates/v1_57 配置python解释器详见VSCode官方指导。 下载ToolKit工具包下载链接 右下角提示安装完成。点击ModelArts图标登录。AKSK我们已经用到多次,不在赘述。可参考:参考链接 开启了远程连接的,我们会看到状态 初次登录需要选择密钥对。 建议把keypair文件放到c/user/{{username}}下 vscode中,选择远程系统为Linux系统 左下角显示为具体的notebook实例名称,表示已经连接成功了。 打开文件件->确定 左侧会显示目录结构 配置python解释器 启动运行和调试。 在远程控制台也可以看见我们刚刚创建的文件 4、手动配置VScode远程开发安装vscode的ssh插件 进行远程配置
单击“File > Preference > Settings > Extensions > Remote-SSH”, 在“Remote Platform”中,单击“Add Item”选项,设置**“Item”和“Value”**,配置完成后,单击“OK” 在SSH控制界面,单击此处 连接成功 安装云端Python插件 可以在云端安装常用的依赖库。比如常用的NLP处理包spacy。
5、本地工具ssh远程开发创建一个ssh远程开发的实例。 下载并安装SSH远程连接工具,以PuTTY为例,下载链接。 使用puttygen将密钥对.pem文件转成.ppk文件
点击save,即可保存配置,下次可以直接使用 Translation:UTF-8 填写用户名,必须为ma-user 打开刚刚制作的ppk密码文件。 之后选择右下角open 选择accept 成功连接到notebook实例。 cd到work目录下,创建一个python文件 运行成功。 小结通过这次的实战演练,我们学会了基础的notebook操作,可以在云端实现jupyter lab愉快编程。在自动学习中的图像、声音、文本分类和预测,我们体会到了低代码运作的乐趣,短短十几分钟就可以做一个自己的物体识别程序。在远程开发中,我们可以用自己熟悉的Pycharm、vscode进行开发和程序设计,同时又能接触云上的算力,为我们的代码插上翅膀。这次体验,真是体会到了ModelArts的无限乐趣。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/16 2:44:43- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |