服务器训练数据 关闭终端,一文明白使用nohup将服务器训练程序后台运行不关闭+随时通过查看训练情况输出与visdom可视化...
使用nohup將訓練程序后臺不間斷運行+隨時查看訓練情況輸出與可視化
使用服務器進行遠程訓練
由于筆者經常需要使用服務器進行訓練,且有些模型訓練起來需要很長的時間,如Mask模型,故經常需要長期跑程序。由于我使用的是ssh登錄,因此斷網或者退出賬號時程序就會被kill。總結了以下常用的遠程訓練指令,幫你可以不間斷的訓練模型,并且隨時可以查看模型可視化結果。
nohup指令和查看輸出
nohup 是 no hang up 的縮寫,就是不掛斷的意思。
nohup命令:如果你正在運行一個進程,而且你覺得在退出帳戶時該進程還不會結束,那么可以使用nohup命令。該命令可以在你退出帳戶/關閉終端之后繼續運行相應的進程。
在缺省情況下程序的所有輸出都被重定向到一個名為nohup.out的文件中。
缺省輸出文件的寫法
nohup python3 -W ignore -m xxx.py
在這種寫法下,所有輸出被保存到該目錄的nohup.out內,且實時讀寫,如圖,使用ls查看該文件夾下的文件。
指定輸出文件的寫法
nohup python -u xxx.py > my_out_file.txt 2>&1 &
就會將xxx.py的輸出全部存到my_out_file.txt里
和CUDA一起用
有一臺服務器,服務器上有多塊兒GPU可以供使用,但此時只希望使用第2塊和第4塊GPU,但是我們希望代碼能看到的仍然是有兩塊GPU,分別編號為0,1,這個時候我們可以使用環境變量CUDA_VISIBLE_DEVICES來解決這個問題。
比如
CUDA_VISIBLE_DEVICES=1 只有編號為1的GPU對程序是可見的,在代碼中gpu[0]指的就是這塊兒GPU
CUDA_VISIBLE_DEVICES=0,2,3 只有編號為0,2,3的GPU對程序是可見的,在代碼中gpu[0]指的是第0塊兒,gpu[1]指的是第2塊兒,gpu[2]指的是第3塊兒
CUDA_VISIBLE_DEVICES=2,0,3 只有編號為0,2,3的GPU對程序是可見的,但是在代碼中gpu[0]指的是第2塊兒,gpu[1]指的是第0塊兒,gpu[2]指的是第3塊兒
CUDA指令在前
CUDA_VISIBLE_DEVICES=1 nohup python3 -W ignore -m xxx.py
實時查看out
使用vim nohup.out查看該文件。
為了實時查看輸出,在文件內使用 Shift + G的組合鍵快速跳到文件末尾。
跳到指定行:直接:+數字
配合visdom使用
有時我們會使用visdom將訓練結果可視化,但是登出系統會自動把visdom也關閉,影響查看效果,因此可以直接使用nohup打開visdom,這樣即使登出服務器,下次登入也可以在指定端口上訪問可視化結果。
nohup python -m visdom.server
Haorui.L
發布了2 篇原創文章 · 獲贊 1 · 訪問量 15
私信
關注
標簽:visdom,訓練,CUDA,nohup,gpu,GPU,out
來源: https://blog.csdn.net/weixin_46233323/article/details/104399179
總結
以上是生活随笔為你收集整理的服务器训练数据 关闭终端,一文明白使用nohup将服务器训练程序后台运行不关闭+随时通过查看训练情况输出与visdom可视化...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 古风一棵桃花树简笔画_为什么,很多农村家
- 下一篇: 资料员计算机知识大全,最新资料员专业基础