您的位置 首页 电源

根据AWS运用深度学习的10个Linux指令

在AWS上执行大规模的深度学习处理是一个廉价而且有效的学习和开发方式。花少量的钱就可以使用数十GB的内存,数十个CPU,多个GPU,这是值得推荐的。如果你是使用EC2或者Linux命令的新人,

  在AWS上履行大规模的深度学习处理是一个廉价并且有用的学习和开发方式。花少数的钱就能够运用数十GB的内存,数十个CPU,多个GPU,这是值得引荐的。

  假如你是运用EC2或许Linux 指令的新人,在云端履行深度学习脚本的时分, 这些指令对错常有用的。

  本文的主要内容包含:

  1)在本机和EC2实例间仿制数据

  2)使脚本按天,周,月安全地运转

  3)监测进程,体系和GPU 的功能

  留意:一切指令在类linux环境中履行(Linux,OS x 或许 cygwin)

  0、环境约好

  假定AWS EC2 现已正常运转,便利起见,对环境做如下的设定:

  1)EC2 服务器的IP地址为 54.218.86.47

  2)用户名为ec2-user

  3)SSH 密钥坐落 ~/.ssh/ 中,文件名为aws-keypair.pem;

  4)运用python 脚本作业

  关于怎么建立一个 根据GPU的EC2实例来 履行深度学习,能够拜见:

  https://machinelearningmastery.com/develop-evaluate-large-deep-learning-…

  1、 登陆到服务器

  在做任何操作之前,首先要登陆到方针服务器。简略地,运用SSH指令。将SSH 密钥存储在 ~/.ssh/ 中,运用有含义的文件名,例如aws-keypair.pem。运用如下指令登陆EC2主机,留意地址和用户名:

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

  2、 复制文件到服务器

  运用SCP指令复制本地文件到服务器,例如将script.py 文件复制到EC2 服务器的指令如下:

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

  3、使脚本在服务器的后台运转

  在服务的后台履行脚本,能够疏忽其他进行的信号量,疏忽规范的输入输出,将一切的输出和错误信息重定向到一个日志文件中。关于需求长期运转的深度学习模型而言, 这对错常必要的。

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

  该指令中script.py 和 script.py.log 都坐落 /home/ec2-user/ 目录下。关于 nohup 和重定向 参阅其他的具体介绍(例如wikipedia中的介绍)。

  4、在服务器的指定 GPU 上履行脚本

  假如EC2 支撑的话,引荐在一起运转多个脚本。例如,EC2有4个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到3。这在TF做后台的Keras上是可行的,在Theano 没有测试过。

  关于CUDA_VISIBLE_DEVICES 的更多信息能够拜见 https://devblogs.nvidia.com/parallelforall/cuda-pro-tip-control-gpu-visi…

  5、监测脚本的输出

  假如输出成果中有项目评分或许一个算法的运转成果,实时监控脚本的输出是很有含义的。示例如下:

  tail -f script.py.log

  惋惜的是,当屏幕上在一段时间没有输出的时分,AWS 会封闭这个终端,所以最好运用:

  watch "tail script.py.log"

  有的时分看不到python的规范输出,不知道是python的问题仍是EC2的问题。

  6、监测体系和进程的功能

  监测EC2体系的功能是有含义的,尤其是现已运用了或还剩余多少内存。例如:

  top -M

  或许指定进程标识PID:

  top -p PID -M

  7、监测GPU 功能

  假如在GPU上一起履行多个脚本,并行履行的话,查看每个GPU 的功能和运用率是不错的主见。例如:

  watch "nvidia-smi"

  8、查看脚本是否还在服务器上运转

  一般地,会坚持终端一直是开着的。

  watch "ps -ef | grep python"

  9、在服务器上修正文件

  一般不主张在服务器直接修正,当然你熟知vi在外:

  vi ~/script.py

  vi 的用法就不在这里赘述了。

  10、从服务器上下载文件

  与上传文件相对,这是一个下个png文件的比如:

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

  需求留意的几点

  假如期望一起运转多个脚本,最好选用具有多个GPU 的EC2

  最好在本地编写脚本

  将履行成果输出到文件,下载到本地进行剖析

  运用watch 指令坚持终端处于运转中

  在本地履行长途指令

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/dianyuan/184090.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部