如何將Linux終端輸出的信息寫入日誌文件進行保存

現如今深度學習日益變得火爆,最明顯的地方就是深度學習的訓練平臺變得日益衆多,例如Google的conlab 百度的paddlepaddle的框架平臺,但是大氣多數平臺的操作系統均爲Linux系統,因此掌握基本的Linux系統知識必不可少。同時深度學習的模型日益變得深不見底,即使有Tesla v100這樣的GPU也要訓練一天左右。同時針對如yolov3 等目標檢測的深度學習模型則更加長時間。如果在Linux的終端執行中突然發生遠程連接的中斷,就會很苦惱。因此需要藉助方法使得當Linux系統發生遠程連接中斷時仍然可以觀察loss與acc的輸出值。
Linux的nohup指令

nohup command &

nohup爲不掛起的終端命令,即使終端意外關閉,仍然在後臺進行執行執行,但是對於深度學習來說,僅僅在後臺執行最後得到訓練好的model遠遠不夠,很多時候對於經驗老道的“煉丹師”最開始幾行的loss輸出既可以判斷錯誤,所以需要將輸出進行實時的監督

nohup command out.file 2>&1 &

這行代碼就是將運行指令的輸出存入out.file文件 默認是nohup.out文件,2>&1的代碼作用是將輸出的錯誤信息也存入out.file文件,&是這個代碼的重點。代表此條指令在後臺運行。
例如:

python train.py command out.file 2>&1 &

計算機會在執行模型訓練文件,並且將輸出存放在out.file進行日誌的整理。
相對來時更適合在服務器進行,這樣使得代碼在遠程進行執行,在訓練結束後進行log文件的查看即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章