在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.472)用户名为ec2-user3)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.472。将文件复制到服务器使用SCP命令将本地文件复制到服务器,例如脚本将.py文件复制到EC2服务器的命令如下:scp -i〜/ .ssh / aws-keypair.pem脚本.py ec2-user@54.218.86.47:〜/ 3。使脚本在服务器后台和服务后台运行。执行脚本,您可以忽略其他正在进行的信号量,忽略标准输入和输出,并将所有输出和错误消息重定向到日志文件。对于需要长时间运行的深度学习模型来说,这是非常必要的。 & gt; nohup python /home/ec2-user/script.py& gt; /home/ec2-user/script.py.log& amp; 1& amp;在此命令中,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& amp; 1& amp;如果您有4个GPU,则可以在0到3之间指定CUDA_VISIBLE_DEVICES。这在Keras上是可能的,其中TF做后端,并且尚未在Theano中进行测试。 5.监视脚本的输出如果输出结果中有项目分数或算法的运行结果,则实时监视脚本的输出非常有意义。示例如下:tail -f script.py.log不幸的是,当屏幕在一段时间内没有任何输出时,AWS将关闭终端,因此最好使用:watch& quot; tail script .py.log& quot;有时我看不到python的标准输出。我不知道这是python问题还是EC2问题。 6.监视系统和进程的性能监视EC2系统的性能,特别是已使用或剩余的内存量,非常有意义。例如:top -M或指定的进程ID PID:top -p PID -M7。监控GPU性能。如果同时在GPU上执行多个脚本并并行执行多个脚本,则最好检查每个GPU的性能和利用率。例如:观看& quot; nvidia-smi& quot; 8.检查脚本是否仍在服务器上运行。通常,它将使终端始终保持打开状态。观看" ps -ef | grep python& quot; 9.通常不建议您直接在服务器上编辑文件,除非您熟悉vi:vi〜/ script.pyvi的用法在此不再重复。 10.从服务器下载文件与上传文件有关。这是下一个png文件的示例:scp -i〜/ .ssh / aws-keypair.pem ec2-user@54.218.86.47:〜/ *。png。需要注意的事项如果要同时运行多个脚本,最好选择具有多个GPU的EC2。最好在本地编写脚本,以将执行结果输出到文件中,然后将其下载到本地进行分析。使用watch命令使终端保持运行并在本地执行它。远程指令