打造深度学习的云端实验室

本系列将利用阿里云容器服务的机器学习解决方案,帮助您了解和掌握TensorFlow,MXNet等深度学习库,开启您的深度学习之旅。

  • 第一篇: 打造深度学习的云端实验室
  • 第二篇: GPU资源的监控和报警,支撑高效深度学习的利器
  • 第三篇: 利用TFRecord和HDFS准备TensorFlow训练数据

我们工作中常常会问到:“深度学习从哪里学起?” 在读过了大量的文章,看过了无数的教程后,许多朋友依然表示很无感。这其实很正常,因为纸上得来终觉浅么,绝知此事要躬行。为了帮助大家快速上手这一个机器学习分支,阿里云容器服务机器学习解决方案提供了丰富的开源框架帮助大家实践,其中包括TensorFlow, Keras和MXNet,为了方便您学习和掌握,我们会编写一系列的文章,介绍其中的细节。

本文是这个系列中的第一篇文章,我会在基于阿里云容器服务的机器学习解决方案,创建一套基于TensorFlow的Jupyter开发环境,并在上面开发一个简单Minst应用,最后利用TensorBoard观察训练效果。当然,你也可以在上面玩转包括 Keras和MXNet等框架,在本文中我们也介绍了如何使用MXNet的例子。

Jupyter notbook简介

Jupyter notebook 是基于网页应用程序,你可以在上面以交互的方式编写和注释Python代码。这是一种做试验,做研究,并分享工作内容的有效方法。

为什么要在阿里云上运行Jupyter?

深度学习应用基本都是计算密集型的,如果用你的笔记本可能要运行个三五天。而换成GPU的话,训练和预测的速度可能提升5到10倍。但是个人购买GPU卡并不合算,而阿里云最近推出了弹性GPU服务,可以按小时收费,给了我们寻常百姓一次可以和深度学习亲密接触的机会。Jupyter notebook 可以提供与本地计算机上运行相同的体验,同时也方便你利用阿里云上的GPU服务开启你的深度学习之旅,请和跟着我们的教程一步步开始吧!

准备数据卷和容器集群

需要创建容器集群,并且 创建数据卷。当然也可以使用 ROS 模板一键式的创建 GPU 容器集群并添加数据卷。这里我们就可以得到一个GPU集群,可以看到其中的GPU设备:

并且可以看到其中的数据卷。

体验云端创建开发环境

登录到容器服务解决方案,在 模型开发 中点击 创建

这样,就可以看到一个表单。首先通过下拉框选择刚才创建的集群名称,点击训练框架 ,这时可以看到一系列深度学习框架的列表,其中包括TensorFlow, Keras和MXNet的不同版本, 还可以指定python2和python3的版本,这里我选择TensorFlow的1.0.0版本。

至于GPU数量,由于创建的是一个单GPU的集群,可以设置GPU为1. 如果你创建了CPU集群,就只能设置GPU为0.

这里,还要选择一下刚才创建数据卷,这个数据卷会映射到深度学习环境的/input目录。

因为Jupyter有安全设置,需要指定一下访问密码。

最后,由于需要通过TensorBoard监控训练效果,所以需要勾选上训练监控

这里有一个很重要的知识点,就是训练日志路径,实际上这个路径是TensorBoard读取训练日志的路径。假设你在这里指定的路径是/output/training_logs,你就需要在训练代码里写下这样的代码

summary_writer = tf.summary.FileWriter('/output/training_logs')

之后就可以点击创建了。

一旦创建成功,就跳转到应用列表页面,这时可以在看到刚刚创建的应用, 单击应用名称进去。

单击 路由列表,就可以看到两个链接,分别是以 jupytertensorboard为开头的链接

单击jupyter开头的链接,并且输入 jupyter 的密码,就能进入 jupyter 环境。

查看Jupyter上的GPU

首先在Jupyter主页面中,创建Terminal

在Terminal里执行nvidia-smi,可以看到Jupyter环境能使用GPU,剩下只需要在代码中加上GPU调用就好了

上传Mnist训练数据

获得训练集与测试集数据,

文件 内容
train-images-idx3-ubyte.gz 训练集图片 - 55000 张 训练图片, 5000 张 验证图片
train-labels-idx1-ubyte.gz 训练集图片对应的数字标签
t10k-images-idx3-ubyte.gz 测试集图片 - 10000 张 图片
t10k-labels-idx1-ubyte.gz 测试集图片对应的数字标签

利用OSS的图形客户端用拉拽的方式非常方便的上传以上数据

同时在Jupyter的客户端也可以看到在/input文件夹已经有这些文件的列表了:

在Jupyter中开发和运行mnist代码

Jupyter提供了上传代码的机制,但是如果需要使用一个项目,git是一个比较好的选择。

在Termnial中执行git clone https://github.com/cheyang/TensorFlow-Examples.git

再回到Jupyter的主页面,就可以看到下载的TensorFlow-Examples, 跳到TensorFlow-Examples/notebooks/4_Utils,选择tensorboard_basic.ipynb

这样,就可以在Jupyter中开发和运行mnist代码, 需要把TensorFlow的训练日志路径,设置成前面指定的训练日志路径,对于本例子来说是/output/training_logs, 点击Run All

由于在配置好GPU的TensorFlow中,即使代码中没有明确指定运行设备也会优先选择GPU,通过查看日志我们可以发现,mnist训练实际上使用的是GPU资源。

使用TensorBoard查看训练效果

回到应用的路由列表,点击其中tensorboard为开头的链接

这样我们就可以看到完整的训练效果展示, 包括loss的趋势,图片示例以及计算图

除了TensorFlow,我们也支持MXNet等框架,以下是MXNet的例子

云端Jupyter环境开发MXNet的应用

对于MXNet我们同样也支持TensorBoard的展示,可以使用understanding_vanish_gradient.ipynb来测试一下

在创建MXNet的开发环境后,你也可以开发并且监控基于MXNet的深度学习应用

总结

我们可以利用阿里云容器服务的机器学习解决方案,轻松的搭建在云端搭建TensorFlow,MXNet和Keras的环境,并且利用TensorBoard追踪训练效果。
想了解更多的细节,欢迎访问机器学习解决方案, 里面提供了详细的介绍和完整的视频,是帮助你开启深度学习之旅的起点。

欢迎扫码加入钉钉群一起讨论:

时间: 2024-09-22 12:28:12

打造深度学习的云端实验室的相关文章

GPU资源的监控和报警,支撑高效深度学习的利器

本系列将利用阿里云容器服务的机器学习解决方案,帮助您了解和掌握TensorFlow,MXNet等深度学习库,开启您的深度学习之旅. 第一篇: 打造深度学习的云端实验室 第二篇: GPU资源的监控和报警,支撑高效深度学习的利器 第三篇: 利用TFRecord和HDFS准备TensorFlow训练数据 大家通过第一篇文章对深度学习技术有了感性的认知后,就开始关心如果真正希望用深度学习技术解决问题时,有哪些问题需要注意.这里分享一下深度学习训练过程中一些常见的问题以及对应的解决办法. 多数深度学习的模

IBM推出全新深度学习计算系统:搭配Nvidia Tesla P100 GPU

在 CEO 黄仁勋的带领下,Nvidia 早已成长为一家超脱显卡芯片制造领域的企业.它与 IBM 达成了一项"打造深度学习计算系统"的全新合作,并且推出了 Power System S822LC.通过Nvidia的NVLink架构,该服务器连结了双路八核(或十核)的 IBM Power8 CPU,以及高达四路的 Nvidia Tesla P100 GPU. 该公司称,在执行某些深度学习任务时,新系统可带来较同类服务器2x的性能. 据Nvidia和IBM所述,822LC的性能,与Nvid

打造云上深度学习实验室

云栖TechDay36期,来自阿里云技术专家必嘫带来题为"打造云上深度学习实验室"的演讲.本文主要从深度学习流程开始谈起,解释了深度学习应用构建的完整生命周期,进而分享了机遇与容器服务的深度学习解决方案架构,接着讲解了端到端的深度学习体验,最后作了简要总结.以下是精彩内容整理:   深度学习流程 目前,人工智能已经进入了深度学习时代, 利用GPU加上深度学习理论,构建了一个模型,从2010年开始ImageNet所有技术都是基于传统机器视觉技术来做的,当时的识别率最好也差不多是在75%左

数人云联合清华OCP实验室共建深度学习平台

<企业网D1Net>11月14日(北京)近日,数人云与清华大学交叉信息研究院开放计算项目实验室(OCP实验室)合作共建深度学习平台,该平台通过数人云操作系统实现GPU资源共享,利用Docker技术交付深度学习的运行环境,让深度学习项目组师生可以更加灵活地使用GPU资源,并解决深度学习环境部署繁琐的问题. 深度学习算法的计算性能依赖强大的GPU计算能力,为了尽可能提高GPU资源利用率,数人云利用Mesos将GPU资源汇聚成资源池实现资源共享,并借用Docker交付深度学习的运行环境. 深度学习平

让AI走出实验室:FPGA+CPU,英特尔为机器/深度学习加大筹码

一场"数据洪流",让英特尔对公司定位有了重新审视,从芯片公司摇身一变"数据公司".如果说数据是"新石油",那么英特尔要干的就是提炼加工过程,如何让数据创造增值,人工智能成为英特尔驾驭"数据洪流"的强大引擎. 事实上,英特尔正在坚定不移的加快其在AI领域的步伐.数据洪流是AI爆发的基础,而AI架构却凝聚了英特尔更多注意.尽管当前,借助"数据战略",英特尔极力尝试从芯片公司固有形象中挣脱出来,但AI却又释放一次

Caffe作者贾扬清,教你如何打造优秀的深度学习架构

雷锋网按:本文作者贾扬清,拥有加州大学伯克利分校计算机科学博士学位.清华大学硕士学位和学士学位,曾于新加坡国立大学.微软亚洲研究院.NEC美国实验室.Google Brain工作,现任Facebook研究科学家,负责前沿AI平台的开发以及前沿的深度学习研究. 在伯克利期间开发了深度学习框架Caffe,在Google期间参与了ImgeNet2014比赛.TensorFlow平台的开发.基于深度学习的产品开发和产品咨询等.在AI领域有数年的研究经历. 在深度学习领域,Caffe框架是人们无法绕过的一

Facebook人工智能实验室负责人讲深度学习

注:国外媒体发表文章对Facebook人工智能实验室负责人伊恩•勒坤(Yann LeCun)进行评述,文章谈及勒坤所研究的卷积神经网络对人工智能产生深远影响,潜力不容小觑.此外还介绍了他开发的书写数字识别系统LeNets以及他对反向传播算法的研究成果,并对深度学习的前景进行评析. 以下为文章主要内容: 马克•扎克伯格精心挑选了深度学习专家伊恩•勒坤担任Facebook人工智能实验室的负责人.该实验室于去年年底成立.作为纽约大学任教已久的教授,伊恩•勒坤对深度学习(deep learning)的研

云端深度学习框架TensorFlow读取数据IO的高效方式

低效的IO方式 最近通过观察PAI平台上TensoFlow用户的运行情况,发现大家在数据IO这方面还是有比较大的困惑,主要是因为很多同学没有很好的理解本地执行TensorFlow代码和分布式云端执行TensorFlow的区别.本地读取数据是server端直接从client端获得graph进行计算,而云端服务server在获得graph之后还需要将计算下发到各个worker处理(具体原理可以参考视频教程-Tensorflow高级篇:https://tianchi.aliyun.com/compet

阿里云携英伟达 建实验室拓展深度学习

本文讲的是阿里云携英伟达 建实验室拓展深度学习1月20日,2016云栖大会上海峰会在上海科技馆召开.全球领先的云计算服务提供商阿里云和全球视觉计算的行业领导者NVIDIA(英伟达)签署战略合作协议,双方将共同推广阿里云高性能计算平台HPC,大力拓展深度学习市场,并建立联合实验室,进行高性能计算领域相关技术的联合攻关. 阿里云HPC于去年底正式对外商用,每个计算节点配备2颗专属NVIDIA Tesla K40 GPU和2颗CPU.用户可通过阿里云官网(www.aliyun.com/product/