在亚马逊网络服务CE2上运行大型深度学习进程是学习和开发模型的一种廉价有效的方法。你只需花费几美元就能够使用几千兆的内存,数十个CPU内核和多个GPU。我强烈推荐它。如果你敢接触到CE2或者Linux命令行,当你在云上运行深度学习脚本时你会发现一套价值无法估量的命令。

读完这篇文章,你就会知道:

如何从EC2实例复制数据。

如何安全的运行脚本几天、几周或几个月。

如何监控流程、系统和GPU性能。

现在开始

注意:来自工作站的所有命令都假定你正在一个Linux类型的环境中(如Linux、OS X或cygwin)。

中运行

综述

本文中给出的命令假定你的AWS EC2实例已经在运行了。

为了保持一致性,还做了一些其他的假设:

你的服务器IP地址是54.218.86.47;将它更改为你的服务器实例的IP地址。

你的用户名是ec2-user;将它更改为你的实例上的用户名。

你的SSH密钥位于~ /。ssh /并有文件名aws – keypair.pem;将它更改为SSH密钥位置和文件名。

你正在使用Python脚本。

如果你需要建立并运行一个基于GPU的AWS EC2的实例进行深度学习,请参阅教程:

1 从工作站登录到服务器

在开始工作之前,需要先登录服务器。

你可以使用SSH安全壳轻松登录。

我建议在~/.ssh/目录中存储SSH密钥。使用“aws – keypair.pem”这个名字。记住:文件必须具有权限600。

使用下面的命令登录到你的服务器实例。请记住将用户名和IP地址更改为你的相关用户名和服务器实例IP地址。

ssh -i ~/.ssh/aws-keypair.pem ec2-user@54.218.86.47

2 将工作站的文件复制到服务器

使用安全复制(scp)将工作站的文件复制到服务器实例。

下面是运行工作站上的复制脚本的例子,将工作站上本地目录中的script.py Python脚本复制到服务器实例。

scp -i ~/.ssh/aws-keypair.pem script.py ec2-user@54.218.86.47:~/

3 在服务器上运行脚本作为后台进程

你可以运行Python脚本作为后台进程。

此外,你可以以这样一种方式运行它:让它忽略其他进程的信号,忽略任何标准输入(stdin),并将所有输出和错误转发到日志文件。

根据我的经验,这些需要长时间运行的脚本,以适应大型深度学习模型。

nohup python /home/ec2-user/script.py >/home/ec2-user/script.py.log &1 &

假设你正在运行位于/ home / ec2 – user/目录中的py Python脚本。将此脚本的输出转发到位于同一目录下script.py.log中。

调整需求。

如果这是你第一次使用nohup,可以在这里学到更多:

如果这是你第一次使用重定向标准输入(stdin)、标准输出(stout)和标准错误(sterr),可以在这里学到更多:

4 在服务器特定的GPU上运行脚本

如果AWS EC2实例能够解决你的问题,我建议一次运行多个脚本。

例如,你选择的EC2实例可能有4个GPU,你可以在每一个GPU上运行一个脚本。

使用CUDA,你可以指定环境变量CUDA_VISIBLE_DEVICES使用哪个GPU设备。

我们使用和上面一样的命令去运行脚本,并且指定特定的GPU设备。

CUDA_VISIBLE_DEVICES=0 nohup python /home/ec2-user/script.py >/home/ec2-user/script.py.log &1 &

如果你的实例上有4个GPU设备,可以指定CUDA_VISIBLE_DEVICES = 0到CUDA_VISIBLE_DEVICES = 3。

我希望这可以为Theano后端工作,但我只对Keras的TensorFlow后端进行了测试。

你可以在文章中了解更多关于CUDA_VISIBLE_DEVICES的信息:

5 在服务器上监控脚本输出

当脚本运行的时候你可以监控脚本的输出。

如果在每一个新纪元或每个算法运行之后输出一个分数,这可能是有用的。

这个示例将列出你的脚本日志文件的最后几行,并将输出作为新行添加到脚本中。

tail -f script.py.log

如果屏幕在一段时间内没有得到新的输出,亚马逊可能会积极关闭你的终端。

另一种选择是使用watch命令。我发现亚马逊将一直保持这个终端开放:

watch "tail script.py.log"

python脚本中标准输出并不经常更新。

我不知道它是属于EC2还是Python。这意味着你可能不会经常看到日志中的输出。当缓冲区达到固定大小或运行结束时,它似乎会被缓冲并输出。

6 在服务器上监控系统和过程性能

监控EC2系统性能是一个好想法,特别是对你正在使用的和剩余的RAM数量。

你可以使用几秒更新一次的top 命令。

top -M

如果你知道进程标识符(PID),你还可以监控系统和流程。

top -p PID -M

7 在服务器上监控GPU性能

一直关注GPU性能是非常好的。

如果你打算GPU RAM中并行运行多个脚本,请关注GPU运行和GPU利用率。

你可以使用nvidia-smi命令来关注GPU的使用情况。 我喜欢使用保持终端打开的watch命令,并为每个新结果清除屏幕。

watch "nvidia-smi"

8 在服务器上检查仍然运行的脚本

关注仍在运行的脚本也很重要。

可以使用ps命令执行此操作。

我喜欢使用watch命令来保持终端的打开状态。

watch "ps -ef | grep python"

9 在服务器上编辑文件

我不建议在服务器上编辑文件,除非真的有必要。

不过,可以使用vi编辑器编辑文件。

下面的例子是在vi中打开脚本。

vi ~/script.py

当然,你可以使用你喜欢的命令行编辑器,如emacs。

如果这是你第一次接触到vi,你可以在这里了解更多:

10 将文件从服务器下载到工作站

我建议你将模型、所有结果和图形显式保存为新的、单独的文件作为脚本的一部分。

你可以使用安全复制(scp)将这些文件从服务器实例下载到工作站。

下面的例子在你的工作站运行,并将所有PNG文件从主目录复制到工作站。

scp -i ~/.ssh/aws-keypair.pem ec2-user@54.218.86.47:~/*.png .

服务器指定gpu命令,用于亚马逊网络服务深度学习的10个命令行技巧相关推荐

  1. AWS(Amazon Web Services, 亚马逊网络服务系统)简介

    1.简介 亚马逊网络服务系统(英语:Amazon Web Services,简称为AWS),由亚马逊公司所建立的云端运算平台,提供许多远端Web服务.Amazon EC2与Amazon S3都架构在这 ...

  2. 全球与中国亚马逊网络服务渠道合作伙伴市场现状及未来发展趋势

    本文研究全球及中国市场亚马逊网络服务渠道合作伙伴现状及未来发展趋势,侧重分析全球及中国市场的主要企业,同时对比北美.欧洲.中国.日本.东南亚和印度等地区的现状及未来发展趋势. 根据QYR(恒州博智)的 ...

  3. 亚马逊aws服务取消_亚马逊网络服务(AWS)

    亚马逊aws服务取消 Amazon Web Services (AWS) has been much a talk since more than a decade. The credit goes ...

  4. 亚马逊Alexa的深度学习与语音识别的核心技术原理

    相关推荐 随着语音巨头抢占语音入口,蓝牙设备智能化已成为下一波竞争的关键,而身处其中的无线蓝牙耳机正披着"智能... 发表于 2018-04-04 10:34 • 37次阅读 训练数据来自于 ...

  5. 微软亚马逊联手发布深度学习库Gluon,适合所有段位的炼丹师

    安妮 编译整理 量子位 出品 | 公众号 QbitAI 昨天,亚马逊AWS和微软共同宣布推出深度学习库Gluon.Gluon为各种水平的深度学习开发人员设计,帮助炼丹师们在云端.App和其他设备上设计 ...

  6. 亚马逊云计算服务将支持甲骨文数据库

    亚马逊和甲骨文日前宣布,亚马逊网络服务的Relational Database Service服务将于今年第二季度开始支持甲骨文的数据库. 此前,Salesforce.com宣布推出Database. ...

  7. 亚马逊云计算服务器在哪,亚马逊云服务(AWS)的“服务器型号“已近400种

    亚马逊云服务(AWS)的"服务器型号"已近400种 2021-02-04 10:59:06   来源:IT运维网> 2021年1月28日,亚马逊云服务(AWS)正式宣布,由 ...

  8. 亚马逊云服务开通指南_亚马逊弹性容器服务初学者指南

    亚马逊云服务开通指南 This article is a beginner's high level look at Amazon ECS. We'll cover core concepts, te ...

  9. 亚马逊云服务(AWS)中国宁夏及北京区域正式上线Amazon SageMaker

    Amazon SageMaker 是一项完全托管的服务,使开发者和数据科学家能够更广泛.更成功地使用机器学习 亚马逊云服务Amazon Web Services, Inc. (AWS) 今天宣布,Am ...

最新文章

  1. 如何去掉latex中默认显示的日期
  2. [转].Net实现本地化简易教程
  3. 如何在linux(ubuntu)的wine环境下开启source insight的tabsihost(或tabsiplus)
  4. bootcmd和bootargs
  5. 腾讯天衍实验室新算法入选国际万维网大会 新冠疫苗AI问答上线
  6. Android新增输入设备
  7. 用双十一的故事串起碎片的网络协议(中)
  8. mongodb默认的用户名密码_Linux如何安装、运行MongoDB教程
  9. 自动登录SAP系统(流星程序集之十八)
  10. 改进型MUSIC算法(python)
  11. 海康sdk远程门禁_海康SDK-javademo实现
  12. 北交《交通需求管理》
  13. 笔记本电脑连接无线局域网怎么设置?
  14. 从Jdk8到Jdk12的Java虚拟机垃圾回收(垃圾收集)相关论文和官方网站集锦
  15. shell检测连接数最多的IP
  16. Linux I2C驱动
  17. 冷风骑车与贝多芬的命运交响曲
  18. VR虚拟现实购物解决方案
  19. html重叠图片滑动效果,CSS3/jQuery实现移动端滑动图片层叠效果
  20. 几大小程序游戏平台的对比分析

热门文章

  1. Kotlin为什么会火起来,有什么特点,跟Java区别
  2. mini2440之--pwm程序
  3. 基于STM32F103 0.96寸OLED液晶屏驱动(iic通讯)
  4. 难以解释的数据异常-回归均值效应
  5. 心理健康蓝皮书《中国国民心理健康发展报告2022》
  6. 新政出台,网络货运推动物流高质量发展
  7. 联想微型计算机M3500q怎么拆,爆发小宇宙 创新与实用完美结合联想M3500q
  8. java过滤器(Filter)
  9. ES6转为ES5 AST
  10. 微软的文本转语音服务,已经听不出是机器了