请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册
搜索

利用阿里云容器服务进行深度学习模型开发和训练

深度学习这两年越来越热门,也有越来越多的人来尝试,但是个人的PC一般计算能力有限,而GPU服务器又太贵,因而需要学习使用GPU做深度学习的,可以使用阿里云的容器服务。(不建议长期租用阿里云GPU服务器,性价比远远小于自己搭建GPU服务器)
我们这次教程的目的是在阿里云上创建容器,并利用Jupyter-Notebook来开发深度学习模型并进行训练,总共分为如下几个步骤:
1. 注册阿里云账号并充值:这里,为了确保正常使用阿里云服务,先保证账户余额大于100。

利用阿里云容器服务进行深度学习模型开发和训练-1.jpg
2. 申请开通专有网络VPC:后面创建容器集群的时候,我们需要先有虚拟专有网络,因而在正式开始创建容器集群之前,我们先创建专有网络VPC。
这里华北1是青岛,华北2是北京,华北3是张家口,华北5是呼和浩特,由于我们地处北京,因而选择华北2,然后点击右上角创建专有网络

利用阿里云容器服务进行深度学习模型开发和训练-2.jpg
为我们的专有网络起一个名字,点击右下角创建。

利用阿里云容器服务进行深度学习模型开发和训练-3.jpg
创建成功后,点击下一步配置交换机。

利用阿里云容器服务进行深度学习模型开发和训练-4.jpg
交换机设置好后就大功告成。

利用阿里云容器服务进行深度学习模型开发和训练-5.jpg

利用阿里云容器服务进行深度学习模型开发和训练-6.jpg
3. 创建对象存储OSS:我们这一步的主要目的是想在云上开发模型的时候,能用到自己的数据,因而需要先创建对象存储,然后把数据上传到OSS上,最后在训练深度学习模型的时候可以直接读取我们的数据,并把训练好的模型权重等保存到OSS上。
首先我们在控制台中进入”对象存储OSS“,然后我们新建一个bucket。

利用阿里云容器服务进行深度学习模型开发和训练-7.jpg
填写好配置后,点击确定。

利用阿里云容器服务进行深度学习模型开发和训练-8.jpg
创建好后,我们就有了一个名为“example-data”的bucket。后面在创建容器集群的时候,可以选择调用这个对象存储的数据。

利用阿里云容器服务进行深度学习模型开发和训练-9.jpg
4. 创建容器集群:在上面的工作都完成后,我们就可以创建容器集群来进行深度学习模型开发和训练了。
首先,在产品于服务中找到左边的容器服务。

利用阿里云容器服务进行深度学习模型开发和训练-10.jpg
我们接下来创建一个集群。

利用阿里云容器服务进行深度学习模型开发和训练-11.jpg
选择集群名称,集群地域,这里需要提示的是,同一个地域中不同区可能能使用的服务不同,可以在多个区中尝试一下。

利用阿里云容器服务进行深度学习模型开发和训练-12.jpg
设置网络,这里使用我们之前创建的专有网络和交换机。

利用阿里云容器服务进行深度学习模型开发和训练-13.jpg
然后创建节点,节点就是我们容器服务具体跑的时候机器的配置。

利用阿里云容器服务进行深度学习模型开发和训练-14.jpg
我们也可以创建GPU计算节点,当然这次是示例,就不浪费钱去租GPU服务器了。

利用阿里云容器服务进行深度学习模型开发和训练-15.jpg
最后选择其他的一些配置。

利用阿里云容器服务进行深度学习模型开发和训练-16.jpg
回到最上面点击创建,会跳出来最终确认以及收费标准,这里使用CPU计算节点费用还是很低的,GPU的话,就要差一两个量级了。我们的付费方式是按量付费,在不使用的时候可以把节点停用或是删除。

利用阿里云容器服务进行深度学习模型开发和训练-17.jpg
创建需要一定的时间,大概几分钟。

利用阿里云容器服务进行深度学习模型开发和训练-18.jpg
创建好之后,我们就能查看到集群的运行状体,这里显示是正常运行。

利用阿里云容器服务进行深度学习模型开发和训练-19.jpg
同样,查看刚才创建的CPU计算节点也是正常。

利用阿里云容器服务进行深度学习模型开发和训练-20.jpg
然后我们创建数据卷,数据卷的作用前面也提到过,就是结合OSS对象存储,让我们在开发和训练模型的时候,能调用自己上传的数据,同时也能保存结果并通过OSS下载到本地。

利用阿里云容器服务进行深度学习模型开发和训练-21.jpg
我们填写一些相关的配置,访问域名选择VPC域名就可。

利用阿里云容器服务进行深度学习模型开发和训练-22.jpg
最后完成数据卷的创建,我们这一部分的工作就完成了。

利用阿里云容器服务进行深度学习模型开发和训练-23.jpg
5. 开发和训练神经网络模型
这一部分,我们使用 aymericdamien/TensorFlow-Examples 中的卷积神经网络手写体识别为例,使用jupyter-notebook运行tensorflow。
首先,我们做好准备工作,就是把手写体识别的数据上传到OSS对象存储中。我们打开OSS客户端。

利用阿里云容器服务进行深度学习模型开发和训练-24.jpg
然后选择我们之前创建的bucket,现在还没有数据。

利用阿里云容器服务进行深度学习模型开发和训练-25.jpg
将我们模型需要的数据上传。

利用阿里云容器服务进行深度学习模型开发和训练-26.jpg
数据准备好之后,就可以去创建我们深度学习的应用了。在处理方案中的模型开发,点击创建。

利用阿里云容器服务进行深度学习模型开发和训练-27.jpg
需要填写一些设置,这里要注意的是数据来源,选在我们创建集群的时候创建的数据卷,这样就可以直接调用我们刚才上传的数据。

利用阿里云容器服务进行深度学习模型开发和训练-28.jpg
点击确定之后,同样需要一段时间来创建应用。

利用阿里云容器服务进行深度学习模型开发和训练-29.jpg
应用部署完成后,我们在“应用”中就能找到我们刚才创建的手写体识别应用,然后点击应用名进入。

利用阿里云容器服务进行深度学习模型开发和训练-30.jpg
进入之后我们可以查看一些相关的信息,在路由列表中可以找到jupyter-notebook的访问地址,点击地址进入。

利用阿里云容器服务进行深度学习模型开发和训练-31.jpg
进入后,就可以发现,跟我们平常使用的jupyter-notebook没有什么区别,输入刚才设置的密码就可进入控制台。

利用阿里云容器服务进行深度学习模型开发和训练-32.jpg
在控制台中,我们先进入一个命令行终端,查看一下我们的数据。

利用阿里云容器服务进行深度学习模型开发和训练-33.jpg
这里需要说明一下,数据卷的内容可以通过/input来访问,因而我们上传的数据就是在/input文件夹下。

利用阿里云容器服务进行深度学习模型开发和训练-34.jpg
最后我们就能跟平常一样使用jupyter-notebook来进行模型开发和调试,这里还是需要说明,我们读取数据的时候,路径要使用/input/。

利用阿里云容器服务进行深度学习模型开发和训练-35.jpg

利用阿里云容器服务进行深度学习模型开发和训练-36.jpg

利用阿里云容器服务进行深度学习模型开发和训练-37.jpg

利用阿里云容器服务进行深度学习模型开发和训练-38.jpg
由于用CPU训练时间较长,这里就不继续了。最后还要强调的是,不使用的时候除了删除应用,建议直接删除节点和集群,不然会一直计费。
除了这次的简单例子,平常需要大规模训练的时候会用到GPU,GPU使用跟CPU没有太大的差别,可以参考这一篇教程:
打造深度学习的云端实验室-博客-云栖社区-阿里云
现在深度学习应用中很大程度是拼各家的计算能力,而GPU服务器昂贵的价格,限制了大家尝试使用GPU的机会,而阿里云提供了GPU弹性计算的服务,我们可以按照计算计费时间租用GPU服务,使用较少的资金尝试使用GPU进行深度学习计算。(当然需要说明的是,长期租用阿里云GPU服务器性花费巨大,性价比远没有自己搭建GPU服务器划算)
回复

使用道具 举报

大神点评4

hhsailor 2018-11-3 15:45:09 显示全部楼层
厉害了
回复

使用道具 举报

NhkmPUSb 2018-11-3 15:45:24 显示全部楼层
非常棒
回复

使用道具 举报

qingwa_fox 2018-11-3 15:45:56 显示全部楼层
全国哪都可以租用吗?
回复

使用道具 举报

OaDxMSLH 2018-11-3 15:46:44 显示全部楼层
请问这个部署完后,基本的深度学习框架都有吗?还是得自己重新配置cuda,cudnn以及常用的深度学习框架?还有,我可以基于这个基础上进行web配置吗,比如apache,flask之类的,想把深度学习模型部署并可视化,谢谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册