如何使用 PyCharm+Docker 打造深度學習利器

(本文PDF下載地址:https://github.com/jamess010/AIOpen/blob/master/algorithm/frameworks/deepo/pycharm_docker.pdf

首先你需要滿足以下兩個必備條件:
使用 PyCharm 專業版,記住一定是專業版(社區版不提供遠程服務)
在服務器上安裝 docker 和 nvidia-docker

  1. 新建 docker container

這裏我使用 uforym/deepo 的 docker 配置,deepo 的github地址:https://github.com/ufoym/deepo

  1. 配置 SSH 服務

接着我們在剛剛新建的容器裏配置 SSH 服務,在服務器(宿主機)上(不是服務器的 docker 裏)8022端口轉發新建 docker 容器中的 22 端口。

我使用了docker-compose.yml來配置 CPU 類型的deepo docker,請參看 https://github.com/jamess010/AIOpen/tree/master/algorithm/frameworks/deepo  中的配置文件。如果想使用GPU 配置,請參看第一步中的deepo github。

  1. 在 PyCharm 裏配置部署環境

點擊 Tools > Deployment > Configuration,

新建一個 SFTP 服務器:

服務器名字自己取(這裏是test):

出現如下配置界面:

在上面輸入如下圖配置,注意這裏的端口是你剛剛設置的映射到服務器主機 22 端口的 docker 容器中的端口 8022;賬號:root,密碼:test ,這是在Dockerfile裏配置的,請參看 https://github.com/jamess010/AIOpen/blob/master/algorithm/frameworks/deepo/Dockerfile ,Host 設置爲遠程 docker 容器裏的路徑(這裏 localhost):

配置完點擊 Test onnection, 如果成功就恭喜你,可以進行下一步了。

最後在 Mappings 中配置路徑,這裏的路徑是你本地存放代碼的路徑,與剛剛配置的 Root Path 相互映射(意思是 Mapping 裏本機的路徑映射到遠程的 Root Path),方便以後在本地和遠程 docker 中進行代碼和其他文件同步。

  1. 在 PyCharm 裏配置遠程解釋器

點擊 Pycharm > Preferences > Project Interpreter ,右邊的設置按鈕add,新建一個項目的遠程解釋器:
點擊SSH Interpreter > Existing server configuration, 在選擇框中選test,再選擇 Move this server to IDE settings

出現下面畫面,然後點擊Next:

通過上面箭頭位置,選擇需要使用的 python,配置 Interpreter;通過下部箭頭位置,選擇同步的文件夾:

配置完成以後在項目解釋器界面就會出現如下圖所示,可以看到此時已經完成遠程解釋器的本地化,然後Apply > OK:

配置完成以後需要等本地和遠程的環境同步一下,到這裏,恭喜你,可以用最舒服的姿勢。。。寫代碼了。

配置完成以後的日常是這樣的:

左邊是本地的文件,修改之後可以隨時右鍵 deployment->upload 到遠程主機,或者直接在本地調試運行;最右邊是遠程主機的文件,假如直接在遠程修改了文件刷新一下同樣可以右鍵下載到本地,但是我不建議這樣做,因爲這樣很容易帶來衝突(畢竟沒有很好的版本控制)。目前最好的實踐是在局域網的服務器上,時延低,同步速度快。

  1. 在 PyCharm 裏訪問 Docker 環境

點擊 Tools > Start SSH session,選名爲 test 的服務器:

可以在 Docker 環境中執行命令:

  1. 在 PyCharm 裏使用遠程 Docker 環境中的 Python

點擊底端的 Python Console,可以連接到名爲test服務器中 docker 的 python

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