成人av在线资源一区,亚洲av日韩av一区,欧美丰满熟妇乱XXXXX图片,狠狠做五月深爱婷婷伊人,桔子av一区二区三区,四虎国产精品永久在线网址,国产尤物精品人妻在线,中文字幕av一区二区三区欲色
    您正在使用IE低版瀏覽器,為了您的雷峰網賬號安全和更好的產品體驗,強烈建議使用更快更安全的瀏覽器
    此為臨時鏈接,僅用于文章預覽,將在時失效
    人工智能開發者 正文
    發私信給skura
    發送

    0

    PyCharm+Docker:打造最舒適的深度學習煉丹爐

    本文作者: skura 2019-02-20 19:13
    導語:一篇實用的教程~

    雷鋒網 AI 科技評論按,本文作者是四川大學數據智能實驗室在讀碩士劉震,這是他在知乎上發表的一篇文章,雷鋒網轉載。

    PyCharm+Docker:打造最舒適的深度學習煉丹爐

    一般煉丹都在服務器上,很少有人在本機跑代碼的。之前自己搗鼓怎么用本地的編輯器配上遠程服務器的環境來營造一個最舒乎的姿勢。最開始用 VS Code 的 SFTP 插件,但是用著還是不順手,因為不能用遠程的環境,最后還是選擇了強大的 PyCharm。下面的這個教程最開始只是自己用,后來寫了一篇博客分享給實驗室的人,沒想到大家都開始用上了。這次專門寫一篇更詳細的放到知乎供有緣人使用。

    開始之前你可以對比以下條件來確定自己是否真的需要這樣做:

    • 使用 PyCharm 作為主力 IDE 寫 Python 而不是其他(我非常推薦大家用)

    • 深度學習煉丹師(當然你可以不是,但如果是,你會更舒服)

    • 服務器在遠程或者局域網(其實局域網的體驗最佳)

    • 使用 Docker(能夠熟練使用最佳)

    當你配置完成之后,你將能在本地 PyCharm IDE 上使用遠程服務器的 Python 解釋器和環境進行調試和運行,同時能夠很方便的將代碼在本地和服務器上進行同步。

    OK,廢話不多說,正式開始我們的 PyCharm+Docker 的遠程環境配置之旅。

    首先你需要滿足以下兩個必備條件:

    • 使用 PyCharm 專業版,記住一定是專業版(社區版不提供遠程服務)

    • 在服務器上安裝 docker 和 nvidia-docker

    1.新建 docker container

    首先按照如下命令新建一個 docker 容器(關于 docker 的使用這里不廢話,建議不熟悉的童鞋先去學一下如何使用 docker,教程很多):

    sudo nvidia-docker run -it -p [host_port]:[container_port](do not use 8888) --name:[container_name] [image_name] -v [container_path]:[host_path] /bin/bash

    舉個栗子:

    sudo nvidia-docker run -p 5592:5592 -p 5593:5593 -p 8022:22 --name="liuzhen_tf" -v ~/workspace/liuzhen/remote_workspace:/workspace/liuzhen/remote_workspace -it tensorflow/tensorflow:latest-gpu /bin/bash

    正確執行完之后,現在我們就處在新建的 docker 容器里了(端口映射,容器名,鏡像和路徑映射這些換成你自己的就行,但是一定要留一個端口映射到宿主機 22 端口,因為 SFTP 默認使用 22 端口)。

    2.配置 SSH 服務

    接著我們在剛剛新建的容器里配置 SSH 服務,首先安裝 openssh-server:

    $ apt update
    $ apt install -y openssh-server

    然后建立一個配置文件夾并進行必要的配置:

    $ mkdir /var/run/sshd
    $ echo 'root:passwd' | chpasswd# 這里使用你自己想設置的用戶名和密碼,但是一定要記住!$ sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
    $ 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/profile

    重啟 SSH 激活配置:

    $ service ssh restart

    在服務器(宿主機)上(不是服務器的 docker 里)測試剛剛新建 docker 容器中哪個端口轉發到了服務器的 22 端口:

    $ sudo docker port [your_container_name] 22

    # 如果前面的配置生效了,你會看到如下輸出

    # 0.0.0.0:8022

    最后測試能否用 SSH 連接到遠程 docker:

    $ ssh root@[your_host_ip] -p 8022

    # 密碼是你前面自己設置的

    到這里說明服務器的 docker 端已經完成配置。

    3.在 PyCharm 里配置部署環境

    打開 PyCharmTools > Deployment > Configuration, 新建一個 SFTP 服務器,名字自己取:

    PyCharm+Docker:打造最舒適的深度學習煉丹爐

    輸入如下圖配置,注意這里的端口是你剛剛設置的映射到服務器主機 22 端口的 docker 容器中的端口,我這里使用的是 8022,賬號密碼是你剛剛自己設置的,這里的 Root Path 設置一個遠程 docker 容器里的路徑:

    PyCharm+Docker:打造最舒適的深度學習煉丹爐

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

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

    PyCharm+Docker:打造最舒適的深度學習煉丹爐

    4.在 PyCharm 里配置遠程解釋器

    點擊 PyCharm 的 File > Setting > Project > Project Interpreter 右邊的設置按鈕新建一個項目的遠程解釋器:

    PyCharm+Docker:打造最舒適的深度學習煉丹爐

    PyCharm+Docker:打造最舒適的深度學習煉丹爐

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

    PyCharm+Docker:打造最舒適的深度學習煉丹爐

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

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

    PyCharm+Docker:打造最舒適的深度學習煉丹爐

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

    常見問題:

    最常見的問題就是 docker 容器停了以后里面的 SSH 服務也會相應停止,因此當你發現自己某一天連不上的時候,記得去 docker 里重啟一下 ssh 服務:

    $ service ssh restart

    感謝 @ 丁果 對這個問題提出的解決方案:

    「可以在 run 的時候加上--restart=always,同時 ssh 啟動的寫到 dockerfile 里去,其實 docker 里面一般不會再裝 ssh。」

    原文鏈接:https://zhuanlan.zhihu.com/p/52827335

    雷峰網版權文章,未經授權禁止轉載。詳情見轉載須知

    PyCharm+Docker:打造最舒適的深度學習煉丹爐

    分享:
    相關文章
    當月熱門文章
    最新文章
    請填寫申請人資料
    姓名
    電話
    郵箱
    微信號
    作品鏈接
    個人簡介
    為了您的賬戶安全,請驗證郵箱
    您的郵箱還未驗證,完成可獲20積分喲!
    請驗證您的郵箱
    立即驗證
    完善賬號信息
    您的賬號已經綁定,現在您可以設置密碼以方便用郵箱登錄
    立即設置 以后再說