<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          docker制作深度學(xué)習(xí)鏡像(以windows環(huán)境下為例)

          共 6238字,需瀏覽 13分鐘

           ·

          2021-01-15 02:56












          向AI轉(zhuǎn)型的程序員都關(guān)注了這個(gè)號(hào)??????

          人工智能大數(shù)據(jù)與深度學(xué)習(xí) ?公眾號(hào):datayx


          用 Docker 安裝深度學(xué)習(xí)環(huán)境,輕量、方便!整個(gè)系統(tǒng)大小僅需2~3G,用完還能帶著走!一人裝環(huán)境,全班都能用,還有 NVIDIA 官方提供的 GPU 鏡像等著你哦~

          深度學(xué)習(xí)環(huán)境的配置一直是一個(gè)令人頭疼的問題,尤其是對(duì)使用 Windows 平臺(tái)的用戶來說,在安裝一些開源深度學(xué)習(xí)框架的時(shí)候,經(jīng)常會(huì)遇到一起奇奇怪怪的問題。

          為了避免出現(xiàn)環(huán)境問題,有些同學(xué)選擇使用 VMware、VirtualBox 運(yùn)行 Linux 虛擬機(jī)的方式進(jìn)行深度學(xué)習(xí)實(shí)驗(yàn)。但是像 VMware、VirtualBox 這類“重”虛擬機(jī)運(yùn)行起來常會(huì)拖慢系統(tǒng)。

          所以今天要分享給大家的是使用 Docker 配置安裝深度學(xué)習(xí)環(huán)境。

          使用Docker安裝環(huán)境的優(yōu)點(diǎn)如下:

          1. 無需自己配置環(huán)境,通過 Docker 鏡像可以使用各種已配置好的深度學(xué)習(xí)環(huán)境。

          2. 輕量便捷。一個(gè) Docker 客戶端+一個(gè)鏡像,總共大約3~4G即可組成一個(gè)深度學(xué)習(xí)系統(tǒng)環(huán)境。

          3. 便于分享。可以將自己的環(huán)境通過鏡像庫或直接以文件拷貝的方式傳播。

          4. 官方支持。很多深度學(xué)習(xí)框架&項(xiàng)目提供官方 Docker 鏡像。

          英偉達(dá)專門提供的支持GPU虛擬化的Docker鏡像:




          實(shí)戰(zhàn):9步創(chuàng)建深度學(xué)習(xí)環(huán)境

          如何使用 Docker 創(chuàng)建并分享一個(gè)深度學(xué)習(xí)環(huán)境呢?需要9個(gè)步驟:

          1. 使用 阿里云 鏡像站點(diǎn)加速服務(wù)

          2. Docker-machine

          3. 從阿里云鏡像獲取一個(gè)與需求相似的鏡像

          4. 把鏡像從庫里拖拽過來!

          5. 查看并運(yùn)行鏡像

          6. 將容器的修改提交到鏡像中

          7. 將鏡像上傳到阿里云鏡像倉庫中

          8. 將鏡像打包為獨(dú)立文件

          9. 測(cè)試分享出的 Docker 鏡像



          docker在windows上的安裝

          ? ? ? ? 首先,我們進(jìn)入docker官網(wǎng),下載安裝文件,網(wǎng)址為:https://docs.docker.com/docker-for-windows/install/


          1.使用 阿里云 鏡像站點(diǎn)加速服務(wù)

          在安裝 Docker 后,理論上我們就可以去 Docker Hub 上尋找我們想用的鏡像了。不過在國內(nèi)訪問國外的 Docker Hub 速度是非常慢的,所以我選擇使用阿里云的鏡像倉庫。

          訪問:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

          注冊(cè)阿里云賬戶并登錄。




          選擇 Docker 鏡像加速器。

          在這個(gè)界面里我們可以看到屬于自己的鏡像加速器地址。我們要把這個(gè)加速地址配置到 Docker 里,從而讓 Docker 默認(rèn)從加速地址中尋找并下載鏡像。


          Linux 操作系統(tǒng)的配置都是通過修改 daemon 配置文件完成的,這個(gè)配置看起來比較簡(jiǎn)單。

          Mac 以及 Windows 操作系統(tǒng)由于系統(tǒng)限制,必須使用 docker-machine 來配置加速地址。


          2.Docker-machine?

          docker-machine 本質(zhì)上是又是另一種虛擬機(jī)(怎么那么多虛擬機(jī)),我們暫且把它理解為一個(gè)自帶 Docker 的 VirtualBox 虛擬機(jī)。

          上圖配置中第一條命令的意義是:使用阿里的加速地址創(chuàng)建一個(gè) docker-machine 虛擬機(jī)并啟動(dòng)。

          后三條命令的意義是:通過配置環(huán)境變量(只在本終端中有效)用 docker-machine 虛擬機(jī)中的 Docker 環(huán)境覆蓋宿主機(jī)系統(tǒng)環(huán)境。

          執(zhí)行這三條命令后:

          在 Docker-machine 運(yùn)行期間,在當(dāng)前的宿主機(jī)終端中執(zhí)行的 Docker 命令,實(shí)際上都是由 docker-machine 虛擬機(jī)中的 Docker 環(huán)境執(zhí)行的,因?yàn)橹挥?docker-machine 虛擬機(jī)配置了阿里的加速地址。


          3.從阿里云鏡像獲取一個(gè)與需求相似的鏡像

          在鏡像加速器地址配置完畢后,我們就可以去尋找需要的 Docker 鏡像了。

          我想找個(gè)已經(jīng)安裝好 Python3.6 的鏡像,以便進(jìn)一步安裝最新的 PyTorch 以及其它相關(guān)的軟件包,那么我搜索“python36”。



          4.把鏡像從庫里拽過來!


          可以點(diǎn)擊鏡像詳情,查看鏡像的外網(wǎng)地址,然后把鏡像拽到本地上來(之前必須已經(jīng)配置好阿里加速器)。

          docker pull?registry.cn-shenzhen.aliyuncs.com


          5.查看并運(yùn)行鏡像

          我們可以使用命令 docker images 查看鏡像信息:



          使用 docker run 命令將鏡像運(yùn)行為可交互的 shell:



          在命令中:

          • -t:在新容器內(nèi)指定一個(gè)偽終端或終端。

          • -i:允許你對(duì)容器內(nèi)的標(biāo)準(zhǔn)輸入 (STDIN) 進(jìn)行交互。

          在命令運(yùn)行后,我們可以觀察到當(dāng)前 shell 里的提示符已經(jīng)從“Alex-MacBook-Pro”已經(jīng)改成了“root@f8ad6eb17624”,這證明我們已經(jīng)在 Docker 容器的系統(tǒng)環(huán)境中了。

          我們按照常規(guī)的方式安裝深度學(xué)習(xí)環(huán)境,比如用 pip 命令安裝 PyTorch、torchvision 等軟件包,并將項(xiàng)目源碼拷貝到運(yùn)行的容器中。

          在宿主機(jī)與 Docker 容器間拷貝數(shù)據(jù)可使用 docker cp 命令。

          在容器里進(jìn)行一系列的操作后,我們的工作完成,可以運(yùn)行 exit 命令退出當(dāng)前 shell。

          此時(shí)我們可以觀察一下當(dāng)前的容器(docker ps -al)與之前的鏡像(docker images),可以看到容器與鏡像同時(shí)獨(dú)立存在,并且可以看到在容器中正在運(yùn)行的項(xiàng)目(交互shell,即/bin/bash)。



          6.將容器的修改提交到鏡像中

          假設(shè)我們?cè)谌萜骼锇惭b了新的軟件包并且跑通了自己的項(xiàng)目,現(xiàn)在打算把容器提交成鏡像分享給其它小伙伴。

          需要操作的流程如下:

          首先查看容器的ID(docker ps -al):



          將容器提交到鏡像中,同時(shí)我們給它指定新的名字(docker commit [ID] [NEW_name]):



          提交完成后我們?cè)俨榭幢緳C(jī)存在的鏡像(docker images):



          可以看到經(jīng)我們修改后的新鏡像“python36/pytorch”獨(dú)立存在。

          有句話叫“取之于民,用之于民”。

          我們可以把這個(gè)包含最新版 PyTorch 環(huán)境的鏡像上傳到阿里云的鏡像庫中,讓更多的人可以使用我們的鏡像。


          7.將鏡像上傳到阿里云鏡像倉庫中

          我們首先在阿里云上創(chuàng)建一個(gè)鏡像倉庫:



          然后我們需要在當(dāng)前的終端中登錄阿里云倉庫(之前必須配置了阿里云加速器):

          docker login --username=USER_NAME?registry.cn-hangzhou.aliyuncs.com

          要把鏡像上傳到指定的鏡像庫,需要先對(duì)鏡像進(jìn)行命名。整個(gè)名字由冒號(hào)“:”分成兩部分,前部分是我們?cè)谏弦徊浇⒌溺R像倉庫的地址,后部分是對(duì)當(dāng)前鏡像打的標(biāo)簽(TAG)。TAG的存在是為了允許一個(gè)鏡像庫里存在多個(gè)版本的鏡像。



          好,這時(shí)候萬事具備了,我們運(yùn)行 push 命令將鏡像推送到云鏡像庫中。



          在上傳結(jié)束后,我們就可以在云鏡像庫的web管理界面看到我們的鏡像了。



          8.將鏡像打包為獨(dú)立文件

          除了上傳云鏡像庫,我們也可以直接將鏡像打包成一個(gè)獨(dú)立文件,拷貝分享給別人使用。

          同樣,我們使用命令 docker images 查看鏡像的名字,再使用 docker save -o 將目標(biāo)鏡像打包成文件。



          9.測(cè)試分享出的 Docker 鏡像

          現(xiàn)在讓我們測(cè)試下之前導(dǎo)出的鏡像。

          首先嘗試導(dǎo)入剛剛在本地打包的鏡像:



          導(dǎo)入成功。

          再試下從阿里云鏡像庫中把之前建立的鏡像 pull 下來:



          大功告成!還不快叫小伙伴一起來玩深度學(xué)習(xí)


          docker?常用命令

          1、安裝docker,參考?https://www.runoob.com/docker/docker-tutorial.html

          2、下載自己需要的鏡像,可以在github上搜,比如pytorch的鏡像?https://github.com/anibali/docker-pytorch

          docker pull anibali/pytorch:cuda-10.0

          3、通過docker images查看自己機(jī)器上有的鏡像

          4、創(chuàng)建容器并且進(jìn)入(如果只是更新鏡像內(nèi)的軟件包,可以不用掛載本地目錄)

          docker run -it -v D:/data:/app --name test anibali/pytorch:cuda-10.0 /bin/bash
          • 1

          紅色是本機(jī)想要掛載在docker容器里面的文件夾,藍(lán)色是docker容器內(nèi)掛載本機(jī)紅色路徑對(duì)應(yīng)的文件夾,紫色是鏡像名字
          5、進(jìn)入容器后,下載一些自己需要的包,exit退出
          6、docker ps -a查看本地容器

          7、更新鏡像

          docker commit -m="update" -a="an" 79096af84806 an:pytorch
          • 1

          紅色是描述信息,紫色是鏡像作者名字,黃色是第6步中的container id,綠色是要?jiǎng)?chuàng)建的鏡像名稱

          8、再通過docker images可以看到更新好的鏡像

          9、導(dǎo)出鏡像

          docker save an:pytorch > D:/an.tar
          • 1

          10、在另一臺(tái)有g(shù)pu的機(jī)器上導(dǎo)入自己制作的鏡像

          docker load < /home/an.tar
          • 1

          11、創(chuàng)建容器并掛載gpu

          docker run -it -v /home/data:/app -v /usr/local/docker-inspur/nvidia-volumes/volume:/usr/local/nvidia:ro --volume-driver=nvidia-docker --device=/dev/nvidiactl --device=/dev/nvidia-uvm --device=/dev/nvidia-uvm-tools --device=/dev/nvidia0 --device=/dev/nvidia1 --name ajp an:pytorch /bin/bash
          • 1

          藍(lán)色是掛載gpu,不同機(jī)器情況不一樣

          卸載nvidia驅(qū)動(dòng)

          rmmod nvidia
          • 1

          卸載驅(qū)動(dòng)如果出現(xiàn)nv_peer_mem進(jìn)程在使用nvidia,下面命令stop nv_peer_mem

          /etc/init.d/nv_peer_mem start/stop/status
          • 1

          卸載cuda相關(guān),cd到cuda-x.x文件夾下,以10.0為例

          cd /usr/local/cuda-10.0/bin
          ./uninstall_cuda_10.0.pl
          • 1

          • 2

          查看nvidia相關(guān)進(jìn)程

          lsmod | grep nvidia
          • 1

          如果沒有nvidia-uvm,需要去編譯一下Samples,隨便編譯一個(gè)就可以

          cd /usr/local/NVIDIA_CUDA-10.0_Samples/0_Simple/clock
          make
          ./clock
          • 1

          • 2

          • 3

          docker啟動(dòng)

          systemctl start docker
          service docker start
          • 1

          • 2

          重啟docker服務(wù)

          systemctl restart docker
          sudo service docker restart
          • 1

          • 2

          關(guān)閉docker

          systemctl stop docker
          service docker stop
          • 1

          • 2

          如果/dev里面沒有顯卡,運(yùn)行如下

          for i in 0 1 2 3 4 5; do
          node="/dev/nvidia$i"
          rm -f $node
          mknod $node c 195 $i || echo "mknod \"$node\""
          chmod 0660 $node || echo "chmod \"$node\""
          chown :video $node || echo "chown \"$node\""
          done
          node="/dev/nvidiactl"
          rm -f $node
          mknod $node c 195 255 || echo "mknod \"$node\""
          chmod 0666 $node || echo "chmod \"$node\""
          chown :video $node || echo "chown \"$node\""


          閱讀過本文的人還看了以下文章:


          TensorFlow 2.0深度學(xué)習(xí)案例實(shí)戰(zhàn)


          基于40萬表格數(shù)據(jù)集TableBank,用MaskRCNN做表格檢測(cè)


          《基于深度學(xué)習(xí)的自然語言處理》中/英PDF


          Deep Learning 中文版初版-周志華團(tuán)隊(duì)


          【全套視頻課】最全的目標(biāo)檢測(cè)算法系列講解,通俗易懂!


          《美團(tuán)機(jī)器學(xué)習(xí)實(shí)踐》_美團(tuán)算法團(tuán)隊(duì).pdf


          《深度學(xué)習(xí)入門:基于Python的理論與實(shí)現(xiàn)》高清中文PDF+源碼


          特征提取與圖像處理(第二版).pdf


          python就業(yè)班學(xué)習(xí)視頻,從入門到實(shí)戰(zhàn)項(xiàng)目


          2019最新《PyTorch自然語言處理》英、中文版PDF+源碼


          《21個(gè)項(xiàng)目玩轉(zhuǎn)深度學(xué)習(xí):基于TensorFlow的實(shí)踐詳解》完整版PDF+附書代碼


          《深度學(xué)習(xí)之pytorch》pdf+附書源碼


          PyTorch深度學(xué)習(xí)快速實(shí)戰(zhàn)入門《pytorch-handbook》


          【下載】豆瓣評(píng)分8.1,《機(jī)器學(xué)習(xí)實(shí)戰(zhàn):基于Scikit-Learn和TensorFlow》


          《Python數(shù)據(jù)分析與挖掘?qū)崙?zhàn)》PDF+完整源碼


          汽車行業(yè)完整知識(shí)圖譜項(xiàng)目實(shí)戰(zhàn)視頻(全23課)


          李沐大神開源《動(dòng)手學(xué)深度學(xué)習(xí)》,加州伯克利深度學(xué)習(xí)(2019春)教材


          筆記、代碼清晰易懂!李航《統(tǒng)計(jì)學(xué)習(xí)方法》最新資源全套!


          《神經(jīng)網(wǎng)絡(luò)與深度學(xué)習(xí)》最新2018版中英PDF+源碼


          將機(jī)器學(xué)習(xí)模型部署為REST API


          FashionAI服裝屬性標(biāo)簽圖像識(shí)別Top1-5方案分享


          重要開源!CNN-RNN-CTC 實(shí)現(xiàn)手寫漢字識(shí)別


          yolo3 檢測(cè)出圖像中的不規(guī)則漢字


          同樣是機(jī)器學(xué)習(xí)算法工程師,你的面試為什么過不了?


          前海征信大數(shù)據(jù)算法:風(fēng)險(xiǎn)概率預(yù)測(cè)


          【Keras】完整實(shí)現(xiàn)‘交通標(biāo)志’分類、‘票據(jù)’分類兩個(gè)項(xiàng)目,讓你掌握深度學(xué)習(xí)圖像分類


          VGG16遷移學(xué)習(xí),實(shí)現(xiàn)醫(yī)學(xué)圖像識(shí)別分類工程項(xiàng)目


          特征工程(一)


          特征工程(二) :文本數(shù)據(jù)的展開、過濾和分塊


          特征工程(三):特征縮放,從詞袋到 TF-IDF


          特征工程(四): 類別特征


          特征工程(五): PCA 降維


          特征工程(六): 非線性特征提取和模型堆疊


          特征工程(七):圖像特征提取和深度學(xué)習(xí)


          如何利用全新的決策樹集成級(jí)聯(lián)結(jié)構(gòu)gcForest做特征工程并打分?


          Machine Learning Yearning 中文翻譯稿


          螞蟻金服2018秋招-算法工程師(共四面)通過


          全球AI挑戰(zhàn)-場(chǎng)景分類的比賽源碼(多模型融合)


          斯坦福CS230官方指南:CNN、RNN及使用技巧速查(打印收藏)


          python+flask搭建CNN在線識(shí)別手寫中文網(wǎng)站


          中科院Kaggle全球文本匹配競(jìng)賽華人第1名團(tuán)隊(duì)-深度學(xué)習(xí)與特征工程



          不斷更新資源

          深度學(xué)習(xí)、機(jī)器學(xué)習(xí)、數(shù)據(jù)分析、python

          ?搜索公眾號(hào)添加:?datayx??



          機(jī)大數(shù)據(jù)技術(shù)與機(jī)器學(xué)習(xí)工程

          ?搜索公眾號(hào)添加:?datanlp

          長(zhǎng)按圖片,識(shí)別二維碼

          瀏覽 102
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲在线观看中文字幕 | 黄色日韩网站 | 翔田千里在线视频 | av秋霞 | 97干在线视频 |