本系列将利用阿里云容器服务的机器学习解决方案,帮助您了解和掌握tensorflow,mxnet等深度学习库,开启您的深度学习之旅。
第一篇: 打造深度学习的云端实验室
我们工作中常常会问到:“深度学习从哪里学起?” 在读过了大量的文章,看过了无数的教程后,许多朋友依然表示很无感。这其实很正常,因为纸上得来终觉浅么,绝知此事要躬行。为了帮助大家快速上手这一个机器学习分支,阿里云容器服务机器学习解决方案提供了丰富的开源框架帮助大家实践,其中包括tensorflow, keras和mxnet,为了方便您学习和掌握,我们会编写一系列的文章,介绍其中的细节。
本文是这个系列中的第一篇文章,我会在基于阿里云容器服务的机器学习解决方案,创建一套基于tensorflow的jupyter开发环境,并在上面开发一个简单minst应用,最后利用tensorboard观察训练效果。当然,你也可以在上面玩转包括 keras和mxnet等框架,在本文中我们也介绍了如何使用mxnet的例子。
jupyter notebook 是基于网页应用程序,你可以在上面以交互的方式编写和注释python代码。这是一种做试验,做研究,并分享工作内容的有效方法。

并且可以看到其中的数据卷。
登录到容器服务解决方案,在 <code>模型开发</code> 中点击 <code>创建</code>
这样,就可以看到一个表单。首先通过下拉框选择刚才创建的<code>集群名称</code>,点击<code>训练框架</code> ,这时可以看到一系列深度学习框架的列表,其中包括tensorflow, keras和mxnet的不同版本, 还可以指定python2和python3的版本,这里我选择tensorflow的1.0.0版本。
至于gpu数量,由于创建的是一个单gpu的集群,可以设置gpu为1. 如果你创建了cpu集群,就只能设置gpu为0.
这里,还要选择一下刚才创建数据卷,这个数据卷会映射到深度学习环境的<code>/input</code>目录。
因为jupyter有安全设置,需要指定一下访问密码。
最后,由于需要通过tensorboard监控训练效果,所以需要勾选上<code>训练监控</code>。
这里有一个很重要的知识点,就是<code>训练日志路径</code>,实际上这个路径是tensorboard读取训练日志的路径。假设你在这里指定的路径是<code>/output/training_logs</code>,你就需要在训练代码里写下这样的代码
之后就可以点击<code>创建</code>了。
一旦创建成功,就跳转到<code>应用列表</code>页面,这时可以在看到刚刚创建的应用, 单击应用名称进去。
单击 <code>路由列表</code>,就可以看到两个链接,分别是以 <code>jupyter</code>和<code>tensorboard</code>为开头的链接
单击<code>jupyter</code>开头的链接,并且输入 jupyter 的密码,就能进入 jupyter 环境。
首先在jupyter主页面中,创建terminal
在terminal里执行<code>nvidia-smi</code>,可以看到jupyter环境能使用gpu,剩下只需要在代码中加上gpu调用就好了
获得训练集与测试集数据,
文件
内容
<a href="http://yann.lecun.com/exdb/mnist/train-images-idx3-ubyte.gz">train-images-idx3-ubyte.gz</a>
训练集图片 - 55000 张 训练图片, 5000 张 验证图片
<a href="http://yann.lecun.com/exdb/mnist/train-labels-idx1-ubyte.gz">train-labels-idx1-ubyte.gz</a>
训练集图片对应的数字标签
<a href="http://yann.lecun.com/exdb/mnist/t10k-images-idx3-ubyte.gz">t10k-images-idx3-ubyte.gz</a>
测试集图片 - 10000 张 图片
<a href="http://yann.lecun.com/exdb/mnist/t10k-labels-idx1-ubyte.gz">t10k-labels-idx1-ubyte.gz</a>
测试集图片对应的数字标签
同时在jupyter的客户端也可以看到在<code>/input</code>文件夹已经有这些文件的列表了:
jupyter提供了上传代码的机制,但是如果需要使用一个项目,<code>git</code>是一个比较好的选择。
在termnial中执行<code>git clone https://github.com/cheyang/tensorflow-examples.git</code>
再回到jupyter的主页面,就可以看到下载的<code>tensorflow-examples</code>, 跳到<code>tensorflow-examples/notebooks/4_utils</code>,选择<code>tensorboard_basic.ipynb</code>
这样,就可以在jupyter中开发和运行mnist代码, 需要把tensorflow的训练日志路径,设置成前面指定的<code>训练日志路径</code>,对于本例子来说是<code>/output/training_logs</code>, 点击<code>run all</code>
由于在配置好gpu的tensorflow中,即使代码中没有明确指定运行设备也会优先选择gpu,通过查看日志我们可以发现,mnist训练实际上使用的是gpu资源。
回到应用的<code>路由列表</code>,点击其中<code>tensorboard</code>为开头的链接
这样我们就可以看到完整的训练效果展示, 包括loss的趋势,图片示例以及计算图
除了tensorflow,我们也支持mxnet等框架,以下是mxnet的例子
在创建mxnet的开发环境后,你也可以开发并且监控基于mxnet的深度学习应用
我们可以利用阿里云容器服务的机器学习解决方案,轻松的搭建在云端搭建tensorflow,mxnet和keras的环境,并且利用tensorboard追踪训练效果。
欢迎扫码加入钉钉群一起讨论: