溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

docker在深度學(xué)習(xí)任務(wù)中的應(yīng)用是什么

發(fā)布時(shí)間:2021-12-13 15:55:29 來(lái)源:億速云 閱讀:156 作者:iii 欄目:大數(shù)據(jù)

本篇內(nèi)容主要講解“docker在深度學(xué)習(xí)任務(wù)中的應(yīng)用是什么”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“docker在深度學(xué)習(xí)任務(wù)中的應(yīng)用是什么”吧!

1 軟件安裝之痛

Docker是一種容器技術(shù),它就像一個(gè)沙盒把應(yīng)用程序隔離開(kāi)來(lái),不管有沒(méi)有遇到過(guò)你至少聽(tīng)到某些應(yīng)用程序不能兼容,最常見(jiàn)的就是升級(jí)某個(gè)系統(tǒng),老版本跟新版本不能兼容,必須把老版本完全卸載掉。比如說(shuō)oracle服務(wù),如果把oracle安裝到物理主機(jī)上,如果需要升級(jí)那將會(huì)比較痛苦。再比如說(shuō)新手學(xué)習(xí)各種軟件,apache、mysql、Python搞的電腦上亂七八糟的環(huán)境,想要重新安裝都很痛苦。 

2 docker出現(xiàn)

有沒(méi)有一種技術(shù)能夠把這個(gè)環(huán)境隔離開(kāi)?有那就是虛擬機(jī),如果你為了一個(gè)小服務(wù)單獨(dú)開(kāi)一個(gè)虛擬機(jī)是不是太奢侈?這時(shí)候docker出現(xiàn)了,docker是一種容器區(qū)別于虛擬機(jī),使用docker你可以打包、發(fā)布運(yùn)行任何應(yīng)用程序,如果你經(jīng)常碰到開(kāi)發(fā)環(huán)境與生產(chǎn)環(huán)境不一致,或者經(jīng)常需要配置復(fù)雜的環(huán)境,那你就可以考慮使用它,“它是一處打包到處運(yùn)行“。再介紹一個(gè)使用環(huán)境,那就是我們熟悉的云,很常見(jiàn)我們經(jīng)常去阿里云、騰訊云購(gòu)買(mǎi)服務(wù)器,當(dāng)我們使用的時(shí)候完全就是一個(gè)物理主機(jī)的狀態(tài),與其他服務(wù)器完全隔離,這些大廠不會(huì)為了一個(gè)用戶單獨(dú)開(kāi)啟一個(gè)虛擬機(jī),因?yàn)樘莩?。而容器就不一樣,用多少分配多少,如果虛擬機(jī)占用10G資源,而可能有9G是空余出來(lái)的,而容器如果占用的10G那么它就可能只空余出來(lái)1G或者更少。按照筆者的理解,容器僅僅隔離應(yīng)用程序,而其他資源是容器間共享的,虛擬機(jī)是一種完全霸占的狀態(tài)(個(gè)人理解)。 

3 運(yùn)行機(jī)制

下圖是介紹docker運(yùn)行機(jī)制,可以看出應(yīng)用程序在相互獨(dú)立的同時(shí),分享物理機(jī)的資源

docker在深度學(xué)習(xí)任務(wù)中的應(yīng)用是什么

Docker最先是一種開(kāi)源產(chǎn)品,現(xiàn)在有了社區(qū)版和企業(yè)版docker-ce與docker-ee。社區(qū)版基本已經(jīng)滿足我們。

筆者強(qiáng)烈推薦docker一個(gè)原因,那就是可以共享環(huán)境,只要有一個(gè)人把復(fù)雜的環(huán)境配置并打包成鏡像,類(lèi)似git一樣,commit一個(gè)版本,那么其他人就可以直接使用這個(gè)環(huán)境,而不需要做任何配置,減少人力物力不說(shuō),還霸道的使得所有人的生產(chǎn)環(huán)境一致。

正是這個(gè)原因,我想到了入門(mén)機(jī)器學(xué)習(xí)時(shí)候,需要配置caffe/tensorflow,并且cuda版本號(hào)要對(duì)應(yīng)上,cuda與cudnn版本也要對(duì)應(yīng)上。當(dāng)時(shí)就設(shè)想能不能使用docker來(lái)解決這個(gè)問(wèn)題,遺憾的是不行,docker無(wú)法使用GPU。

但是辦法總比困難多,docker又發(fā)布出一個(gè)插件nvidia-docker,nvidia-docker是基于docker安裝的,可以使得深度學(xué)習(xí)任務(wù)也能隔離開(kāi),這就意味著,我可以在一臺(tái)物理主機(jī)上跑各種框架的深度學(xué)習(xí)任務(wù),環(huán)境隨機(jī)配,你開(kāi)心就好。唯一的限制就是物理機(jī)上的cuda版本號(hào)要與docker容器中的cuda版本號(hào)一致,我覺(jué)得這個(gè)要求不過(guò)分。

下圖是nvidia-docker的運(yùn)行機(jī)制,我們可以看到他們直接的層次結(jié)構(gòu)。應(yīng)用程序共享GPU,且被隔離開(kāi)。

docker在深度學(xué)習(xí)任務(wù)中的應(yīng)用是什么

 

4 安裝步驟

安裝docker這里不再累贅,官網(wǎng)安裝地址: 

https://docs.docker.com/install/linux/docker-ce/ubuntu/。

nvidia-docker 安裝官網(wǎng)地址:

https://github.com/NVIDIA/nvidia-docker。

現(xiàn)在我需要一個(gè)ubuntu16.04+cuda9.2+cudnn7的開(kāi)發(fā)環(huán)境,我可以選擇下載鏡像再去配置各種驅(qū)動(dòng),安裝cuda、安裝cudnn。但是我要秀一下更“懶的方式”。

在docker hub里面查詢(xún)cuda9.2,找到星星最多的一個(gè)鏡像

docker在深度學(xué)習(xí)任務(wù)中的應(yīng)用是什么

docker在深度學(xué)習(xí)任務(wù)中的應(yīng)用是什么

里面很多鏡像,我找到一個(gè)符合我自己要求的。

docker在深度學(xué)習(xí)任務(wù)中的應(yīng)用是什么

拉取鏡像:sudo docker pull nvidia/cuda:9.2-cudnn7-runtime-ubuntu16.04

查看拉取的鏡像:sudo docker ps

docker在深度學(xué)習(xí)任務(wù)中的應(yīng)用是什么

基于這個(gè)鏡像啟動(dòng)容器:

sudo nvidia-docker run -ti nvidia/cuda:9.2-cudnn7-runtime-ubuntu16.04 bash

docker在深度學(xué)習(xí)任務(wù)中的應(yīng)用是什么

現(xiàn)在我已經(jīng)進(jìn)來(lái)了,完全就是一個(gè)干凈的開(kāi)發(fā)環(huán)境,等下,看看顯卡驅(qū)動(dòng)配置好了沒(méi)。

docker在深度學(xué)習(xí)任務(wù)中的應(yīng)用是什么

開(kāi)心的不行,如果你對(duì)版本沒(méi)有這個(gè)高的要求,那我們來(lái)github里面找找看看還有什么鏡像,搜索 tensoflow.

docker在深度學(xué)習(xí)任務(wù)中的應(yīng)用是什么

到此,相信大家對(duì)“docker在深度學(xué)習(xí)任務(wù)中的應(yīng)用是什么”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢(xún),關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI