如今作深度學習相關的工做,因此不可避免的要使用到GPU.可是GPU在遠程服務器,調試真的很暈。
剛開始的使用2D網絡的時候在本地還能調試一下,可是自從使用了3D網絡,本地無法調試。只能本地改完代碼,上傳服務器,再用服務器來跑新的代碼,手動加print調試。23333
爲了不再作這麼傻的事,要把遠程調試的配置記錄下來。之後直接用Pycharm調試遠程服務器裏的docker container,美滋滋調試代碼 ssh error https://blog.csdn.net/wd2014610/article/details/79945424git
本地利用SSH連接遠程服務器交互數據,在本地Pycharm上顯示遠程結果。算法
在這步以前,你應該安裝好docker而且下載好了相應的image。(若是你有GPU,那麼同時須要配置好cuda)
若是你還沒用過Docker,那麼你須要先看看下面的連接,瞭解docker的原理。對配置遠程調試很是有幫助
Docker GitBook
準備工做都搞定了麼?
開始幹活咯~docker
接下來須要配置遠程服務器的ssh服務。
第一步,咱們須要在遠程服務器上安裝openssh-serverbash
# Ubuntu $ apt update && apt install openssh-server
Ps:這裏注意,不只僅是遠程服務器上要安裝ssh服務,同時遠程服務器上的docker container也內也須要安裝openssh-server。服務器
第二步,安裝完成之後須要配置ssh服務網絡
# 次配置在docker container中完成 $ echo 'root:test' | chpasswd # 將Root的密碼修改成test $ sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config # 容許使用root身份登陸 $ sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd $ echo "export VISIBLE=now" >> /etc/profile12345678
對於sed命令,若是須要學習能夠查看
Sed命令詳解session
第三步,配置好ssh服務以後重啓ssh服務app
$ service ssh restart
第四步,測試docker container中ssh服務端口在遠程服務器上的映射ssh
# 此操做在遠程服務器 $ docker port <your container name> 22 # 此操做將查看docker container中端口22,在遠程服務器上端口的映射 # 輸出結果以下所示 0.0.0.0:8022 # 代表只要ssh連接遠程服務器的8022端口,實際是連接docker container中的22端口。1234567
第五步,測試是否可以使用ssh連接docker container學習
$ ssh root@<你服務器的ip地址> -p 8022 # 密碼就是剛剛從新設置的test12
若是可以連接成功到docker container就完成了這次ssh的配置。
PS:若是失敗請按如下順序檢查
1.ssh的端口配置是否正確?(包括服務器和docker container)
2.是否開啓了防火牆,將端口禁用? 3.也能夠運行 sudo gedit /etc/ssh/sshd_config 修改配置,保存,並重起ssh sudo service ssh restart
到這裏已經完成一大半啦。以後的配置就相對簡單啦。
如今開始配置Pycharm
第一步,配置SFTP
在導航欄中 Tools>Depolyment>Configuration中添加配置SFTP。
如圖
添加配置SFTP,點擊彈窗左上角的+號。選擇SFTP,根據本身的實際狀況進行配置。
PS:這裏的root密碼就是以前設置好的test
第三步,配置SFTP中的mapping
都配置完以後。打開自動上傳功能
Tools>Depolyment>Automatic Upload(always)
本地修改好代碼只要按保存鍵就自動將本地代碼上傳至遠程docker container中。
到這裏已經配置好代碼的自動同步了。還差最後一步,遠程調試就配置成功。
打開Pycharm專業版的配置
添加新編譯器(遠程docker container編譯器)
在打開的頁面選擇以前配置好的SFTP
PS:
一般選擇完以後羨慕有兩個選項
Create: 新建SFTP
Move: 將選擇的SFTP做爲編譯器的SFTP
一般選擇Move就好
最後配置docker container的編譯器位置,還有項目位置的映射。
完成這一步就完全搞定Pycharm遠程調試Docker container啦~ 只要在調試的時候,選擇新建的遠程調試編譯器就好啦~ 終於能夠將心思所有放在實現算法上啦,撒花~~~