1. 釋放GPU內(nèi)存
現(xiàn)象
:ctrl+z
中斷程序運行后,發(fā)現(xiàn)GPU內(nèi)存沒有釋放(用$ nvidia-smi命令查看)
解決辦法
:kill 進程,釋放內(nèi)存
$ sudo fuser -v /dev/nvidia* #查找占用GPU資源的PID
查找到PID號后,利用以下命令釋放內(nèi)存:
$ kill -9 11747 # 11747 is the PID number
再次執(zhí)行 nvidia-smi 查看GPU使用情況。
2. 掛載遠程目錄到本地
背景
:不喜歡Linux下vim編輯代碼的方式,又不想來回的將本地代碼拷貝到服務器
解決辦法
:將服務器目錄掛載到本地,用本地編輯器編輯代碼。
以Mac為例:
$ brew install sshfs
brew是Mac下的套件管理工具, 請參考Homebrew進行安裝。
安裝sshfs過程中可能會報錯:
sshfs: OsxfuseRequirement unsatisfied!
You can install with Homebrew-Cask:
brew cask install osxfuse
You can download from:
https://osxfuse.github.io/
Error: An unsatisfied requirement failed this build.
按照提示,執(zhí)行以下命令:
$ brew cask install osxfuse
安裝成功后再次執(zhí)行brew install sshfs
命令。然后用sshfs掛載遠程目錄到本地:
$ sshfs -C -o reconnect <user>@<host>:<remote_dir> <local_dir>
例如,我的遠程服務器是zhangsan@gpu-2,要掛載的服務器文件路徑是 /home/zhangsan/tensorflow/,放到本地的路徑是/Users/zhangsan/tensorflow/。則上面完整的命令就是:
$ sshfs -C -o reconnect zhangsan@gpu-2:/home/zhangsan/tensorflow/ /Users/zhangsan/tensorflow/
執(zhí)行過程中系統(tǒng)會要求進入系統(tǒng)管理的安全設置里面,按照提示操作,并輸入遠程服務器登陸密碼即可。
隨后在本地路徑會看到如下圖標,雙擊打開進入就是遠程文件。我們對這個文件的所有操作都等同于在服務器中操作。
每次重啟電腦后要重新mount,如果覺得不方便,可以利用
alias
給這個命令設置別名。
$ alias sshfs1='sshfs -C -o reconnect zhangsan@gpu-2:/home/zhangsan/tensorflow/ /Users/zhangsan/tensorflow/'
$ source .bash_profile
這樣,每次執(zhí)行sshfs1
就相當于上面一長串的命令了。注意:等號兩邊沒有空格
這種修改方式只對當前終端窗口有效,再打開一個終端窗口或者重啟系統(tǒng)就不起作用了。如果想永久使用別名,需要修改/etc/bashrc文件
$ cd /etc/
$ vim bashrc
:wq!
退出。
3. nohup print中文出現(xiàn)亂碼
export PYTHONIOENCODING=gbk