日前需要用到遠程服務器的高性能計算機來跑實驗,但是非常苦惱的時候我需要GridSearch來選擇優參
然鵝這個過程是比較漫長的,然後我通過EasyConnect連接上去了以後呢,經常跟我說我的連接超時了,需要重新登錄。
把我的網絡連接一斷,我在服務器跑得進程就全部都退出了,我跑了快兩天的心血又炸了,這就讓我心很累了。
然後現在發現通過nohup來在服務器上面跑不怕ssh斷開的影響。
nohup /home/***/anaconda3/envs/cloud/bin/python3.6 -u /home/****/****/xxx.py > XXXX.out 2>&1 &
我們使用nohup命令,然後中間是你的運行命令,然後後面的 > XXXX.out 2>&1 & 是一個重定向,將這個運行命令裏面的輸出重定向到 XXXX.out文件裏面去,最後的一個& 是必要的,這說明了放在後臺運行,這樣ssh在斷開的時候也不會斷開了。
使用了這個命令以後呢,輸出你直接查看XXXX.out就應該可以看到運行命令以後的輸出了。
但是在跑python文件的時候,在PyCharm的工程下面跑的時候很和諧啊,但是爲什麼到了服務器終端上面跑得時候就瘋狂給我輸出Module Not Found的錯誤呢?
這裏就應該是在服務器上的參數設定沒有在PyCharm這種IDE這麼好?
加入這樣文件結構:
·········A
·······B
·····c
·····d
·······E
·····f
·····g
·······H
·····i
我現在運行文件在E文件夾下面的f,那我的這個f要引用到B文件夾下面的d的時候就會給我報Module Not Found的錯誤
這個時候我就這樣:
在我的運行文件裏面的頭部加上這些代碼:
import sys
import os
curPath = os.path.abspath(os.path.dirname(__file__))
rootPath = os.path.split(curPath)[0]
sys.path.append(rootPath)
然後下面該怎麼引用還是怎麼引用,就可以啦
(如果可以的話,打賞我一點去買饅頭唄,謝謝謝謝~~~)