前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >想入门深度学习不会搭建环境?手把手教你在Amazon EC2上安装Keras

想入门深度学习不会搭建环境?手把手教你在Amazon EC2上安装Keras

作者头像
大数据文摘
发布2018-05-24 17:46:06
2K0
发布2018-05-24 17:46:06
举报
文章被收录于专栏:大数据文摘大数据文摘

大数据文摘作品,转载要求见文末

编译 | Molly、寒小阳、Yawei

随着我们使用的神经网络越来越复杂,我们需要更强劲的硬件。我们的个人电脑一般很难胜任这样大的网络,但是你可以相对轻松地在Amazon EC2服务中租到一台强劲的电脑,并按小时支付租金。

我用的是Keras,一个神经网络的开源python库。由于用法十分简单,它很适合入门深度学习。它基于Tensorflow,一个数值计算的开源库,但是也可以使用Theano。租到的机器可以使用Jupyter Notebook通过浏览器来访问。Jupyter Notebook是一个通过交互式代码来共享和编辑文档的web应用。

通过cuDNN,一个深度神经网络GPU加速库,Keras可以在GPU上运行。由于并行运算的设计,这种方式会比一般的CPU要快很多。建议你看几个CNN指标,对比最流行的神经网络在不同的GPU和CPU的运行时间。

我将向你介绍如何一步步在预置好的Amazon Machine Image (AMI)上搭建这样一个深度学习的环境。

1) 创建账户

访问 https://aws.amazon.com/ ,并创建一个AWS账户。

然后登陆控制台。

你的控制面板应该看起来像这样。

确保你选择的所在地区是法兰克福,N. Virgiania或新加坡,以便之后可以使用一个预置好的Keras AMI。如果你想自己动手设置这样的AMI,你可以按照这个指南。

2) 启动实例

现在让我们跳转到EC2控制页面。

“Amazon Elastic Compute Cloud(Amazon EC2)在Amazon Web Services(AWS)云中提供可扩展的计算功能。 Amazon EC2的使用消除了前期对硬件的投资要求,因此你可以更快地开发和部署应用程序。 你可以使用Amazon EC2启动大量或几个虚拟服务器,配置安全性和网络以及存储管理。 Amazon EC2允许你对硬件升级或降级,来应对需求的变化或流量的峰值,因此不太需要进行流量的预测。”。

所以换句话说,你可以在任何时候租一个服务器来进行计算,也就是机器学习模型训练。 现在让我们启动一个实例吧!

首先,你需要选择一个已经安装了所有必需工具的AMI(基于TensorFlow的Kreas和Jupyter Notebook)。

选择实例类型(你租到的计算机的质量)。 当然,你选择的机型越好越贵。 但是你正在创建你的第一个实例,所以你肯定不想选最好的那个。选择t2.micro就够了,它就是一个测试实例。它可以在不掏空你的钱包的情况下,让你体验下环境。 :)

当你比较满意,想要更多的计算能力时,我建议你使用一个g *类型的实例(g代表GPU后端)。比如 g2.2xlarge。 一个默认的GPU实例的定价为每小时0,772美元左右。

这里没什么意思,跳过。

免费使用的最大容量是30 GB。此外,如果你不希望你的数据在关闭实例后消失,要取消选中“终止时删除”复选框。

继续。

这个步骤很重要,因为你不仅要使用ssh,还要通过浏览器访问你的实例。 在端口8888上添加自定义TCP规则。仅允许从你的IP地址,8888和22(ssh)端口访问它。

一切准备好了,现在启动实例!

你只需要设置一个新的(或选择一个现有的)密钥对。通过ssh链接到你的机子时,必须要有密钥。

下载生成的密钥,注意保密!这样除你之外没有其他人可以访问这台机器。

现在让我们查看机器的状态。

如你所见,实例已启动并正在运行。 棒棒哒! 你刚刚启动了一个AWS实例。

3)设置Jupyter Notebook

现在让我们使用它。 通过ssh连接。

按照说明,更改私钥的权限并将示例键入终端(或使用PuTTY连接)。在-i参数后插入私钥的路径,使用'ubuntu'替换’root’。 所以命令看起来如下(如果你使用Windows,查看如何通过PuTTY连接):

ssh -i ‘path/to/private/key’ ubuntu@public_dns

在终端输入下面命令打开Notebook

sudo jupyter notebook

你可以通过浏览器访问Notebook,方法是键入your_public_dns:8888(8888是Jupyter默认端口)。

4)连接到你的实例

默认密码是“'machinelearningisfun”(我建议你更改密码,在Jupyter Notebook的文档中解释了如何做)。

MNIST数据集是一个著名的手写数字集。 我准备了一个Notebook示例,加载数据集,并拟合一个示例卷积神经网络。 打开mnist.jpynb示例并自行运行其中的cell。

代码来自Keras示例库

当你用完后,记得终止你的实例!账单是依据实例运行的时间来计算的。例如,如果你忘记关掉你的g2.2xlarge 实例,让它运行了一个月,你将要为此支付$0,772*24*30 = $555,84. :)

那么,接下来呢? 我建议你看看notMNIST数据集,其中包含来自不同字体的字母集。 你也可能对CIFAR-10感兴趣: 一组彩色图像,对应10个类别,比如飞机,船只,鸟类或猫。

如果你是Keras新手,你可能对这个教程感兴趣。 或者,像我做的案例,检测可能触发密集恐惧症的图片(强烈建议不要google相关的照片)。 我在PiotrMigdał主持的波兰儿童基金会的研讨会上学习了卷积神经网络的基础知识(以及如何设置机器)。 其中另一位参与者的源代码,使用VGG16进行特征提取,可在GitHub上获取。

数据、模型、算法、平台、场景

如何有效应用

变革而来

百度2017ABC SUMMIT

邀请门票限量放送!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-09-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 大数据文摘 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档