本文概述
尽管srcmini的Python深度学习入门课程为你提供了在笔记本电脑或个人计算机上进行深度学习所需的一切, 但最终你会发现自己想要在图形处理单元(GPU)上运行深度学习模型。
这篇文章将帮助你采取后续步骤!
大多数用户在自己的计算机上都没有GPU, 因此此博客文章将向你展示如何从Amazon Web Services(AWS)云端运行GPU。
按照我们的描述, 在GPU上运行模型的成本约为每小时0.90美元。因此, 如果你的笔记本电脑或个人计算机具有GPU, 则可以将计算机设置为使用该GPU, 这样可以节省一些钱。
首次设置云计算环境有很多步骤。但是, 一旦设置完成, 以后会很容易继续使用它。
开始的步骤是
- 获取一个Amazon Web Services帐户
- 设置你的云计算服务器
- 连接到服务器
- 设置Jupyter笔记本
- 在浏览器中连接到Jupyter
- 使用笔记本
获取一个Amazon Web Services帐户
转到https://aws.amazon.com/来注册一个AWS账户。单击链接创建一个AWS账户。
选择按钮我是新用户, 然后输入你的电子邮件地址。某些表格将指导你填写姓名, 电子邮件地址和密码等信息。
设置你的云计算服务器
设置服务器的过程有很多步骤。幸运的是, 我们将向你展示如何停止你的实例, 这样你就无需在不使用它时就无需为它付费, 因此, 一旦实例设置完成, 你就可以轻松地快速重启它。
现在你已经拥有一个帐户, 可以随时通过返回https://aws.amazon.com/并单击”登录到控制台”来使用它。
亚马逊提供了广泛的云计算服务, 对于大多数新用户来说, 它可能是压倒性的。你将专注于他们的EC2服务(Elastic Cloud Compute的缩写)。浏览器窗口的左上部分提供服务菜单。
打开此菜单, 然后选择EC2, 这应该是第一个选项。这将带你到一个页面, 其中包含有关你正在运行的所有EC2计算实例的状态的信息。选择此页面中间的按钮以启动实例。
每个计算实例都预装了不同的软件(在”机器映像”中), 我们需要确定要预装的内容。在我们的案例中, 我们想使用来自AWS Marketplace的, 针对深度学习进行了优化的图像。
在左侧菜单栏中选择AWS Marketplace。
然后在搜索空间中输入深度学习ubuntu:
这将带来一些选项, 包括亚马逊的官方深度学习AMI Ubuntu版本。选择这个。
现在, 你将看到一个实例类型菜单。每个实例类型具有不同的价格和不同的计算能力。
具有GPU的实例是以g2或p2开头的实例。我们建议使用p2.xlarge, 它每小时的费用不到一美元。如果你想要便宜一点的东西, 则g2.2xlarge的价格约为$ 0.65 /小时, 尽管它的速度或功能并没有那么快。
选择实例类型后, 请在页面底部选择”配置实例详细信息”。然后在页面顶部的菜单上选择6.配置安全组。
在这里, 我们将设置你的实例, 以使其易于从你的计算机进行访问。
每行描述了有关如何访问实例的规则。
我们将使用端口8888上提供的Jupyter笔记本。如果你还不了解这一点, 你将了解如何使其尽快工作。
现在, 单击添加规则按钮。在新列中, 为协议选择TCP, 为Port选择8888, 为最后一列(源)选择0.0.0.0/0。
最后, 单击屏幕底部的”查看并启动”按钮。然后再次按启动。
现在, 你将获得安全性的最后一点……选择密钥对。密钥是计算机上的文件, 该文件必须与服务器上存储的文件匹配。这样可以防止他人使用你刚刚设置的服务器。因此, 请勿与他人共享密钥, 也不要将文件放在任何公开的地方。
选择”创建新的密钥对”, 然后输入密钥名称。然后按”下载密钥对”按钮, 以获取密钥的副本, 你需要访问服务器。
你很快就会被带到一个看起来像你这样的屏幕:
蓝色的长字符串是你的实例的名称。你可以选择查看EC2仪表板, 该仪表板显示此服务器正在运行。
恭喜你!你现在拥有在云端运行的深度学习服务器。
连接到服务器
现在, 我们将使用称为ssh的协议连接到服务器。从那里, 我们将启动Jupyter笔记本服务器, 我们可以通过浏览器使用它。
在Mac或Linux计算机上, 可以使用ssh命令。在Windows中, 许多人使用名为PuTTY的应用程序进行ssh连接。
你可能需要更改密钥文件的访问权限。在MacOS和Linux中, 可以使用以下命令完成此操作
chmod 400 my_private_key.pem
然后, 仍然在命令行中, 指定你希望使用以下命令登录服务器时可使用此密钥进行身份验证:
ssh-add my_private_key.pem
要登录我们的服务器, 我们需要服务器的IP地址。可以在浏览器的EC2仪表板中找到。
使用命令在命令行中登录
ssh ubuntu@34.208.222.118
你将要用服务器的IP地址替换34.208.222.118。
登录到服务器后, 使用ipython命令启动IPython Shell。一旦进入IPython, 尝试导入keras以确保一切正常。你将看到一些消息, 指示正在使用CUDA…这意味着keras正在访问GPU。
如果你熟悉Linux, IPython和Linux文本编辑器, 则可以从此处进行操作。有人选择使用两个窗口。一个用于SSH到服务器并使用IPython, 另一个用于SSH到服务器并使用文本编辑器。
设置Jupyter笔记本
但是, 大多数人会发现更容易通过浏览器设置Jupyter笔记本和程序。为此, 我们将要设置一个新密码。
第一步是获取你想要使用的任何密码的哈希值。你可以在IPython中执行以下操作:
设置密码后, 复制输出的哈希。你稍后会再次需要它。
键入exit退出IPython。
现在我们需要告诉Jupyter使用你选择的密码。为此, 请发出以下命令集
jupyter notebook --generate-config
mkdir certs
cd certs
sudo openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout mycert.pem -out mycert.pem
然后使用文本编辑器编辑〜/ .jupyter / jupyter_notebook_config.py。我喜欢vim, 可以使用以下命令:
vim ~/.jupyter/jupyter_notebook_config.py
在该文件的顶部, 粘贴以下内容:
c = get_config()
c.IPKernelApp.pylab = 'inline'
c.NotebookApp.certfile = u'/home/ubuntu/certs/mycert.pem'
c.NotebookApp.ip = '*'
c.NotebookApp.open_browser = False
# Your password below will be whatever you copied earlier
c.NotebookApp.password = u'sha1:941c93244463:0a28b4a9a472da0dc28e79351660964ab81605ae'
c.NotebookApp.port = 8888
你可以完全复制所有这些内容, 而只需替换密码。请记住, 不要使用你的实际密码。复制你先前创建的密码的哈希值。
在浏览器中连接到Jupyter
转到你选择的浏览器, 然后输入你的实例的地址(在EC2仪表板中可用), 然后输入:8888。
此时你可能会看到一条安全消息。你无需为此担心。在Chrome浏览器中, 你可以单击浏览器主窗口中的”高级”按钮来绕过此安全消息。
现在将提示你输入密码。
输入你的密码。这不是密码的哈希, 而是你先前在IPython中键入以获取哈希值的原始密码。
恭喜, 你已登录!
使用笔记本
从浏览器中, 在菜单上选择以创建一个新的Python笔记本。
ew……那不容易。但这将是从现在开始
要获得这些笔记本功能, 需要进行大量设置。幸运的是, 这几乎是一次尝试。现在, 只要不使用服务器, 就可以在EC2仪表板中停止服务器, 并且不再为服务器付费。
停止实例将保留所有设置工作, 但实例将停止工作, 直到你重新启动它为止。在某些方面, 这就像一个暂停按钮。如果选择终止, 它将丢失有关该实例的所有信息, 并且你下次必须重做设置。
由于你选择了停止, 因此现在你可以改回ec2仪表板, 然后单击开始。
单击开始后, 就很容易重新启动并运行。你的实例将获得一个新的IP地址。你将需要SSH到该新IP地址
ssh ubuntu@34.208.26.73
在通过ssh访问服务器的窗口中, 键入
jupyter notebook
然后, 你可以返回浏览器, 并立即重新开始工作。
设置工作很繁琐, 但希望你会继续练习并执行更多令人兴奋的深度学习项目, 从而从中受益匪浅。
在功能强大的云服务器上练习srcmini的Python深度学习入门中所学的内容时, 你将一直保持乐趣并不断学习。
评论前必须登录!
注册