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

从安装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仪表板上,你可以从创建实例开始。

3.亚马逊向社区AMI(亚马逊机器映像)预装了深度学习软件。要访问这些AMI,你需要查看社区AMI,并在“搜索”选项卡中搜索“ Ubuntu深度学习”。你可以选择其他任何的Linux风格,但是我发现Ubuntu对于满足我的深度学习需求是最为有用。在当前设置中,我将使用深度学习AMI(Ubuntu 18.04)27.0版

4.选择AMI后,可以选择“实例类型”。在这里,你可以指定系统中所需的CPU,内存和GPU的数量。亚马逊提供了许多根据个人需求选择的选项,你可以使用“过滤依据”过滤器过滤GPU实例。

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

  • 查看文档:https://aws.amazon.com/ec2/instance-types/

  • 查看价格:https://aws.amazon.com/emr/pricing/

5.你可以在第4步中更改连接到机器的存储。如果你不预先添加存储也是可以,因为以后也可以这样做。我将存储空间从90 GB更改为500 GB,因为大多数深度学习需求都需要适当的存储空间。

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

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

7.现在,你可以单击下一页上的“View Instances”以查看你的实例。这是你的实例的样子:

8.要连接到你的实例,只需在本地计算机上打开一个终端窗口,然后浏览到保存密钥对文件并修改一些权限的文件夹。

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可能会更改。

9.你已经准备好机器并准备就绪。本机包含不同的环境,这些环境具有你可能需要的各种库。这台特定的机器具有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

2.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/Download/index.aspx?lang=en-in

以上是我选择的特定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=Tesla
sudo sh NVIDIA-Linux-x86_64-410.129-diagnostic.run --no-drm --disable-nouveau --dkms --silent --install-libglvnd
modinfo nvidia | head -7
sudo modprobe nvidia

停止实例

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

结论

我一直觉得建立深度学习环境非常麻烦。

在此文中,我们通过使用深度学习社区AMI,TMUX和Jupyter Notebook的隧道技术,在最短的时间内在EC2上设置了新的深度学习服务器。该服务器已预先安装了你在工作中可能需要的所有深度学习库,并且开箱即用。

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

参考链接:https://towardsdatascience.com/stop-worrying-and-create-your-deep-learning-server-in-30-minutes-bb5bd956b8de

☆ END ☆

如果看到这里,说明你喜欢这篇文章,请转发、点赞。微信搜索「uncle_pn」,欢迎添加小编微信「 mthler」,每日朋友圈更新一篇高质量博文。

扫描二维码添加小编↓

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

  1. 如何零基础零费用的在30分钟内用hugo+github pages创建一个专属于你的个人博客 - 简单快捷到建议人手一个

    写这篇文章的原因是在网上看了很多的教程,踩了不少的坑,更多的白费了很多功夫,也没找到一篇从头到尾完整有效的个人建站方法. 有些教程年代久远,有些教程极为繁琐,有些教程压根跑不通. 为了方便自己,做个记 ...

  2. Ubuntu16+Docker19.03+CUDA10+Tensorflow2.0+Pyorch 多用户深度学习服务器环境配置与使用指南

    服务器只有一台,大家天天用sudo改环境最后炸了?可以采用Docker,在容器里面爱装啥装啥. 目录 深度学习服务器环境配置 安装Ubuntu Server 16.04.这一步骤网上教程很多,简略带过 ...

  3. k8s aws 部署_如何在短短30分钟内使用CircleCI设置到AWS S3的持续部署

    k8s aws 部署 by Adam Watt 通过亚当·瓦特 如何在短短30分钟内使用CircleCI设置到AWS S3的持续部署 (How to setup Continuous Deployme ...

  4. 30分钟内使用MongoDB

    最近,我被NoSQL错误咬住了-或是我的同事Mark Atwell提出的"燃烧在哪里!" 运动. 尽管我无意于在不久的将来或可预见的将来回避友好的" SELECT ... ...

  5. 机器人坐标系建立_如何在30分钟内建立一个简单的搜索机器人

    机器人坐标系建立 by Quinn Langille 奎因·兰吉尔(Quinn Langille) 如何在30分钟内建立一个简单的搜索机器人 (How to Build A Simple Search ...

  6. 使用 ChatGPT 在短短 5 分钟内创建您的个人简历网站(并免费托管)

    在这篇博文中,我们将向您展示如何使用 ChatGPT 这种强大的语言模型,在短短 5 分钟内创建一个个人简历网站.我们还将向您展示如何在 ChatGPT 的帮助下免费托管您的网站! 在当今的数字时代, ...

  7. 如何实现生成订单30分钟内未支付则自动取消?

    如何实现生成订单30分钟内未支付则自动取消? 数据库轮询 JDK的延迟队列 Quartz 时间轮算法 使用消息队列 数据库轮询 不是很推荐的一种方式,需要定时扫描数据库,借助定时任务工具,如果是多服务 ...

  8. 服务器创建多个dhcp服务_如何在15分钟内创建无服务器服务

    服务器创建多个dhcp服务 by Charlee Li 通过李李 如何在15分钟内创建无服务器服务 (How to create a serverless service in 15 minutes) ...

  9. 请使用recaptcha_如何在30分钟内使用ReCaptcha和PHP构建Bootstrap电子邮件表单

    请使用recaptcha by Ondrej Svestka 通过Ondrej Svestka 如何在30分钟内使用ReCaptcha和PHP构建Bootstrap电子邮件表单 (How to bui ...

最新文章

  1. 一次SQL查询优化原理分析(900W+数据,从17s到300ms)
  2. PHP:echo、print、print_r() 和 var_dump()
  3. 导入Excel和CSV文件
  4. 键盘各个键对应的ASCLL值
  5. Laravel 5.2问题-----postman进api的post请求,为什么出现Forbidden?
  6. markdowndd
  7. CSS中的 ',' 、''、'+'、'~'
  8. 第三章 MongoDb Java应用 3.2
  9. 云计算已在大数据分析中发挥重要作用
  10. python求直角三角形斜边底下的数值怎么输_如何用用户输入的值求三角形的角,以及如何绘制i...
  11. Win11如何添加过时硬件?Win11添加过时硬件的方法
  12. 如何获取函数的变长参数(va_list, va_start, va_arg, va_end)
  13. AD PCB板子长度宽度 PCB板子尺寸大小信息
  14. 《关于动态社交网络建模和分析的教程》的读书笔记
  15. 黑盒测试设计专题:正交试验
  16. Java 合并、拆分PDF文档
  17. 高性能服务器架构拓扑图,topology: 开源、易扩展、方便集成的在线绘图(微服务架构图、网络拓扑图、流程图等)工具...
  18. 4.3 CPU性能侦测
  19. 【李宏毅机器学习】TransFormer框架基础储备知识(p51) 学习笔记 | 全程手码,放心食用
  20. 2017 ACM ICPC Asia Regional - Daejeon Programming Constest

热门文章

  1. 干货来了,PHP截取网页源码内所有amp;amp;lt;aamp;amp;gt;标签,并形成数组
  2. 男士穿衣七大禁忌,千万要避免
  3. Python3.5 email发送邮件,包含txt、图片、HTML、附件
  4. 从旺店通·企业奇门到用友U8通过接口集成数据
  5. ios屏幕兼容 phone4和iphone5的屏幕尺寸不同,在程序中兼容
  6. 无监督学习KMeans学习笔记和实例
  7. 从长远看以后会工作方向以及学习内容
  8. 前端为什么这么麻烦之浏览器
  9. sql索引--Index
  10. 北京航空航天大学王田苗教授:人工智能与机器人前沿科技发展与投资布局