0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

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

人工智能與大數據技術 ? 來源:YXQ ? 2019-07-05 15:15 ? 次閱讀

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

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

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

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

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

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

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

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

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

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

在服務器上安裝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=“l(fā)iuzhen_tf” -v ~/workspace/liuzhen/remote_workspace:/workspace/liuzhen/remote_workspace -it tensorflow/tensorflow:latest-gpu /bin/bash

正確執(zhí)行完之后,現(xiàn)在我們就處在新建的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@sessions*requireds*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容器中哪個端口轉發(fā)到了服務器的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里配置部署環(huán)境

打開PyCharmTools 》 Deployment 》 Configuration, 新建一個SFTP服務器,名字自己?。?/p>

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

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

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

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

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

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

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

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

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

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • python
    +關注

    關注

    54

    文章

    4756

    瀏覽量

    84284
  • 深度學習
    +關注

    關注

    73

    文章

    5431

    瀏覽量

    120790

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

文章出處:【微信號:TheBigData1024,微信公眾號:人工智能與大數據技術】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    Pycharm安裝方法

    `PyCharm是唯一一款專門面向Python的全功能集成開發(fā)環(huán)境,無論在Windows、Mac OS X系統(tǒng)中,還是在Linux系統(tǒng)中都支持快速安裝和使用,以下是以Windows操作系統(tǒng)為例,進行
    發(fā)表于 04-12 16:10

    pycharm的安裝使用教程

    ``PyCharm是唯一一款專門面向Python的全功能集成開發(fā)環(huán)境,無論在Windows、Mac OS X系統(tǒng)中,還是在Linux系統(tǒng)中都支持快速安裝和使用,以下是以Windows操作系統(tǒng)為例
    發(fā)表于 04-12 16:14

    pycharm linux的破解步驟

    1、首先去官網下載對應的pycharm,拷貝到/opt目錄,解壓,進入bin目錄,運行pycharm.sh,如圖:
    發(fā)表于 07-24 07:36

    什么是深度學習?使用FPGA進行深度學習的好處?

    什么是深度學習為了解釋深度學習,有必要了解神經網絡。神經網絡是一種模擬人腦的神經元和神經網絡的計算模型。作為具體示例,讓我們考慮一個輸入圖像并識別圖像中對象類別的示例。這個例子對應機器
    發(fā)表于 02-17 16:56

    學習管理 docker 容器的一些命令

    在本教程中,我們會學習管理 docker 容器的一些命令。
    的頭像 發(fā)表于 01-22 11:56 ?4262次閱讀

    學習 Docker 容器的 8 個命令分享

    利用這 8 個命令可以學習 Docker 容器的基本管理方式。這是一個為 Docker 初學者準備的,帶有示范命令輸出的指南。
    發(fā)表于 06-22 12:03 ?1349次閱讀
    <b class='flag-5'>學習</b> <b class='flag-5'>Docker</b> 容器的 8 個命令分享

    機器學習自動化(AutoML):讓機器自己煉丹

    機器學習的應用需要大量的人工干預,比如特征提取、模型選擇、參數調節(jié)等,深度學習也被戲稱為煉丹術。
    的頭像 發(fā)表于 06-21 11:15 ?6862次閱讀

    如何在pycharm環(huán)境下使用python

    PyCharm是由JetBrains打造的一款Python IDE,VS2010的重構插件Resharper就是出自JetBrains之手。
    的頭像 發(fā)表于 01-22 11:19 ?2654次閱讀

    從零開始學習制作、以及使用Tina的Docker編譯鏡像

    學習制作、以及使用Tina的Docker編譯鏡像
    的頭像 發(fā)表于 08-28 11:45 ?2204次閱讀
    從零開始<b class='flag-5'>學習</b>制作、以及使用Tina的<b class='flag-5'>Docker</b>編譯鏡像

    PyCharm為什么這么牛?

    PyCharm 大量的開箱即用工具包括集成的調試器和測試運行程序;Python 分析器;內置的終端;與主要 VCS 的集成和內置的數據庫工具;利用遠程解釋器的遠程開發(fā)能力;集成的 ssh 終端;以及與 Docker 和 Vagrant 的集成。
    的頭像 發(fā)表于 04-04 11:11 ?1003次閱讀

    Pycharm配置遠程調試

    在搞深度學習的時候,我們在本地開發(fā),但是需要在服務器去運行工程,所以需要使用Pycharm進行遠程配置,可以實現(xiàn)本地代碼自動同步到服務器,并在本地使用服務器的解釋器。
    的頭像 發(fā)表于 06-13 14:18 ?868次閱讀
    <b class='flag-5'>Pycharm</b>配置遠程調試

    什么是深度學習算法?深度學習算法的應用

    什么是深度學習算法?深度學習算法的應用 深度學習算法被認為是人工智能的核心,它是一種模仿人類大腦
    的頭像 發(fā)表于 08-17 16:03 ?1993次閱讀

    PyTorch與PyCharm的區(qū)別

    在深入探討PyTorch與PyCharm的區(qū)別時,我們首先需要明確兩者在計算機科學和數據科學領域中的不同定位和功能。PyTorch是一個開源的深度學習庫,而PyCharm則是一款功能強
    的頭像 發(fā)表于 07-02 12:36 ?2106次閱讀

    pycharm怎么訓練數據集

    在本文中,我們將介紹如何在PyCharm中訓練數據集。PyCharm是一款流行的Python集成開發(fā)環(huán)境,提供了許多用于數據科學和機器學習的工具。 1. 安裝PyCharm和相關庫 首
    的頭像 發(fā)表于 07-11 10:10 ?462次閱讀

    pycharm如何訓練機器學習模型

    PyCharm是一個流行的Python集成開發(fā)環(huán)境(IDE),它提供了豐富的功能,包括代碼編輯、調試、測試等。在本文中,我們將介紹如何在PyCharm中訓練機器學習模型。 一、安裝PyChar
    的頭像 發(fā)表于 07-11 10:14 ?545次閱讀