Skip to content

Latest commit

 

History

History
119 lines (71 loc) · 5.43 KB

run-deep-learning-experiments-linux-server.md

File metadata and controls

119 lines (71 loc) · 5.43 KB

如何在 Linux 服务器上运行深度学习实验

原文: https://machinelearningmastery.com/run-deep-learning-experiments-linux-server/

编写代码后,必须在具有大量 RAM,CPU 和 GPU 资源的大型计算机上运行深度学习实验,通常是云中的 Linux 服务器。

最近,我被问到这个问题:

“你如何进行深度学习实验?”

这是一个我喜欢回答的好问题。

在这篇文章中,您将发现我用于在 Linux 上运行深度学习实验的方法,命令和脚本。

阅读这篇文章后,你会知道:

  • 如何设计建模实验以将模型保存到文件。
  • 如何运行单个 Python 实验脚本。
  • 如何从 shell 脚本顺序运行多个 Python 实验。

让我们开始吧。

How to Run Deep Learning Experiments on a Linux Server

如何在 Linux 服务器上运行深度学习实验 Patrik Nygren 的照片,保留一些权利。

1. Linux 服务器

我在工作站上编写了所有建模代码,并在远程 Linux 服务器上运行所有代码。

目前,我的偏好是在 EC2 上使用亚马逊深度学习 AMI 。有关为自己的实验设置此服务器的帮助,请参阅帖子:

2.建模代码

我编写代码,以便每个 python 文件有一个实验。

大多数情况下,我正在处理大型数据,如图像字幕,文本摘要和机器翻译。

每个实验都适合模型,并将整个模型或权重保存到 HDF5 文件,以便以后重复使用。

有关将模型保存到文件的更多信息,请参阅以下帖子:

我尝试准备一套实验(通常是 10 个或更多)以便在一个批次中运行。我还尝试将数据准备步骤分离为首先运行的脚本,并创建可随时加载和使用的训练数据集的 pickle 版本。

3.运行实验

每个实验可能会在训练期间输出一些诊断信息,因此,每个脚本的输出都会重定向到特定于实验的日志文件。如果事情失败,我也会重定向标准错误。

在运行时,Python 解释器可能不会经常刷新输出,尤其是在系统负载不足的情况下。我们可以使用 Python 解释器上的 -u 标志强制将输出刷新到日志中。

运行单个脚本(myscript.py)如下所示:

python -u myscript.py >myscript.py.log 2>&1

我可以创建一个“_ 模型”_ 和一个“_ 结果”_ 目录,并更新要保存到这些目录的模型文件和日志文件,以保持代码目录清晰。

4.运行批量实验

每个 Python 脚本都按顺序运行。

创建一个 shell 脚本,按顺序列出多个实验。例如:

#!/bin/sh

# run experiments
python -u myscript1.py >myscript1.py.log 2>&1
python -u myscript2.py >myscript2.py.log 2>&1
python -u myscript3.py >myscript3.py.log 2>&1
python -u myscript4.py >myscript4.py.log 2>&1
python -u myscript5.py >myscript5.py.log 2>&1

该文件将保存为“ run.sh”,与代码文件放在同一目录中并在服务器上运行。

例如,如果所有代码和 run.sh 脚本都位于“ ec2-user ”主目录的“experiments”目录中,则脚本将按如下方式运行:

nohup /home/ec2-user/experiments/run.sh > /home/ec2-user/experiments/run.sh.log </dev/null 2>&1 &

该脚本作为后台进程运行,无法轻易中断。我还捕获了这个脚本的结果,以防万一。

您可以在本文中了解有关在 Linux 上运行脚本的更多信息:

就是这样。

进一步阅读

如果您希望深入了解,本节将提供有关该主题的更多资源。

摘要

在这篇文章中,您发现了我用于在 Linux 上运行深度学习实验的方法,命令和脚本。

具体来说,你学到了:

  • 如何设计建模实验以将模型保存到文件。
  • 如何运行单个 Python 实验脚本。
  • 如何从 shell 脚本顺序运行多个 Python 实验。

你有任何问题吗? 在下面的评论中提出您的问题,我会尽力回答。