当前位置: 首页 > 科技观察

结束重复性工作!30分钟教你打造属于自己的深度学习机器

时间:2023-03-20 18:54:06 科技观察

来源:unsplash重复的工作总是很烦人。就像每次我开始一个新项目时,我都必须一遍又一遍地创建新的深度学习机器。先安装Anaconda,然后为Python和Tensorflow配置不同的环境,防止相互干扰。在此过程中,您不可避免地会陷入混乱并重新开始,检查所有StackOverflow线程,但不知道哪里出了问题。这种情况经常发生。被折磨了很多次之后,我开始思考,有没有更高效的方法呢?付出就有收获。我终于找到了在EC2上设置深度学习服务器的最简单方法。只需30分钟即可摆脱重复性任务,您可以腾出时间去做更重要的事情。要构建AmazonEC2机器,您必须首先拥有AWS帐户并登录AWS控制台。如果没有,需要先申请一个AmazonAWS账号。第一步,转到“服务”选项卡以访问EC2仪表板。第二步,在EC2仪表板上,开始创建您自己的实例。第三步,亚马逊为CommunityAMIs(AmazonMachineImage)提供预装的深度学习软件。要访问这些AMI,首先访问社区AMI并在搜索选项卡中搜索“Ubuntu版本深度学习”。其他Linux操作系统也可以,但是我觉得Ubuntu版本最适合做深度学习。此步骤将使用深度学习AMI(Ubuntu18.04),版本27.0。接下来,一旦选择了AMI,下一步就是选择实例类型。这时候就需要确定系统中需要的CPU、内存和GPU的数量。亚马逊根据个人需求提供多种选择。可以使用“过滤依据”过滤器过滤GPU实例。本文使用p2.xlaege实例,它为NVIDIAK80GPU提供2496个并行处理核心和12GiB的GPU显存。第五步可以换第四步机器附带的内存,或者不预加内存也可以稍后再做。绝大多数深度学习都需要足够的内存容量,所以我把内存容量从90GB增加到500GB。第六步,完成以上步骤后,就可以进入实例设置的最终页面,启动实例了。单击启动后,您将看到这样一个页面。在Keypairname中写入密钥名称,点击“Downloadkeypair”。密钥将以提供的名称下载到计算机。设置的名称是“aws_key.pem”。完成后,您可以单击“LaunchInstances”。每次登录自己的实例时,都会要求您输入密钥对,所以一定要保证密钥对的安全。好的,现在您可以单击下一页上的“Viewinstances”来查看您的实例。这就是创建的实例:如果你想连接到实例,只需在本地机器上打开一个终端窗口,浏览到你保存密钥对文件的文件夹,并修改一些权限。chmod400aws_key.pem操作后,您可以通过SSHing连接到实例。SSH命令的形式如下:ssh-i"aws_key.pem"ubuntu@命令是这样的:ssh-i"aws_key.pem"ubuntu@ec2-54-202-223-197.us-west-2.compute.amazonaws.com另外请记住,如果实例关闭,公共DNS可能会发生变化。此时机器准备就绪。这台机器包含不同的环境和每个可能需要的库。该特定机器还具有MXNet、Tensorflow和Pytorch,以及各种版本的python。所有这些都已预先安装好,可以立即使用。如果你想创建一个JupyterNotebook来充分发挥设备的性能,有几件事情是必不可少的。其中之一是Jupyter笔记本。我建议使用TMUX和隧道在机器上创建Jupyter笔记本。使用TMUX运行JupyterNotebook首先使用TMUX在实例上运行JupyterNotebook。采用TMUX主要是因为JupyterNotebook在终端连接丢失的情况下仍然可以运行。因此,我们需要使用如下代码来创建一个新的TMUX会话:tmuxnew-sStreamSession完成后,你会看到底部带有绿色边框的新界面。然后,您可以使用常规的Jupyternotebook命令来创建您自己的JupyterNotebook。如下图:复制登录URL会有帮助,这样以后登录JupyterNotebook的时候可以拿到一个token。令牌如下所示:http://localhost:8888/?token=5ccd01f60971d9fc97fd79f64a5bb4ce79f4d96823ab7872下一步是分离TMUX会话,这样即使SSHshell关闭,它也能继续在后台运行。只要按Ctrl+B,再按D(按D的时候不要按Ctrl)回到初始界面,会看到信息:当前会话已断开。如果需要,也可以使用如下代码重新连接会话:tmuxattach-tStreamSession2.SSHtunneltoaccessJupyternotebookonthelocalbrowser第二步进入亚马逊实例,在本地浏览器获取JupyterNotebook。可以看到,JupyterNotebook实际上是在云实例的本地主机上运行的。那么我们如何访问它呢?SSH隧道。相当于直接填空。只需在本地计算机终端窗口中使用以下命令:ssh-i"aws_key.pem"-L:localhost:8888ubuntu@在这种情况下使用:ssh-i"aws_key.pem"-L8001:localhost:8888ubuntu@ec2-54-202-223-197.us-west-2.compute.amazonaws.com意味着如果我在本地机器浏览器上打开localhost:8001,我必须能够使用JupyterNotebook。现在输入上一步中保存的令牌以访问笔记本。token是5ccd01f60971d9fc97fd79f64a5bb4ce79f4d96823ab7872用你自己的token登录,你就完全拥有了属于自己的notebook!现在选择您想要开始新项目的任何环境。它可以是Tensorflow或Pytorch,也可以是两者的最佳版本。这款笔记本不会让您失望。调试机器重启后,您可能会遇到某些NVIDIA显卡的问题。我刚遇到nvidia-smi命令停止工作的情况。如果遇到此问题,可以通过从NVIDIA网站下载显卡驱动程序来解决。以上是我选择的特定AMI的设置。点击搜索,您将看到下一页:只需右键单击并复制链接地址即可复制下载链接。然后在机器上运行以下命令。您可能需要在此更改链接地址和文件名。#Whennvidia-smidoesntwork:wgethttps://www.nvidia.in/content/DriverDownload-March2009/confirmation.php?url=/tesla/410.129/NVIDIA-Linux-x86_64-410.129-diagnostic.run&lang=in&type=TeslasudoshNVIDIA-Linux-x86_64-410.129-diagnostic.run--no-drm--disable-nouveau--dkms--silent--install-libglvndmodinfonvidia|head-7sudomodprobenvidia停止实例好了,你已经创建并开始运行深度学习机,你可以随心所欲地使用它。有一点要注意,当你停止工作时记得停止实例,这样当你不在实例上工作时就不必向亚马逊支付费用。另外,当你再次登录本机时,需要从实例页面获取PublicDNS(IPv4),以防止更改。搭建深度学习环境是一件非常重要的事情。现在您已经了解了如何在尽可能短的时间内使用深度学习社区AMI、TMUX和隧道在EC2上为JupyterNotebooks创建一个新的深度学习服务器。此预装服务器具有您工作中可能需要的所有深度学习库,并且开箱即用。你还在等什么?