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

在30分钟内创建你的深度学习服务器

时间:2023-03-20 14:18:07 科技观察

每当我开始一个新项目时,我发现自己一次又一次地创建一个深度学习机器。首先安装Anaconda,最后为Pytorch和Tensorflow创建单独的环境,这样它们就不会相互干扰。在中间,您不可避免地会搞砸并重新开始。这经常发生多次。这不仅是对时间的巨大浪费,而且还很烦人。通过所有堆栈溢出线程,我们常常想知道究竟出了什么问题。那么,有没有办法更有效地做到这一点?在这篇博客中,我将尝试以最小的努力在EC2上设置一个深度学习服务器,这样我就可以专注于更重要的事情。该博客明确分为两部分:设置一台预装了深度学习库的AmazonEC2机器。使用TMUX和SSH隧道设置Jupyternotebook。别担心,这并不像听起来那么难。只需按照步骤操作,然后单击“下一步”。设置AmazonEC2计算机我假设您有一个AWS帐户并且可以访问AWS控制台。如果没有,您可能需要注册一个AmazonAWS帐户。AWS控制台:https://aws.amazon.com/console/首先,我们需要转到“服务”选项卡以访问EC2仪表板。在EC2仪表板上,您可以从创建实例开始。Amazon预装深度学习软件到社区AMI(AmazonMachineImage)。要访问这些AMI,您需要查看社区AMI并在“搜索”选项卡中搜索“Ubuntu深度学习”。您可以选择任何其他风格的Linux,但我发现Ubuntu最适合我的深度学习需求。在当前设置中,我将使用深度学习AMI(Ubuntu18.04)版本27.0选择AMI后,您可以选择“实例类型”。您可以在此处指定系统中所需的CPU、内存和GPU数量。亚马逊提供多种选项供您根据个人需求进行选择。您可以使用“过滤依据”过滤器过滤GPU实例。对于本教程,我使用了一个p2.xlarge实例,它提供了一个NVIDIAK80GPU,具有2,496个并行处理核心和12GiB的GPU内存。要了解不同的实例类型,您可以在下面的链接中查看文档并查看价格。查看文档:https://aws.amazon.com/ec2/instance-types/查看定价:https://aws.amazon.com/emr/pricing/您可以在步骤4中更改连接到机器的存储.如果您不预先添加存储也没关系,因为您也可以稍后添加。我将存储空间从90GB更改为500GB,因为大多数深度学习需求都需要足够的存储空间。就是这样,您可以在到达最终审核实例设置屏幕后启动实例。单击启动后,您将看到此屏幕。只需在“密钥对名称”中输入任何密钥名称,然后单击“下载密钥对”。您的密钥将以您提供的名称下载到您的计算机。对我来说,它被保存为“aws_key.pem”。完成后,您可以单击“启动实例”以启动实例。请妥善保管此密钥对,因为每当您要登录实例时都需要这样做。您现在可以单击下一页上的“查看实例”来查看您的实例。您的实例如下所示:要连接到您的实例,只需在本地计算机上打开一个终端窗口,然后浏览到您保存密钥对文件的文件夹并修改一些权限。chmod400aws_key.pem完成后,您将能够通过SSH进入您的实例。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可能会发生变化。您已准备好机器并准备就绪。Native包括不同的环境和您可能需要的各种库。这台特定的机器有MXNet、Tensorflow和Pytorch,以及不同版本的python。最棒的是我们已经预先安装了所有这些功能,因此它们开箱即用。设置JupyterNotebook然而,您仍然需要使用一些东西来充分利用您的计算机。其中之一是JupyterNotebook。要在您的计算机上设置JupyterNotebook,我建议使用TMUX和隧道。让我们逐步设置JupyterNotebook。使用TMUX运行JupyterNotebook我们将首先使用TMUX在实例上运行JupyterNotebook。我们主要使用它,以便即使终端连接丢失,我们的笔记本电脑仍然可以运行。为此,您需要使用以下命令创建一个新的TMUX会话:tmuxnew-sStreamSession完成后,您将看到一个底部带有绿色边框的新屏幕。您可以使用命令jupyternotebook在此计算机上启动JupyterNotebook。您将看到类似这样的内容:复制登录URL将是有益的,这样我们以后尝试登录jupyternotebook时就可以获取令牌。在我的例子中是:http://localhost:8888/?token=5ccd01f60971d9fc97fd79f64a5bb4ce79f4d96823ab7872下一步是分离TMUX会话,这样即使您离开sshshell,它也会在后台继续运行。为此,只需按Ctrl+B,然后按D(不要在按D的同时按Ctrl),您将返回到初始屏幕,并显示您已从TMUX会话分离的消息。如果需要,您可以使用以下方法重新连接到会话:tmuxattach-tStreamSessionSSH隧道以在本地浏览器上访问笔记本第二步是进入Amazon实例,以便在本地浏览器上获取Jupyter笔记本。正如我们所见,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,你可以使用Jupyter笔记本。当然,我可以。Nowwecanaccessthenotebooksimplybyenteringthetokenwesavedinoneoftheprevioussteps.对我来说令牌是5ccd01f60971d9fc97fd79f64a5bb4ce79f4d96823ab7872令牌:http://localhost:8888/?token=5ccd01f60971d9fc97fd79f64a5bb4ce79f4d96823ab7872&token=5ccd01f60971d9fc97fd79f64a5bb4ce79f4d96823ab7872你只需使用你您现在可以通过选择您想要的任何不同环境来选择您的新项目。您可以来自Tensorflow或Pytorch,或两者兼而有之。笔记本不会让你失望的。重新启动计算机后,您的NVIDIA显卡可能会遇到一些问题。具体来说,在我的例子中,nvidia-smi命令停止工作。如果遇到此问题,解决方法是从NVIDIA网站下载显卡驱动程序。NVIDIA官网:https://www.nvidia.in/Download/index.aspx?lang=en-in以上是我选择的具体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停止实例,仅此而已。您已经掌握并启动了一台深度学习机器,可以随意使用它。请记住,只要您停止工作,您就会停止您的实例,因此当您不在您的实例上工作时,您不必向Amazon付费。您可以通过在实例页面上右键单击您的实例来执行此操作。请注意,当您需要再次登录该计算机时,您可能需要从实例页面重新获取公共DNS(IPv4)地址,因为它可能已经更改。结论我一直觉得设置深度学习环境很麻烦。在这篇博客中,我们利用深度学习社区AMI、TMUX和JupyterNotebook的隧道,在最短的时间内在EC2上搭建了一个新的深度学习服务器。该服务器预装了您开箱即用的工作可能需要的所有深度学习库。你还在等什么?只需开始在您自己的服务器上使用深度学习。