文章目录
- 1. 在单个GPU上训练模型
- 1.1 使用nohup命令运行Python脚本
- 1.2 查看运行中的进程
- 1.3 查看输出日志
- 2. 在多个GPU上训练模型
- 2.1 启动第一个程序,指定使用第0号GPU
- 2.2 启动第二个程序,指定使用第1号GPU
- 2.3 查看运行中的进程
- 2.4 查看输出日志
- 3. 总结
在机器学习和深度学习中,训练模型时经常需要使用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