如何在AWS EC2 GPU上训练Keras深度学习模型(循序渐进)

Keras是一个Python深度学习库,通过它可以轻松方便地访问TensorFlow等功能强大的数值库。

大型深度学习模型需要大量计算时间才能运行。你可以在CPU上运行它们,但可能需要几个小时或几天才能得到结果。如果你可以访问台式机上的GPU,你可以大幅加快深度学习模型的培训时间。

在这篇文章中,你将了解如何使用Amazon Web服务(AWS)基础设施访问GPU,以加快深度学习模型的培训。每小时只需几美元,而且通常要便宜得多,你就可以在工作站或笔记本电脑上使用这项服务。

我们开始吧。

教程概述

这个过程相当简单,因为大部分工作已经为我们完成了。

以下是该过程的概述。

  • 设置你的AWS帐户。
  • 启动你的AWS实例。
  • 登录并运行你的代码。
  • 关闭你的AWS实例。

请注意,在Amazon上使用虚拟服务器实例是要花钱的。特别模型开发的成本很低(例如,每小时不到1美元),这就是为什么这很有吸引力,但它不是免费的。

服务器实例运行Linux。知道如何导航Linux或类似Unix的环境是可取的,但不是必需的。我们只是在运行Python脚本,因此不需要高级技能。

1.设置你的AWS帐户。

你需要拥有Amazon Web服务的帐户。

  • 1.你可以通过Amazon Web Services门户创建账户,然后单击[登录控制台]。在那里,你可以使用现有的Amazon帐户登录或创建新帐户。
  • 2.你需要提供你的详细信息以及亚马逊可以收取费用的有效信用卡。如果你已经是亚马逊的客户,而且你的信用卡已经存档,那么这个过程会快得多。

拥有帐户后,你就可以登录到Amazon Web Services控制台。

你将看到一系列你可以访问的不同服务。

2.启动你的AWS实例

现在你有了一个AWS帐户,你想要启动一个EC2虚拟服务器实例,你可以在该实例上运行KERAS。

启动实例与选择要加载的映像并启动虚拟服务器一样简单。值得庆幸的是,现在已经有了一个几乎包含我们需要的一切的映像,名为Deep Learning AMI(Amazon Linux),由Amazon创建并维护。让我们将其作为实例启动。

  • 1.如果你尚未登录你的AWS控制台,请登录。
  • 2.单击EC2启动新的虚拟服务器。
  • 3.从右上角的下拉列表中选择“US West Orgeon”。这一点很重要,否则你将无法找到我们计划使用的图像。
  • 4.点击[Launch Instance]按钮。
  • 5.点击[Community AMIs]。AMI是Amazon机器映像。它是一个冻结的服务器实例,你可以在新的虚拟服务器上选择并实例化它。
  • 6.在“Search community AMIs”搜索框中输入“Deep Learning AMI”,然后按Enter键。
  • 7.单击[Select],在搜索结果中选择AMI。
  • 8.现在你需要选择运行镜像的硬件。向下滚动并选择“p3.2xLarge”硬件(我过去推荐g2或g3实例和p2实例,但p3实例更新、更快)。这包括一个特斯拉V100图形处理器,我们可以使用它来显著提高我们模型的训练速度。它还包括8个CPU内核、61 GB RAM和16 GB GPU RAM。注意:使用此实例的费用约为3美元/小时。
  • 9.单击[Review and Launch],完成你的服务器实例配置。
  • 10.点击“Launch”按钮。
  • 11.选择你的密钥对。
    • 如果你因为以前使用过EC2而拥有密钥对,请选择“Choose an Existing Key Pair”,然后从列表中选择你的密钥对。然后选中“I”确认…“。
    • 如果你没有密钥对,请选择“Create a new key pair”选项,然后输入“Key pair name”,如keras-keypair。单击“Download Key Pair”按钮。
  • 12.打开终端,将目录更改为你下载密钥对的位置。
  • 13.如果你尚未这样做,请限制你的密钥对文件的访问权限。这是作为对你的服务器的SSH访问的一部分重新请求的。例如:
cd Downloads
chmod 600 keras-aws-keypair.pem
  • 14.点击[Launch Instances]。如果你是第一次使用AWS,亚马逊可能需要验证你的请求,这可能需要长达2小时(通常只有几分钟)。
  • 15.单击[View Instances],查看你的实例状态。

你的服务器现在正在运行,你可以登录了。

3.登录、配置、运行

现在你已经启动了服务器实例,是时候登录并开始使用它了。

  • 1.如果你尚未在Amazon EC2控制台中点击[View Instances]。
  • 2.将[Public IP](说明中屏幕下方)复制到剪贴板。在本例中,我的IP地址是54.186.97.77。请勿使用此IP地址,你的IP地址将会不同。
  • 3.打开终端,将目录更改为你下载密钥对的位置。使用SSH登录到你的服务器,例如:
ssh -i keras-aws-keypair.pem ec2-user@54.186.97.77
  • 4.出现提示时,键入“yes”,然后按Enter键。

你现在已登录到服务器。

该实例将询问你希望使用哪种Python环境。我建议使用:

TensorFlow(+Keras2) with Python3 (CUDA 9.0 and Intel MKL-DNN)
你可以通过键入以下命令激活此虚拟环境:

source activate tensorflow_p36

这只需要一分钟。

你现在可以开始训练深度学习神经网络模型了。

要在你的新实例上尝试一些内容,请参阅此教程:

4.关闭你的AWS实例

完成工作后,必须关闭实例。

请记住,你是按使用实例的时间量收费的。它很便宜,但如果你不使用某个实例,你不会想让它保持打开状态。

  • 1.在终端注销你的实例,例如可以输入:
exit
  • 2.使用Web浏览器登录你的AWS帐户。
  • 3.单击EC2。
  • 4.单击左侧菜单中的[Instances]。
  • 5.从列表中选择你正在运行的实例(如果你只有一个正在运行的实例,则该实例可能已被选中)。
  • 6.点击[Actions]按钮,选择[Instance State],选择[Terminate]。确认你要终止正在运行的实例。

关闭实例并将其从实例列表中删除可能需要几秒钟的时间。

在AWS上使用Keras的提示和技巧

以下是在AWS实例上充分使用Keras的一些提示和技巧。

  • 预先设计一套要运行的实验。实验可能需要很长时间才能运行,你需要为使用的时间付费。抽出时间设计一批在AWS上运行的实验。将每个文件放在单独的文件中,并从另一个脚本依次调用它们。这将也许使你在一夜之间能够回答多个问题。
  • 将脚本作为后台进程运行。这将允许你在实验运行时关闭终端和关闭计算机。

你可以按如下方式轻松完成此操作:

nohup /path/to/script >/path/to/script.log 2>&1 < /dev/null &

然后,你可以稍后在script.log文件中检查状态和结果。了解有关nohup的更多信息

  • 始终在实验结束时关闭实例。你不会想要对一笔非常大的AWS账单感到惊讶的。
  • 尝试Spot实例以获得更便宜但不太可靠的选项。亚马逊以低得多的价格出售硬件上未使用的时间,但代价是你的实例可能会随时关闭。如果你正在学习或者你的实验不重要,这对你来说可能是一个理想的选择。你可以从EC2Web控制台左侧菜单上的“Spot Instance”选项访问Spot实例。

有关在AWS上使用的命令行重新复制的更多帮助,请参阅文章:

有关AWS上深度学习的更多资源

以下是了解有关AWS和在云中构建深度学习的更多信息的资源列表。

摘要。

在这篇文章中,你了解了如何使用Amazon Web服务上的GPU在KERAS中开发和评估大型深度学习模型。你了解到:

  • Amazon Web服务及其弹性计算云提供了一种经济实惠的方式,可以在GPU硬件上运行大型深度学习模型。
  • 如何设置和启动用于深度学习实验的EC2服务器。
  • 如何更新服务器上的KERAS版本并确认系统工作正常。
  • 如何在AWS实例上批量运行KERAS实验作为后台任务。

00

Python

发表评论

电子邮件地址不会被公开。 必填项已用*标注

什么阻碍了你实现迈入机器学习领域的目标?

什么阻碍了你实现迈入机器学习领域的目标?

2020-04-22 机器学习

如果你在为进入机器学习领域而挣扎,感觉到有什么东西阻止了自己的开始,那么你应该看看这篇文章。 在这篇文章中,我们会讨论阻止进入机器学习领域的自我限制的信念,让你明白面临的问题。 几乎总是一种自我限制的信念阻碍了你们的进步。 也许你会在一个或多个这样的信念中看到自己。如果是这样的话, [......]

了解详情

R语言机器学习迷你课程

R语言机器学习迷你课程

2020-08-12 机器学习

在这个迷你课程中,你将发现如何开始,构建精确的模型,并自信地完成在14天内使用R预测建模机器学习项目。 这是一个重要而重要的文章。你可能想把它书签。 了解如何准备数据,拟合机器学习模型,并用我的新书评估他们在r上的预测,包括14步教程、3个项目和完整源代码。 我们开始吧。 [......]

了解详情

关于机器学习的几点思考

关于机器学习的几点思考

2020-04-26 机器学习

机器学习是一个大的、跨学科的研究领域。 你可以通过机器学习获得令人印象深刻的结果,并找到非常具有挑战性的问题的解决方案。但这只是更广泛的机器学习领域的一小部分,通常被称为预测建模或预测分析。 在这篇文章中,你将发现如何改变你对机器学习的思考方式,以便更好地为你提供机器学习实践者的服务。 [......]

了解详情

找到你的机器学习部落

找到你的机器学习部落

2020-04-26 机器学习

机器学习是一个充满算法和数据的迷人而强大的研究领域。 问题是,有这么多不同类型的人对机器学习感兴趣,每个人都有不同的需求。重要的是要了解你想要从机器学习中得到什么,并根据这些需求调整你的自学。 如果你不这样做,你很容易就会陷入困境,迷失方向,失去兴趣,得不到你想要的东西。 找到 [......]

了解详情

应用机器学习过程

应用机器学习过程

2020-04-26 机器学习

随着时间的推移,在处理应用机器学习问题时,你会开发出一种模式或流程,以快速获得良好的正常结果。 一旦开发完成,你就可以在一个又一个项目上反复使用此过程。你的流程越健壮、越发达,你就能越快地获得可靠的结果。 在这篇文章中,我想与你分享我解决机器学习问题的过程框架。 你可以将其用作下一 [......]

了解详情