作者|Rahul Agarwal
编译|Flin
起源|towardsdatascience

每当我开始一个新的我的项目时,我发现自己一次又一次地创立一个深度学习机器。

从装置Anaconda开始,最初为Pytorch和Tensorflow创立不同的环境,这样它们就不会互相烦扰。而在这两头,你不可避免地会搞砸,从头开始。这种状况常常产生屡次。

这不仅是对工夫的微小节约,它也是令人恼火的。通过所有的堆栈溢出线程,咱们常常想晓得到底出了什么问题。

那么,有没有一种办法能够更无效地做到这一点呢?

在这个博客中,我将尝试在EC2上以最小的致力建设一个深度学习服务器,这样我就能够专一于更重要的事件。

本博客明确地由两局部组成:

  • 设置一个事后装置了深度学习库的Amazon EC2机器。
  • 应用TMUX和SSH隧道设置Jupyter notebook。

别放心,这不像听起来那么难。只需依照步骤操作,而后单击“下一步”。

设置Amazon EC2计算机

我假如你领有一个AWS账户,并且能够拜访AWS控制台。如果没有,你可能须要注册一个Amazon AWS账户。

  • AWS控制台:https://aws.amazon.com/console/
  1. 首先,咱们须要转到“Services”选项卡以拜访EC2仪表板。

  1. 在EC2仪表板上,你能够从创立实例开始。

  1. 亚马逊向社区AMI(亚马逊机器映像)预装了深度学习软件。要拜访这些AMI,你须要查看社区AMI,并在“搜寻”选项卡中搜寻“ Ubuntu深度学习”。你能够抉择其余任何Linux格调,然而我发现Ubuntu对于满足我的深度学习需要最为有用。在以后设置中,我将应用深度学习AMI(Ubuntu 18.04)27.0版

  1. 抉择AMI后,能够抉择“实例类型”。在这里,你能够指定零碎中所需的CPU,内存和GPU的数量。亚马逊提供了许多依据集体需要抉择的选项。你能够应用“过滤根据”过滤器过滤GPU实例。

    在本教程中,我应用了p2.xlarge实例,该实例为NVIDIA K80 GPU提供了2,496个并行处理内核和12GiB的GPU内存。要理解不同的实例类型,你能够查看下方链接中的文档,并查看价格。

    • 查看文档:https://aws.amazon.com/ec2/in...
    • 查看价格:https://aws.amazon.com/emr/pr...

  1. 你能够在第4步中更改连贯到机器的存储。如果你不事后增加存储,也能够,因为当前也能够这样做。我将存储空间从90 GB更改为500 GB,因为大多数深度学习需要都须要适当的存储空间。

  1. 仅此而已,你能够在进入最终审阅实例设置屏幕之后启动实例。单击启动后,你将看到此屏幕。只需在“Key pair name”中输出任何密钥名称,而后单击“Download Key Pair”即可。你的密钥将依照你提供的名称下载到计算机上。对我来说,它被保留为“aws_key.pem”。实现后,你能够单击“Launch Instances”启动实例。

请确保此密钥对的平安,因为每当你要登录实例时都须要这样做。

  1. 当初,你能够单击下一页上的“View Instances”以查看你的实例。这是你的实例的样子:

  1. 要连贯到你的实例,只需在本地计算机上关上一个终端窗口,而后浏览到保留密钥对文件并批改一些权限的文件夹。
chmod 400 aws_key.pem

实现此操作后,你将能够通过SSH连贯到你的实例。SSH命令的格局为:

ssh -i“ aws_key.pem” ubuntu @ <你的PublicDNS(IPv4)>

对我来说,命令是:

ssh -i“ aws_key.pem” ubuntu@ec2-54-202-223-197.us-west-2.compute.amazonaws.com

另外,请记住,一旦敞开实例,专用DNS可能会更改。

  1. 你曾经筹备好机器并准备就绪。本机蕴含不同的环境,这些环境具备你可能须要的各种库。这台特定的机器具备MXNet,Tensorflow和Pytorch,以及不同版本的python。最好的事件是,咱们曾经事后装置了所有这些性能,因而开箱即用。

设置Jupyter Notebook

然而,依然须要应用一些货色能力充沛应用计算机。其中之一就是Jupyter Notebook。要在计算机上设置Jupyter Notebook,我倡议应用TMUX和隧道。让咱们逐渐设置Jupyter Notebook。

  1. 应用TMUX运行Jupyter Notebook

咱们将首先应用TMUX在实例上运行Jupyter Notebook。咱们次要应用它,以便即便终端连贯失落,咱们的笔记本电脑依然能够运行。

为此,你将须要应用以下命令创立一个新的TMUX会话:

tmux new -s StreamSession

实现后,你将看到一个新屏幕,底部带有绿色边框。你能够应用jupyter notebook命令在此计算机上启动Jupyter Notebook 。你将看到相似以下内容:

复制登录URL将是无益的,这样当前当前尝试登录到jupyter notebook时,咱们将可能获取令牌。就我而言,它是:

http://localhost:8888/?token=5ccd01f60971d9fc97fd79f64a5bb4ce79f4d96823ab7872

下一步是拆散TMUX会话,以便它在后盾持续运行,即便你来到ssh shell。要做到这一点,只需按Ctrl+B,而后按D(按D时不要按Ctrl),你将返回到初始屏幕,显示你已从TMUX会话中拆散的音讯。

如果须要,能够应用以下办法从新连贯到会话:

tmux attach -t StreamSession
  1. SSH隧道拜访本地浏览器上的notebook

第二步是进入Amazon实例,以便在本地浏览器上获取Jupyter notebook。如咱们所见,Jupyter notebook实际上运行在云实例的本地主机上。咱们如何拜访它?咱们应用SSH隧道。不必放心,这很简略。只需在本地机器终端窗口上应用以下命令:

ssh -i“ aws_key.pem” -L <本地计算机端口>:localhost:8888 ubuntu @ <你的PublicDNS(IPv4)>

对于这种状况,我应用了:

ssh -i "aws_key.pem" -L 8001:localhost:8888 ubuntu@ec2-54-202-223-197.us-west-2.compute.amazonaws.com

这意味着,如果我在本地计算机浏览器中关上localhost:8001,则能够应用Jupyter Notebook。我当然能够。当初,咱们只需输出在先前的步骤之一中曾经保留的令牌即可拜访notebook。对我来说令牌是5ccd01f60971d9fc97fd79f64a5bb4ce79f4d96823ab7872

  • 令牌: http://localhost:8888/?token=5ccd01f60971d9fc97fd79f64a5bb4ce79f4d96823ab7872&token=5ccd01f60971d9fc97fd79f64a5bb4ce79f4d96823ab7872

你只需应用你的令牌登录即可。

当初,你能够通过抉择所需的任何不同环境来抉择新我的项目。你能够来自Tensorflow或Pythorch,也能够两者兼得。notebook不会让你悲观的。

故障排除

重新启动计算机后,你可能会遇到NVIDIA图形卡的一些问题。具体来说,就我而言,该nvidia-smi命令进行工作。如果遇到此问题,解决方案是从NVIDIA 网站下载图形驱动程序。

  • NVIDIA 网站:https://www.nvidia.in/Downloa...

以上是我抉择的特定AMI的设置。单击搜寻后,你将能够看到下一页:

只需通过右键单击并复制链接地址来复制下载链接。并在计算机上运行以下命令。你可能须要在其中更改链接地址和文件名。

# When nvidia-smi doesnt work:wget https://www.nvidia.in/content/DriverDownload-March2009/confirmation.php?url=/tesla/410.129/NVIDIA-Linux-x86_64-410.129-diagnostic.run&lang=in&type=Teslasudo sh NVIDIA-Linux-x86_64-410.129-diagnostic.run --no-drm --disable-nouveau --dkms --silent --install-libglvndmodinfo nvidia | head -7sudo modprobe nvidia

进行实例

就是这样。你曾经把握并启动了深度学习机器,并且能够随便应用它。请记住,无论何时进行工作,都应进行实例,因而,当你不在实例上工作时,无需向Amazon付费。你能够在实例页面上通过右键单击你的实例来执行此操作。请留神,当你须要再次登录到该计算机时,你可能须要从实例页面从新取得公共DNS(IPv4)地址,因为它可能已更改。

论断

我始终感觉建设深度学习环境十分麻烦。

在此博客中,咱们通过应用深度学习社区AMI,TMUX和Jupyter Notebook的隧道技术,在最短的工夫外在EC2上设置了新的深度学习服务器。该服务器已事后装置了你在工作中可能须要的所有深度学习库,并且开箱即用。

那你还在等什么?只需在你本人的服务器上开始应用深度学习即可。

原文链接:https://towardsdatascience.co...

欢送关注磐创AI博客站:
http://panchuang.net/

sklearn机器学习中文官网文档:
http://sklearn123.com/

欢送关注磐创博客资源汇总站:
http://docs.panchuang.net/