手把手在亚马逊EC2上搭建Keras GPU

由于需要使用越来越复杂的神经网络,我们还需要更好的硬件。但我们的电脑通常不能承受那么大的网络,不过你可以相对容易地在亚马逊上租用一个功能强大的计算机,比如E2服务你可以相对容易地按照小时租用在亚马逊EC2服务。

我使用Keras——一个开源神经网络Python库。因为它的易用性,所以初学者可以很容易开始自己的深度学习旅程。它建立在TensorFlow之上(但是Theano也可以使用)—— 一个用于数值计算的开源软件库。租借的机器将通过浏览器使用Jupyter Notebook ——一个网络应用程序,允许共享和编辑文档与实时代码。

Keras可以在GPU上运行cuDNN —— 深层神经网络GPU加速库。这种方法比典型的CPU快得多,因为它被设计用于并行计算。我建议你看看几个CNN基准,比较不同的GPU和CPU上最流行的神经网络的运行时间。

我将向您手把手介绍如何通过预先准备的Amazon Machine Image(AMI)设置这样的深度学习环境。

1) 创建一个账号

访问: https://aws.amazon.com/ ,然后创建一个 AWS 账号。

登陆进去

你控制台应该是长这样的:

根据你所在地,选择 Frankfurt或者N. Virgiania或者 Singapore . 这样过会儿它会让你试用一个预装的Keras AMI。

2) 发布一个实例(instance)

让我们选择 EC2 界面.

亚马逊如是说:“Amazon Elastic Compute Cloud(Amazon EC2)在Amazon Web Services(AWS)云中提供可扩展的计算能力。 使用Amazon EC2消除了对前期投资硬件的需求,因此您可以更快地开发和部署应用程序。 您可以使用Amazon EC2启动所需数量的虚拟服务器,配置安全性和网络以及管理存储。 Amazon EC2允许您向上或向下扩展以应对需求变化,从而减少对预测流量的需求.”

换句话说,你可以在任何时候租一个服务器来跑你的应用,在本案中,是用来做深度计算。

首先你需要选择一个AMI,这里已经安装了所有需要的工具 (Keras on TensoFlow with 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参数插入私钥的路径而不是'root'键入'ubuntu'。 所以命令看起来如下:

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

输入如下来运行notebook:

sudo jupyter notebook 

进入终端。 您可以通过浏览器访问notebook:键入你的公共dns:8888(8888是Jupyter默认端口)。

4) 连接你的实例

默认密码是 “machinelearningisfun” (我猜你会改密码, 在 Jupyter Notebook documentation 里会解释如何使用).

MNIST数据库是一个众所周知的手写数字集合。 我准备了一个样本notebook,加载数据集,并拟合一个样本卷积神经网络。 打开mnist.jpynb示例可以自行运行单元格。

当你完成后,记得终止你的实例! 付款计算基于实例上线的时间量。 例如,如果您忘记了已运行一个月的g2.2xlarge实例,您将支付$ 0,772 * 24 * 30 = $ 555,84。

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

本文翻译自:https://medium.com/@mateuszsieniawski/keras-with-gpu-on-amazon-ec2-a-step-by-step-instruction-4f90364e49ac#.i2c5s5red

原文发布于微信公众号 - 吉浦迅科技(gpusolution)

原文发表时间:2017-03-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏灯塔大数据

每周学点大数据 | No.75 Spark 实践案例——PageRank

本文为灯塔大数据原创内容,欢迎个人转载至朋友圈,其他机构转载请在文章开头标注 编者按:灯塔大数据将每周持续推出《从零开始学大数据算法》的连载,本书为哈尔滨工业大...

3888
来自专栏FreeBuf

ModSecurity技巧:使用ssdeep检测Webshell

最新版本的ModSecurity增加了ssdeep检测webshell的接口,于是猛地回忆起搞客户端安全(游戏安全)的时候买过一本书《恶意软件分析诀窍与工具箱-...

3898
来自专栏应用案例

如何用Python提取中文关键词?

本文一步步为你演示,如何用Python从中文文本中提取关键词。如果你需要对长文“观其大略”,不妨尝试一下。 ? 需求 好友最近对自然语言处理感兴趣,因为他打算利...

3278
来自专栏漫漫全栈路

用于时间序列预测的Python环境

Python生态系统正在不断的成长和壮大,并可能成为应用机器学习的主要平台。

3698
来自专栏瓜大三哥

IO约束(上)

IO约束的语法 XDC中可以用于IO约束的命令包括: set_input_delay set_output_delay set_max_delay set_mi...

2158
来自专栏编程之旅

iOS开发——步数获取

最近半个月的开发工作,重点一直是类似于悦跑圈、咕咚这样的运动产品的功能,所以在处理iOS设备在运动中的表现也是积累了一些经验。

1972
来自专栏数据科学与人工智能

【Python环境】Python可视化工具综述

简介 在Python的世界里,可视化你的数据有多种选择。由于这种多样性,决定何时使用哪一个确实是种挑战。这篇文章包含由更受欢迎的包中的一部分制作的示例,并说明如...

42710
来自专栏玉树芝兰

如何用Python提取中文关键词?

本文一步步为你演示,如何用Python从中文文本中提取关键词。如果你需要对长文“观其大略”,不妨尝试一下。

2192
来自专栏数据小魔方

R语言学习笔记之——多进程与并行处理包parallel

上一篇中,主要介绍了使用foreach包来在R语言环境中实现任务的并行处理,其实在R语言中还有另外一个多进程包同样可以完成多进程任务,那就是parallel包,...

3158
来自专栏ImportSource

必懂的NoSQL理论-Map-Reduce(下)

本文主要内容:一开始我们会讨论把map-reduce切分成个两个阶段的内容,然后会说有关如何处理增量的基础理论。 上一文:必懂的NoSQL理论-Map-Redu...

3707

扫码关注云+社区

领取腾讯云代金券