本文的重要内容包含:
- 在本机和EC2实例间复制数据
- 使脚本按天,周,月安然地运行
- 监测过程,体系和GPU 的机能
6、监测体系和过程的机能

在AWS上履行大年夜范围的深度进修处理是一个便宜并且有效的进修和开辟方法。花少量的钱就可以应用数十GB的内存,数十个CPU,多个GPU,这是值得推荐的。
如不雅你是应用EC2或者Linux 敕令的新人,在云端履行深度进修脚本的时刻, 这些敕令是异常有效的。
留意:所有敕令在类linux情况中履行(Linux,OS x 或者 cygwin)
0、情况商定
假设AWS EC2 已经正常运行,便利起见,对情况做如下的设定:
- EC2 办事器的IP地址为 54.218.86.47
- 用户名为ec2-user
- SSH 密钥位于 ~/.ssh/ 中,文件名为aws-keypair.pem;
- 应用Python 脚本工作
https://machinelearningmastery.com/develop-evaluate-large-deep-learning-models-keras-amazon-web-services/
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 </dev/null 2>&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 </dev/null 2>&1 &
关于若何搭建一个 基于GPU的EC2实例来 履行深度进修,可以拜见:
如不雅有4个GPU的话,可以指定CUDA_VISIBLE_DEVICES大年夜0到3。这在TF做后台的Keras上是可行的,在Theano 没有测试过。
关于CUDA_VISIBLE_DEVICES 的更多信息可以拜见https://devblogs.nvidia.com/parallelforall/cuda-pro-tip-control-gpu-visibility-cuda_visible_devices/
5、监测脚本的输出
- scp -i ~/.ssh/aws-keypair.pem ec2-user@54.218.86.47:~/*.png .
- tail -f script.py.log
遗憾的是,当屏幕上在一段时光没有输出的时刻,AWS 会封闭这个终端,所以最好应用:
- watch "tail script.py.log"
有的时刻看不到python的标准输出,不知道是python的问题照样EC2的问题。
10、大年夜办事器高低载文件
监测EC2体系的机能是有意义的,尤其是已经应用了或还剩下若干内存。例如:
- top -M
或者指定过程标识PID:
- top -p PID -M
7、监测GPU 机能
如不雅在GPU上同时履行多个脚本,并行履行的话,查看每个GPU 的机能和应用率是不错的主意。例如:

网友点评
精彩导读
科技快报
品牌展示