当前位置:首页 > 智能硬件 > 人工智能AI
[导读] 在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 脚本工作

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 没有测试过。

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 命令保持终端处于运行中

在本地执行远程命令

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读

车辆检测是一种基于深度学习的对象检测技术,用于识别和定位车辆(注:已修正原文中“检测人”一词的错误)。该技术可广泛应用于停车场管理、交通分析等多种场景,是非法停车识别、交通拥堵检测以及交通流量统计等多类应用的基础算法。

关键字: 深度学习 串口调试 数据集

今天,小编将在这篇文章中为大家带来增量学习的有关报道,通过阅读这篇文章,大家可以对它具备清晰的认识,主要内容如下。

关键字: 增量学习 深度学习

在下述的内容中,小编将会对增量学习的相关消息予以报道,如果增量学习是您想要了解的焦点之一,不妨和小编共同阅读这篇文章哦。

关键字: 增量学习 深度学习

在下述的内容中,小编将会对增量学习的相关消息予以报道,如果增量学习是您想要了解的焦点之一,不妨和小编共同阅读这篇文章哦。

关键字: 增量学习 深度学习

工业CT(计算机断层扫描)技术通过X射线穿透物体并重建三维结构,已成为航空航天、汽车制造、新能源等领域的关键无损检测手段。然而,传统工业CT图像分析依赖人工判读或阈值分割算法,对0.1mm级微裂纹、气孔等缺陷的识别存在漏...

关键字: 深度学习 工业CT图像 缺陷检测

在工业设备预测性维护场景中,声纹识别技术通过分析设备运行噪声中的异常特征,可提前3-7天预警轴承磨损、齿轮断裂等故障。然而,工业现场存在强电磁干扰、多源噪声耦合等复杂环境,对硬件系统的实时性、抗噪性与可靠性提出严苛要求。...

关键字: 深度学习 声纹识别
关闭