使用nohup和CUDA_VISIBLE_DEVICES进行GPU训练的教程

发布于:2024-07-07 ⋅ 阅读:(42) ⋅ 点赞:(0)


在这里插入图片描述

在机器学习和深度学习中,训练模型时经常需要使用GPU来加速计算。本文将介绍如何使用nohup命令和CUDA_VISIBLE_DEVICES环境变量在后台运行Python脚本,并指定使用特定的GPU进行训练。

1. 在单个GPU上训练模型

如果你只有一个GPU,或者只需要在一个GPU上运行一个程序,可以按照以下步骤进行操作:

1.1 使用nohup命令运行Python脚本

nohup命令可以在用户退出会话后继续运行指定的命令。以下命令将Python脚本放到后台运行,并将输出重定向到nohup.out文件:

nohup python xxx.py &

1.2 查看运行中的进程

使用ps命令和grep可以查看当前运行的Python进程:

ps -ef | grep python

1.3 查看输出日志

使用tail命令可以查看输出日志的内容:

tail -f nohup.out

2. 在多个GPU上训练模型

如果你有多块GPU,并希望在不同的GPU上同时运行多个程序,可以使用CUDA_VISIBLE_DEVICES环境变量来指定使用哪个GPU。

2.1 启动第一个程序,指定使用第0号GPU

以下命令将第一个Python脚本放到后台运行,并将输出重定向到output1.log文件中:

nohup bash -c "CUDA_VISIBLE_DEVICES=0 python xxx.py" > output1.log 2>&1 &

2.2 启动第二个程序,指定使用第1号GPU

以下命令将第二个Python脚本放到后台运行,并将输出重定向到output2.log文件中:

nohup bash -c "CUDA_VISIBLE_DEVICES=1 python xxx.py" > output2.log 2>&1 &

2.3 查看运行中的进程

同样,使用ps命令和grep可以查看当前运行的Python进程:

ps -ef | grep python

2.4 查看输出日志

使用tail命令分别查看两个程序的输出日志:

tail -f output1.log
tail -f output2.log

3. 总结

通过使用nohup命令和CUDA_VISIBLE_DEVICES环境变量,可以方便地在后台运行Python脚本,并指定使用特定的GPU进行训练。这样可以提高模型训练的效率,同时避免因会话断开而导致的训练中断。希望本文能对你在使用GPU训练机器学习模型时有所帮助。

# 结束进程!
kill -9 ID

在这里插入图片描述


网站公告

今日签到

点亮在社区的每一天
去签到