丁香五月天婷婷久久婷婷色综合91|国产传媒自偷自拍|久久影院亚洲精品|国产欧美VA天堂国产美女自慰视屏|免费黄色av网站|婷婷丁香五月激情四射|日韩AV一区二区中文字幕在线观看|亚洲欧美日本性爱|日日噜噜噜夜夜噜噜噜|中文Av日韩一区二区

您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號(hào)安全和更好的產(chǎn)品體驗(yàn),強(qiáng)烈建議使用更快更安全的瀏覽器
此為臨時(shí)鏈接,僅用于文章預(yù)覽,將在時(shí)失效
人工智能開(kāi)發(fā)者 正文
發(fā)私信給skura
發(fā)送

0

PyCharm+Docker:打造最舒適的深度學(xué)習(xí)煉丹爐

本文作者: skura 2019-02-20 19:13
導(dǎo)語(yǔ):一篇實(shí)用的教程~

雷鋒網(wǎng) AI 科技評(píng)論按,本文作者是四川大學(xué)數(shù)據(jù)智能實(shí)驗(yàn)室在讀碩士劉震,這是他在知乎上發(fā)表的一篇文章,雷鋒網(wǎng)轉(zhuǎn)載。

PyCharm+Docker:打造最舒適的深度學(xué)習(xí)煉丹爐

一般煉丹都在服務(wù)器上,很少有人在本機(jī)跑代碼的。之前自己搗鼓怎么用本地的編輯器配上遠(yuǎn)程服務(wù)器的環(huán)境來(lái)營(yíng)造一個(gè)最舒乎的姿勢(shì)。最開(kāi)始用 VS Code 的 SFTP 插件,但是用著還是不順手,因?yàn)椴荒苡眠h(yuǎn)程的環(huán)境,最后還是選擇了強(qiáng)大的 PyCharm。下面的這個(gè)教程最開(kāi)始只是自己用,后來(lái)寫(xiě)了一篇博客分享給實(shí)驗(yàn)室的人,沒(méi)想到大家都開(kāi)始用上了。這次專(zhuān)門(mén)寫(xiě)一篇更詳細(xì)的放到知乎供有緣人使用。

開(kāi)始之前你可以對(duì)比以下條件來(lái)確定自己是否真的需要這樣做:

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

  • 深度學(xué)習(xí)煉丹師(當(dāng)然你可以不是,但如果是,你會(huì)更舒服)

  • 服務(wù)器在遠(yuǎn)程或者局域網(wǎng)(其實(shí)局域網(wǎng)的體驗(yàn)最佳)

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

當(dāng)你配置完成之后,你將能在本地 PyCharm IDE 上使用遠(yuǎn)程服務(wù)器的 Python 解釋器和環(huán)境進(jìn)行調(diào)試和運(yùn)行,同時(shí)能夠很方便的將代碼在本地和服務(wù)器上進(jìn)行同步。

OK,廢話(huà)不多說(shuō),正式開(kāi)始我們的 PyCharm+Docker 的遠(yuǎn)程環(huán)境配置之旅。

首先你需要滿(mǎn)足以下兩個(gè)必備條件:

  • 使用 PyCharm 專(zhuān)業(yè)版,記住一定是專(zhuān)業(yè)版(社區(qū)版不提供遠(yuǎn)程服務(wù))

  • 在服務(wù)器上安裝 docker 和 nvidia-docker

1.新建 docker container

首先按照如下命令新建一個(gè) docker 容器(關(guān)于 docker 的使用這里不廢話(huà),建議不熟悉的童鞋先去學(xué)一下如何使用 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

舉個(gè)栗子:

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

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

2.配置 SSH 服務(wù)

接著我們?cè)趧倓傂陆ǖ娜萜骼锱渲?SSH 服務(wù),首先安裝 openssh-server:

$ apt update
$ apt install -y openssh-server

然后建立一個(gè)配置文件夾并進(jìn)行必要的配置:

$ mkdir /var/run/sshd
$ echo 'root:passwd' | chpasswd# 這里使用你自己想設(shè)置的用戶(hù)名和密碼,但是一定要記??!$ 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

在服務(wù)器(宿主機(jī))上(不是服務(wù)器的 docker 里)測(cè)試剛剛新建 docker 容器中哪個(gè)端口轉(zhuǎn)發(fā)到了服務(wù)器的 22 端口:

$ sudo docker port [your_container_name] 22

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

# 0.0.0.0:8022

最后測(cè)試能否用 SSH 連接到遠(yuǎn)程 docker:

$ ssh root@[your_host_ip] -p 8022

# 密碼是你前面自己設(shè)置的

到這里說(shuō)明服務(wù)器的 docker 端已經(jīng)完成配置。

3.在 PyCharm 里配置部署環(huán)境

打開(kāi) PyCharmTools > Deployment > Configuration, 新建一個(gè) SFTP 服務(wù)器,名字自己取:

PyCharm+Docker:打造最舒適的深度學(xué)習(xí)煉丹爐

輸入如下圖配置,注意這里的端口是你剛剛設(shè)置的映射到服務(wù)器主機(jī) 22 端口的 docker 容器中的端口,我這里使用的是 8022,賬號(hào)密碼是你剛剛自己設(shè)置的,這里的 Root Path 設(shè)置一個(gè)遠(yuǎn)程 docker 容器里的路徑:

PyCharm+Docker:打造最舒適的深度學(xué)習(xí)煉丹爐

配置完點(diǎn)擊 Test SFTP connection, 如果成功就恭喜你,可以進(jìn)行下一步了。

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

PyCharm+Docker:打造最舒適的深度學(xué)習(xí)煉丹爐

4.在 PyCharm 里配置遠(yuǎn)程解釋器

點(diǎn)擊 PyCharm 的 File > Setting > Project > Project Interpreter 右邊的設(shè)置按鈕新建一個(gè)項(xiàng)目的遠(yuǎn)程解釋器:

PyCharm+Docker:打造最舒適的深度學(xué)習(xí)煉丹爐

PyCharm+Docker:打造最舒適的深度學(xué)習(xí)煉丹爐

配置完成以后在項(xiàng)目解釋器界面就會(huì)出現(xiàn)如下圖所示,可以看到此時(shí)已經(jīng)完成遠(yuǎn)程解釋器的本地化:

PyCharm+Docker:打造最舒適的深度學(xué)習(xí)煉丹爐

配置完成以后需要等本地和遠(yuǎn)程的環(huán)境同步一下,到這里,恭喜你,可以用最舒服的姿勢(shì)。。。寫(xiě)代碼了。

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

PyCharm+Docker:打造最舒適的深度學(xué)習(xí)煉丹爐

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

常見(jiàn)問(wèn)題:

最常見(jiàn)的問(wèn)題就是 docker 容器停了以后里面的 SSH 服務(wù)也會(huì)相應(yīng)停止,因此當(dāng)你發(fā)現(xiàn)自己某一天連不上的時(shí)候,記得去 docker 里重啟一下 ssh 服務(wù):

$ service ssh restart

感謝 @ 丁果 對(duì)這個(gè)問(wèn)題提出的解決方案:

「可以在 run 的時(shí)候加上--restart=always,同時(shí) ssh 啟動(dòng)的寫(xiě)到 dockerfile 里去,其實(shí) docker 里面一般不會(huì)再裝 ssh。」

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

雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見(jiàn)轉(zhuǎn)載須知

PyCharm+Docker:打造最舒適的深度學(xué)習(xí)煉丹爐

分享:
相關(guān)文章
當(dāng)月熱門(mén)文章
最新文章
請(qǐng)?zhí)顚?xiě)申請(qǐng)人資料
姓名
電話(huà)
郵箱
微信號(hào)
作品鏈接
個(gè)人簡(jiǎn)介
為了您的賬戶(hù)安全,請(qǐng)驗(yàn)證郵箱
您的郵箱還未驗(yàn)證,完成可獲20積分喲!
請(qǐng)驗(yàn)證您的郵箱
立即驗(yàn)證
完善賬號(hào)信息
您的賬號(hào)已經(jīng)綁定,現(xiàn)在您可以設(shè)置密碼以方便用郵箱登錄
立即設(shè)置 以后再說(shuō)