在云上玩深度学习

在云上玩深度学习

1. 为什么我要在云上玩深度学习?

人工智能随着Alpha-Go的轰动效应以及各大互联网巨头的高调追捧,迅速成为人们关注的焦点。本人有幸一直从事图像内容理解方面的研究和开发工作,对于计算机视觉、机器学习以及最近大热的深度学习都有一些理论基础和实践经验。虽然这些技术都非常有价值,个人也非常喜欢钻研,但是之前从来没觉得会成为今天这样的“鸡血”,能让全世界都兴奋起来。直到最近,一些搞APP前端开发、测试甚至刚刚开始学计算机编程语言的朋友都开始在问我相关的问题,准备自己体验一下训练个模型是啥感觉的时候,我真的体会到了人工智能已经让所有人躁动起来了。不管出于什么目的,大家的热情对于人工智能最终成为现实是有积极意义的。我出于帮朋友的目的,希望给他们找一条方便快捷的得到成就感的路线。
云,真是个好东西。“云+人工智能”是我最看好的模式。在这里我又要佩服阿里的眼光。云提供无处不在的运算能力,人工智能借力云计算,可以更便捷的为需要的人提供服务。
为了践行自己的观点,也为了让大家能够体验“云+人工智能”的力量,我带大家在云端玩一把深度学习。之所以称之为“玩”,是因为这次纯属入门级别,不涉及理论创新,不涉及技术革新,能把现有的东西run起来就好。
我有句话一直想说:“不要以为能够跑起几个深度学习的demo就以为自己懂了。还早着呢!”我还有一句话一直想说:“不要以为懂深度学习就了不起,它终将成为一个人人唾手可得的工具!”
走起!

2. 内容提要

  • 开通云服务器
  • 利用docker快速搭建caffe环境
  • 深度学习玩起来

3. 开通云服务器
现在云服务已经非常普及,相信很多朋友都用过。但是作为入门,我还是在这里多唠叨两句,目的是让没玩过的朋友也能尝试其中的乐趣。目前国内体验比较好的云服务当属阿里云。我们就以阿里云为例,开始我们的云端之旅。
第一步:申请阿里云账号https://www.aliyun.com —— 阿里云首页地址,可以注册新账号或者以支付宝账号登录。
第二步:登陆进阿里云官网,定制购买各种云计算资源。如下图所示:
云服务购买入口

    我购买的配置是: 
    CPU: 2核    内存: 4096 MB    (I/O优化)  5Mbps  专有网络 操作系统选择的CentOS 64位的最高版本
    包年优惠价格在3000多元。

看到后面那个GPU云服务器没?好用是好用,就是贵,一个月好几千呢。我们就不这么奢侈了,就在CPU上玩玩吧,原理是一样的,差的就是速度!速度!速度!

第三步:启动实例
启动云服务器实例很简单。购买了一台云服务器之后,点击页面左上角的“管理控制台”。进入如下页面:

控制台

可以看到你拥有的实例及其运行状态。点击左侧的“实例”,进入管理页面,如下:

这里写图片描述

这里将列出你所有实例的详细信息。有用的就是最右侧的“更多”,点击之后可以看到各种控制命令。“启动” 点一下就可以实际启动你的云服务器了。点击“远程连接”,即可进入shell控制台,进行各种操作了。其中涉及到多个密码,请按照阿里的帮助文档进行设置。让我们看一眼云服务器进去是啥样的:

网页版控制台

通过上述的远程连接进行操作虽然可以通过浏览器随时随地的管理你的云服务器,但是毕竟是网页版,功能有限。要是想用的爽,还是建议用个SecureCRT之类的,用起来就和自己家的台式机差不多了。注意,在进行连接的时候,要用你的云服务器的公网地址(在购买的时候选择有独立的公网IP),用内网地址是连不上的。

4. 利用docker快速搭建caffe环境

如上文所述,你现在就拥有了一台位于云端的个人服务器。你可以在任何可以上网并可以打开浏览器的终端上进入自己的服务器,开始各种好玩的实验。是不是很酷?更酷的还在后面!
为了实现我们玩深度学习的目标,我们需要一个深度学习框架,其实就是一套软件,构成一个设计、训练、验证、部署各种深度神经网络的集成环境。目前大家耳熟能详的应该有caffe,tensorflow等。在实际处理问题的时候,有时我们需要在不同框架下切换,例如我们急需解决一个问题的时候,现成的算法可能是用caffe搞的,而另一个等你解决的问题,现成的算法又是用tensorflow搞的。如果我们都想试试看,那在一台机器上折腾还是很烦的,要处理各种依赖、版本冲突等问题。而docker就可以帮助我们轻松实现在不同框架下的灵活切换。因为它把一切需要的东西打包到一个容器里,一个容器就是一个独立的开发环境。不同的环境可以放到不同的容器里,互不干扰,可以并行工作。忙活的就是你自己了,可以一会儿玩玩caffe,一会儿玩玩tensorflow,不亦乐乎。

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

让我们一步一步在docker里面构建起我们的caffe框架。

4.1安装Docker
Docker官网给出了详细的安装教程:
https://docs.docker.com/engine/installation/linux/ubuntulinux/
这里有各种操作系统版本的安装教程,选择符合自己的即可。由于我安装的是CentOS,在这里就以在此环境下的Docker安装为例,让大家有所感受。Docker目前有两种版本供选择,一种叫做Docker CE,另一种叫做Docker EE。我们自己玩用Docker CE就够了,Docker EE是企业版。

第一步:安装yum-utils,主要是为了能够使用yum-config-manager,使用如下命令就行了:
$sudo yum install -y yum-utils 这里要使用root权限

第二步:
$ sudo yum-config-manager –add-repo \
https://download.docker.com/linux/centos/docker-ce.repo

第三步:更新yum package index
$ sudo yum makecache fast

第四步:安装最新版本的docker
$sudo yum install docker-ce

4.2在docker里面玩转caffe
在caffe官网上已经提供了创建caffe镜像所需的Dockerfile,运行如下命令拉取此镜像:
$docker pull bvlc/caffe:cpu
这里拉取的是CPU版本的镜像,如果机器带GPU,则可以将cpu换成gpu,获取支持gpu的版本。拉取成功以后,按照如下步骤搭建起自己的caffe:

第一步:测试安装是否成功:
$ docker images 可以看到已经安装的镜像,要是包含 bvlc/caffe 的镜像说明安装都成功了

第二步:以交互方式运行caffe容器
$ sudo docker run -t -i bvlc/caffe:cpu /bin/bash
再次回车以后如果你看到命令行的主机名变成了如图所示的样子,说明你已经成功进入到了容器的运行环境中了。root后面的那串编码就是容器id。
这里写图片描述

在主机控制终端敲入如下命令,可以看到你正在运行的容器情况:
$sudo docker ps

再加个 -a 选项,可以看到全部的容器,包括运行的和退出的。

容器中的caffe的主路径在 /opt/caffe下。
这里写图片描述

到这里,caffe已经可以用了,你已经可以自由的飞翔了!

5. 深度学习玩起来
为了让初次接触深度学习的朋友能体验一下深度学习的魅力,以一个简单的例子作为演示。

第一步: 在caffe容器中进入到caffe的mnist数据目录,路径为 caffe/data/mnist
ls 一下你会看到一个get_mnist.sh脚本。这个脚本是自动从网上下载所需的数据文件。运行下面的命令,就开始自动下载文件了。

$sh get_mnist.sh

运行成功后,在当前目录下会出现如下几个文件:

这里写图片描述

有了这几个文件,我们就可以尝试运行一个简单的深度神经网络模型把玩一下了。

第二步:在 caffe主路径下运行如下命令:
这里写图片描述
注意要在caffe主路径下运行脚本,因为脚本由路径依赖。运行结果是在 caffe/examples/mnist/ 目录下生成了两个模型训练使用的数据目录:
这里写图片描述

第三步:在caffe主目录下运行如下命令,启动精典的LeNet在精典的MNIST数据集上的训练:
这里写图片描述

到这一步你已经实实在在的在用深度学习训练一个模型了,关于对深度学习算法的介绍已经超出了本文的范围,会撰写新的博文专门介绍。

本篇博文介绍了如何在阿里云上玩转caffe,但是到目前为止还都是在命令行界面。对于研究深度学习在图像识别领域的应用,看不到图是很痛苦的,而且要深入理解深度学习的原理,也需要对中间层进行可视化,因此必须能够在docker容器内玩转图形界面。因此,准备再撰写一篇专门解决这个问题,让初学的朋友们能够更好的学习。

预告:“在图形界面下玩转docker容器内的caffe学习与演练

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值