版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
4軟件安裝與部署INSTALLATIONDEPLOYMENTChapter04學(xué)習(xí)目標(biāo)環(huán)境依賴搭建01系統(tǒng)設(shè)置02深度學(xué)習(xí)環(huán)境搭建03深度學(xué)習(xí)網(wǎng)絡(luò)搭建044.1環(huán)境依賴搭建4.1.1安裝Ubuntu系統(tǒng)Ubuntu是一個(gè)以桌面應(yīng)用為主的Linux操作系統(tǒng),其名稱來(lái)自非洲南部祖魯語(yǔ)或豪薩語(yǔ)的“Ubuntu”一詞,意思是“人性”,“我的存在是因?yàn)榇蠹业拇嬖凇保欠侵迋鹘y(tǒng)的一種價(jià)值觀。Ubuntu基于Debian發(fā)行版和Gnome桌面環(huán)境,而從11.04版起,Ubuntu發(fā)行版放棄了Gnome桌面環(huán)境,改為Unity。從前人們認(rèn)為L(zhǎng)inux難以安裝、難以使用,在Ubuntu出現(xiàn)后這些都成為了歷史。Ubuntu也擁有龐大的社區(qū)力量,用戶可以方便地從社區(qū)獲得幫助。深度學(xué)習(xí)的訓(xùn)練任務(wù)基本是在Ubuntu系統(tǒng)下進(jìn)行的,所以下面介紹如何安裝Ubuntu系統(tǒng)。在安裝Ubuntu前我們需要做好以下準(zhǔn)備:1)Ubuntu的鏡像(可以去官方網(wǎng)站上下載:DownloadUbuntuDesktop|Download|Ubuntu)2)刻錄軟件,個(gè)人建議ULtralSO(可以在官方網(wǎng)站上下載:/)3)容量大于4G的U盤(pán)4)EasyBCD軟件,設(shè)置系統(tǒng)引導(dǎo),MBR需要EasyBCD引導(dǎo),而UEFI不需要(windows雙系統(tǒng),如果是單系統(tǒng)安裝請(qǐng)查看請(qǐng)轉(zhuǎn))4.1環(huán)境依賴搭建預(yù)裝Windows的情況下安裝Ubuntu系統(tǒng)的必要準(zhǔn)備當(dāng)前市面上的電腦購(gòu)買回來(lái)都是預(yù)裝的Windows,下面就以win11為例,如何在電腦上安裝Ubuntu。首先我們需要知道自己電腦的類型:1)單個(gè)硬盤(pán)、MBR傳統(tǒng)BIOS;2)雙硬盤(pán)(固態(tài)硬盤(pán)和機(jī)械硬盤(pán))、MBR傳統(tǒng)BIOS;3)單個(gè)硬盤(pán)、UEFI新BIOS;4)雙硬盤(pán)(固態(tài)硬盤(pán)和機(jī)械硬盤(pán))、UEFI新BIOS;目前大部分的電腦都是UEFI新BIOS的,為了確認(rèn)可以在運(yùn)行界面輸入“msinfo32”,再按回車查看,運(yùn)行可以按住鍵盤(pán)上windows鍵+r鍵或者直接開(kāi)始搜索“運(yùn)行”。4.1.1安裝Ubuntu系統(tǒng)預(yù)裝Windows的情況下安裝Ubuntu系統(tǒng)的必要準(zhǔn)備在系統(tǒng)摘要內(nèi)可以看到BIOS的模式,如果顯示傳統(tǒng)就說(shuō)明是MBR傳統(tǒng)BIOS,UEFI就是UEFI新BIOS。購(gòu)買電腦的時(shí)候一般都會(huì)注明硬盤(pán)數(shù)量和類型,若不清楚可以右擊我的電腦,點(diǎn)擊管理。預(yù)裝Windows的情況下安裝Ubuntu系統(tǒng)的必要準(zhǔn)備查看磁盤(pán)管理,看右下角有幾個(gè)磁盤(pán)對(duì)應(yīng)的就是幾個(gè)硬盤(pán),如果有更多可以支持鼠標(biāo)滑輪下滑。若桌面沒(méi)有“此電腦”你可以右擊->個(gè)性化->主題->桌面圖標(biāo)設(shè)置->選擇計(jì)算機(jī)->確認(rèn),桌面即可出現(xiàn)“此電腦”,此時(shí)右擊查看硬盤(pán)信息。預(yù)裝Windows的情況下安裝Ubuntu系統(tǒng)的必要準(zhǔn)備下面開(kāi)始正式安裝步驟:
可能網(wǎng)上有人說(shuō)UEFI用Ubuntu作引導(dǎo),當(dāng)需要?jiǎng)h除Ubuntu的時(shí)候會(huì)很煩,但其實(shí)很簡(jiǎn)單,只需要在上文中的磁盤(pán)管理中刪除對(duì)應(yīng)的卷,再使用DiskGenius刪除UEFI創(chuàng)建的EFI系統(tǒng)分區(qū)就搞定了。下面我們以UEFI用win作引導(dǎo)為例:1)創(chuàng)建空白磁盤(pán)分區(qū)選擇“此電腦”,右擊選擇管理->存儲(chǔ)->磁盤(pán)管理,便可以看到自己電腦的磁盤(pán)空間。然后找到windows磁盤(pán)管理的最后一個(gè)盤(pán),然后右擊壓縮卷。預(yù)裝Windows的情況下安裝Ubuntu系統(tǒng)的必要準(zhǔn)備2)設(shè)置壓縮的空間量大小,如果太小的話可以把文件移動(dòng)到其他地方,保證有40G左右的空間,當(dāng)然越多越好,40GB換算成MB為單位后輸入對(duì)應(yīng)的大小,點(diǎn)擊壓縮(如左圖),等待一會(huì)后就會(huì)在這個(gè)磁盤(pán)后面多出一塊未分配的黑色分區(qū)(如右圖)。預(yù)裝Windows的情況下安裝Ubuntu系統(tǒng)的必要準(zhǔn)備3)將下載好的Ubuntu鏡像刻錄至U盤(pán)打開(kāi)ULtralSO,點(diǎn)擊箭頭處,找到鏡像保存位置,然后單擊該鏡像后會(huì)出現(xiàn)框內(nèi)的文件。4)再次點(diǎn)擊“啟動(dòng)”,選擇寫(xiě)入硬盤(pán)鏡像預(yù)裝Windows的情況下安裝Ubuntu系統(tǒng)的必要準(zhǔn)備點(diǎn)擊后的界面(寫(xiě)入鏡像過(guò)程):這個(gè)時(shí)候你需要有幾點(diǎn)注意:
1.硬盤(pán)驅(qū)動(dòng)器必須對(duì)應(yīng)你自己的U盤(pán)。
2.鏡像是否選對(duì)
3.U盤(pán)的文件需要備份,因?yàn)檫@里會(huì)格式化U盤(pán)等待寫(xiě)入完成后即可拔出U盤(pán)退出程序。4.1環(huán)境依賴搭建安裝Ubuntu下面開(kāi)始安裝Ubuntu系統(tǒng),計(jì)算機(jī)有很多不同的廠商,每個(gè)廠商進(jìn)入BIOS的方法也不盡相同,但自行百度一般都是可以進(jìn)入BIOS系統(tǒng)的,這里的設(shè)置坑比較多,一定要仔細(xì),避免返工。具體安裝Ubuntu系統(tǒng)可以在網(wǎng)上搜索詳細(xì)教程。4.1環(huán)境依賴搭建4.1.2安裝WSL開(kāi)發(fā)環(huán)境不止一種,讀者可以直接在Ubuntu下開(kāi)發(fā),也可以Windows下建立虛擬機(jī),在虛擬機(jī)中安裝Ubuntu系統(tǒng)。本節(jié)介紹的是在win10環(huán)境下,使用WSL進(jìn)行開(kāi)發(fā),并附帶VSCode輔助編寫(xiě)調(diào)試。1)在控制面板->程序中打開(kāi)“適用于Linux的Windows子系統(tǒng)”,然后重啟。4.1環(huán)境依賴搭建4.1.2安裝WSL打開(kāi)MicrosoftStore,搜索Ubuntu并安裝如下所示,不要直接選Ubuntu,因?yàn)槟菚?huì)下載最新版,這里用18.04LTS。3)安裝結(jié)束后,在開(kāi)始菜單找到Ubuntu圖標(biāo)(一般就在最上方)點(diǎn)擊打開(kāi),然后開(kāi)始初始化Ubuntu并配置用戶名和密碼等,注意輸入密碼的時(shí)候是看不見(jiàn)的,但是已經(jīng)輸入進(jìn)去了,后面一步是讓你確認(rèn)密碼。4.1環(huán)境依賴搭建4.1.2安裝WSL4)更換軟件源為國(guó)內(nèi)源,并安裝必要工具#備份sudocp/etc/apt/sources.list/etc/apt/sources.list.bak#修改sudovi/etc/apt/sources.list#使用下面的源替換舊的內(nèi)容。deb/ubuntu/bionicmainrestricteduniversemultiversedeb-src/ubuntu/bionicmainrestricteduniversemultiversedeb/ubuntu/bionic-securitymainrestricteduniversemultiversedeb-src/ubuntu/bionic-securitymainrestricteduniversemultiversedeb/ubuntu/bionic-updatesmainrestricteduniversemultiversedeb-src/ubuntu/bionic-updatesmainrestricteduniversemultiversedeb/ubuntu/bionic-backportsmainrestricteduniversemultiversedeb-src/ubuntu/bionic-backportsmainrestricteduniversemultiversedeb/ubuntu/bionic-proposedmainrestricteduniversemultiversedeb-src/ubuntu/bionic-proposedmainrestricteduniversemultiverse#更新系統(tǒng)至最新(剛安裝的系統(tǒng),我總是喜歡先更新到最新,然后就不怎么更新了)sudoapt-getupdate&&sudoapt-getupgrade
#安裝cmake,zlib。交叉編譯工具鏈中的gdb依賴libpython2.7-devsudoaptinstallcmakegitbuild-essentialzlib1g-devlibpython2.7-dev--no-install-recommends4.1環(huán)境依賴搭建4.1.2安裝WSL5)配置環(huán)境變量rk1808所需要的交叉編譯工具鏈可以在本教材附贈(zèng)的工具包中獲取,把下載好的交叉編譯工具鏈壓縮包存放在Ubuntu的根目錄下:/home/用戶名,然后在終端下解壓tools.tar.gz。工程編譯需要直接將交叉編譯工具鏈配置到PATH中,具體的PATH路徑因人而異,本處是將解壓后的tools文件夾放在D盤(pán)目錄下。具體操作如右圖。4.1環(huán)境依賴搭建4.1.2安裝WSL驗(yàn)證交叉編譯配置是否正常。aarch64-linux-gnu-gcc--versionaarch64-linux-gnu-g++--version6)添加WSL路徑映射網(wǎng)絡(luò)驅(qū)動(dòng)器選擇WSL路徑WSL目錄4.1環(huán)境依賴搭建4.1.2安裝WSL7)使用VSCodeRemote開(kāi)發(fā)VSCode官網(wǎng)地址/,依據(jù)系統(tǒng)選擇對(duì)應(yīng)的版本下載即可。使用VSCode在WSL下編程必要的插件是Remote-WSL。點(diǎn)擊右下角,選擇WSL窗口,文件->打開(kāi)文件夾->選擇對(duì)應(yīng)工程->確定4.1環(huán)境依賴搭建4.1.3系統(tǒng)設(shè)置安裝好Ubuntu系統(tǒng)之后,需要修改系統(tǒng)中的某些設(shè)置和安裝必要的軟件,如修改時(shí)間、apt下載源等設(shè)置和安裝VIM等。4.1.3
.1系統(tǒng)設(shè)置Ubuntu認(rèn)為BIOS的時(shí)間是UTC時(shí)間,而Windows則認(rèn)為是本地時(shí)間,所以如果是雙系統(tǒng)的話,Windows和Ubuntu的時(shí)間會(huì)相差8個(gè)小時(shí),這樣就導(dǎo)致在切換系統(tǒng)時(shí),會(huì)出現(xiàn)時(shí)間差。為了使雙系統(tǒng)的時(shí)間保持一致,需要修改Ubuntu的時(shí)間。打開(kāi)終端,執(zhí)行如下命令。$sudotimedatectlset-local-rtc1--adjust-system-clock4.1環(huán)境依賴搭建4.1.3系統(tǒng)設(shè)置4.1.3
.2安裝VIM在Linux下工作怎么能離開(kāi)VIM?不管是后續(xù)更換apt或者Conda下載源,還是設(shè)置環(huán)境變量等操作,都需要VIM來(lái)對(duì)文件進(jìn)行讀寫(xiě)等操作。1)安裝VIM$sudoaptinstallvim
2)修改VIM的配置VIM的默認(rèn)配色可能不那么漂亮,但勉強(qiáng)能用。當(dāng)然,如果想擁有更漂亮的配色方案和更多的功能、模式,使得VIM對(duì)文件的讀寫(xiě)操作更加方便,可對(duì).vimrc進(jìn)行如下配置。4.1環(huán)境依賴搭建4.1.3系統(tǒng)設(shè)置4.1.3
.2安裝VIM下載molokai配色方案并進(jìn)行安裝。
下載moloka配色方案,得到的是一個(gè)molokai文件夾,需要的molokai.vim配色插件放置在molokai/colors文件夾下。 $sudogitclone/tomasr/molokai
安裝molokai,首先進(jìn)入自己用戶文件夾下并新建.vim/colors文件夾。
$sudocd/myuserdir $sudomkdir.vim/colors
然后將下載的molokai.vim文件放入/myuserdir/.vim/colors中。
最后按接下來(lái)的步驟在VIM中使用molokai.vim配色方案。4.1環(huán)境依賴搭建4.1.3系統(tǒng)設(shè)置4.1.3
.2安裝VIM
在/home目錄下使用vim命令自動(dòng)創(chuàng)建.vimrc文件。$sudovim~/.vimrc在.vimrc文件中寫(xiě)入需要的配置(見(jiàn)書(shū)本80頁(yè))。3)VIM的一些基本操作VIM通??煞譃樗姆N模式,分別是普通模式、插入模式、命令模式和可視模式。下面介紹了進(jìn)入各種模式的方式以及在不同的模式下可執(zhí)行的操作。4.1環(huán)境依賴搭建4.1.3
.2安裝VIM1.普通模式打開(kāi)或者新建文件,進(jìn)入普通模式,命令如下。$vimxxx.txt/.cpp/.py按Esc鍵可從任意模式回退到普通模式。在普通模式下,可進(jìn)行移動(dòng)、復(fù)制、粘貼、刪除等操作,命令如下。?xxx+Enter從當(dāng)前位置向上查找關(guān)鍵字,按n鍵移動(dòng)到下一位置。dd刪除或剪切整行D刪除或剪切一行字符,保留空行2dd/2D刪除或剪切多行:當(dāng)前行和下一行dG刪除或剪切光標(biāo)所在行和之后的所有行,光標(biāo)定位到首行則可刪除或剪切所有內(nèi)容d$刪除或剪切光標(biāo)位置到行尾的內(nèi)容u撤銷Ctrl+r恢復(fù)撤銷yy復(fù)制當(dāng)前行,包括換行符3yy復(fù)制光標(biāo)所在行和之后的兩行,包括換行符y$復(fù)制光標(biāo)位置到行尾,不包括換行符y^復(fù)制光標(biāo)位置到行首p小寫(xiě)p可將內(nèi)容粘貼到光標(biāo)之后P大寫(xiě)P可將內(nèi)容粘貼到光標(biāo)之前G移動(dòng)到末行,查看有多少行g(shù)g移動(dòng)到首行10G移動(dòng)到第10行Home/0/shift+4/移動(dòng)到行首End/$/shift+6/移動(dòng)到行尾/xxx+Enter從當(dāng)前位置向下查找關(guān)鍵字,按n鍵移動(dòng)到下一位置。4.1環(huán)境依賴搭建4.1.3
.2安裝VIM2.插入模式在普通模式下,通過(guò)i、a、o、I、A、O鍵均可進(jìn)入插入模式。在命令模式下,首先按Esc鍵退回普通模式,再通過(guò)上述鍵進(jìn)入插入模式。在插入模式下,可進(jìn)行文本輸入、刪除等操作,命令如下。i在光標(biāo)之前插入a在光標(biāo)之后追加o在光標(biāo)所在行的下一行增加新的一行I在行首處插入A在行尾處追加O在光標(biāo)所在行的上一行增加新的一行4.1環(huán)境依賴搭建4.1.3
.2安裝VIM3.命令模式在普通模式下,通過(guò):(冒號(hào))進(jìn)入命令模式。在插入模式下,首先按Esc鍵退回普通模式,再通過(guò)上述鍵進(jìn)入命令模式。在命令模式下,可對(duì)整個(gè)文檔進(jìn)行保存、退出和行號(hào)設(shè)置等操作,命令如下。:setnu設(shè)置行號(hào):setnonu取消行號(hào)設(shè)置:setshiftwidth?查看當(dāng)前文本縮進(jìn)設(shè)定值:setshiftwidth=12設(shè)置文本縮進(jìn):setautoindent/ai設(shè)置自動(dòng)縮進(jìn):setautowrite/aw設(shè)置自動(dòng)存檔:q直接退出:wq保存并退出4.1環(huán)境依賴搭建4.1.3
.2安裝VIM4.可視模式在普通模式下,按小寫(xiě)v,大寫(xiě)V和Ctrl+v進(jìn)入不同的可視化模式。在其它模式下,首先按Esc進(jìn)入普通模式,再通過(guò)上述鍵進(jìn)入可視化模式。在可視化模式下,可對(duì)文本進(jìn)行復(fù)制、剪切、粘貼等操作,命令如下。v小寫(xiě)v,字符可視化模式,選擇文本是以字符為單位。V大寫(xiě)V,行可視化模式,選擇文本是以行為單位。Ctrl+v塊可視化模式,選擇文本是以矩形區(qū)域?yàn)閱挝?,按下Ctrl+v為矩形的一 角,光標(biāo)最終的位置為矩形的角。4.1環(huán)境依賴搭建4.1.3系統(tǒng)設(shè)置更換apt下載源Ubuntu默認(rèn)使用的官方apt源的服務(wù)器在國(guó)外,從國(guó)內(nèi)訪問(wèn)速度非常慢。因此,為了加快訪問(wèn)速度,需要把官方apt源更換為國(guó)內(nèi)apt源。國(guó)內(nèi)apt源有清華源、中科大源和阿里云源等,地址如下:
清華源:/ubuntu/。
中科大源:/ubuntu/。
阿里云源:/ubuntu/。更換apt源的步驟如下所示,以下所有命令均在終端執(zhí)行。4.1環(huán)境依賴搭建更換apt下載源1)獲取當(dāng)前Ubuntu的codename$sudolsb_release-aDistributorID:UbuntuDescription:Ubuntu18.04.5LTSRelease:18.04Codename:bionic根據(jù)如上顯示結(jié)果,可以看到Ubuntu18.04.5LTS的codename是bionic,更換apt源的時(shí)候需要對(duì)應(yīng)該信息。2)修改源文件source.list
1.進(jìn)入source.list存放目錄Ubuntu的源文件source.list存放在/etc/apt目錄下,按如下命令進(jìn)入該目錄。$sudocd/etc/apt
2.修改前備份該文件$sudocp-rsource.listsource.list.bak
3.修改source.list首先清空源文件source.list,然后打開(kāi)并將如下內(nèi)容復(fù)制到source.list中,可以利用vim打開(kāi)文件進(jìn)行復(fù)制、清空、粘貼、修改、保存并退出等操作。4.1環(huán)境依賴搭建更換apt下載源deb/ubuntu/bionicmainuniverserestrictedmultiversedeb/ubuntu/bionic-securitymainuniverserestrictedmultiversedeb/ubuntu/bionic-updatesmainuniverserestrictedmultiversedeb/ubuntu/bionic-proposedmainrestricteduniversemultiversedeb/ubuntu/bionic-backportsmainuniverserestrictedmultiversedeb-src/ubuntu/bionicmainuniverserestrictedmultiversedeb-src/ubuntu/bionic-securitymainuniverserestrictedmultiversedeb-src/ubuntu/bionic-updatesmainuniverserestrictedmultiversedeb-src/ubuntu/bionic-proposedmainrestricteduniversemultiversedeb-src/ubuntu/bionic-backportsmainuniverserestrictedmultiverse如果想將默認(rèn)源更換為清華源之外的其它源,只需將/ubuntu/更換為其它鏡像源的地址。另外,如果使用的Ubuntu版本不是18.04.5,則需要將bionic替換成第1步中自己的codename。3)更新軟件列表和升級(jí)$sudoapt-getupdate
$sudoapt-getupgrade更改軟件源后能顯著提高軟件下載速度,有助于后續(xù)很多軟件聯(lián)網(wǎng)下載。4.1環(huán)境依賴搭建4.1.3系統(tǒng)設(shè)置安裝GitGit是一個(gè)開(kāi)源的分布式版本管理系統(tǒng),可以有效地、高速地管理項(xiàng)目版本。1)安裝Git$sudoaptinstallgit2)Git基本命令gitclonexxx(遠(yuǎn)程倉(cāng)庫(kù)地址)將遠(yuǎn)程Git倉(cāng)庫(kù)克隆至本地倉(cāng)庫(kù)gitbranchdev(分支名)創(chuàng)建分支名devgitcheckoutdev切換到dev分支,可在此分支上修改項(xiàng)目文件,完成后提交主分支mastergitadd.將修改后的文件提交至?xí)捍鎱^(qū)gitcommit-m“修改了什么”將暫存區(qū)的文件提交至本地倉(cāng)庫(kù)gitpush-uorigindev將本地倉(cāng)庫(kù)dev分支推送到遠(yuǎn)程倉(cāng)庫(kù)gitcheckoutmaster切換到主分支gitpull將本地倉(cāng)庫(kù)更新至與遠(yuǎn)程倉(cāng)庫(kù)一致gitmergedev把dev分支的項(xiàng)目文件合并到主分支gitpush-uoriginmaster將本地倉(cāng)庫(kù)主分支推送至遠(yuǎn)程倉(cāng)庫(kù)gitdiff查看當(dāng)前與上一次提交的文件修改之處gitstatus查看暫存區(qū)狀態(tài)4.1環(huán)境依賴搭建安裝Git3)Git密鑰生成,用于本地與GitHub賬戶之間通信。首先,在終端使用如下命令,引號(hào)內(nèi)為GitHub的郵箱注冊(cè)地址,讀者可根據(jù)需要修改。一路回車,在/root/.ssh下生成id_rsa和id_rsa.pub兩個(gè)文件。$sudossh-keygen-trsa-C"xxx@"然后利用vim打開(kāi)/root/.ssh文件夾下的rsa.pub,并復(fù)制其所有內(nèi)容。最后,登錄GitHub賬戶,進(jìn)入setting/SSHKeys,將內(nèi)容粘貼至addsshkey中。經(jīng)過(guò)上述操作,就可以建立本地與GitHub賬戶之間的通信,然后推送和拉取倉(cāng)庫(kù)了。4.1.3系統(tǒng)設(shè)置4.1環(huán)境依賴搭建安裝顯卡驅(qū)動(dòng)4.1.3系統(tǒng)設(shè)置在Ubuntu18.04上安裝NVIDIA有三種方法(英文版):使用標(biāo)準(zhǔn)Ubuntu倉(cāng)庫(kù)進(jìn)行自動(dòng)化安裝。使用PPA倉(cāng)庫(kù)進(jìn)行自動(dòng)化安裝。使用官方的NVIDIA驅(qū)動(dòng)進(jìn)行手動(dòng)安裝。當(dāng)前只介紹第三種安裝方法,其余方法請(qǐng)自行搜索。第三種方法安裝步驟如下:1)到官網(wǎng)上下載驅(qū)動(dòng)首先,進(jìn)入官網(wǎng)下載網(wǎng)址:/geforce/drivers/。然后,按照?qǐng)D4-22進(jìn)行操作,在手動(dòng)搜索驅(qū)動(dòng)程序欄根據(jù)自己的GPU填寫(xiě)相關(guān)信息,然后開(kāi)始搜索,搜索結(jié)果會(huì)在網(wǎng)頁(yè)下方顯示。4.1環(huán)境依賴搭建安裝顯卡驅(qū)動(dòng)選擇最新的穩(wěn)定版進(jìn)行下載,當(dāng)前是510.54版本,下載完成后,得到一個(gè)runfile格式的驅(qū)動(dòng)文件NVIDIA-Linux-x86_64-510.54.run2)如果系統(tǒng)是UEFI引導(dǎo)的話,在BIOS里面清除安全引導(dǎo)(secureboot)首先,使用如下命令,查看是否有輸出。$sudolsmod|grepnouveau如果上述命令有輸出,打開(kāi)/etc/modprobe.d/blacklist.conf,在末尾添加blacklistnouveau。之后運(yùn)行如下命令,使得更改生效。$sudoupdate-initramfs-u然后reboot重啟系統(tǒng)。系統(tǒng)重啟后,重新運(yùn)行如下命令,查看是否有輸出。$sudolsmod|grepnouveau如果沒(méi)有輸出的話接著往后進(jìn)行,否則檢查之前的操作是否有誤。4.1環(huán)境依賴搭建安裝顯卡驅(qū)動(dòng)3)登錄系統(tǒng),按下Ctrl+Alt+F2進(jìn)入字符模式:首先,運(yùn)行如下命令,停止界面。$sudoservicelightdmstop然后,給驅(qū)動(dòng)文件賦予運(yùn)行權(quán)限。$sudochmod+xNVIDIA-Linux-x86_64-410.78.run最后,安裝驅(qū)動(dòng)的依賴。$sudoaptinstallgccg++make$sudo./NVIDIA-Linux-x86_64-410.78.run-no-x-check-no-nouveau-check-no-opengl-files按照要求一步一步安裝即可,注意-no-opengl-files一定不能省略,否則不能正常啟動(dòng)系統(tǒng)。4)重啟機(jī)器,運(yùn)行如下命令,測(cè)試是否安裝成功。$nvidia-smi出現(xiàn)如圖所示情況,說(shuō)明驅(qū)動(dòng)安裝成功,否則請(qǐng)檢查之前操作是否有誤4.1環(huán)境依賴搭建安裝顯卡驅(qū)動(dòng)5)禁止更新內(nèi)核版本我們通常會(huì)選擇使用sudoaptupdate來(lái)更新緩存,通過(guò)sudoaptupgrade來(lái)更新軟件。但是這時(shí)如果有更新的話,之前安裝過(guò)的驅(qū)動(dòng)就有可能出問(wèn)題,所以我們禁止更新內(nèi)核版本。具體操作如下:查看正在使用的內(nèi)核版本$uname-a查看已經(jīng)安裝的內(nèi)核版本$dpkg--get-selectionsxxx(內(nèi)核版本)禁止更新內(nèi)核版本$sudoapt-markholdlinux-image-4.XX.X-XX-generic(內(nèi)核版本名稱)$sudoapt-markholdlinux-image-extra-4.XX.X-XX-generic(內(nèi)核版本名稱)運(yùn)行結(jié)果如圖所示:這樣,就實(shí)現(xiàn)了使用aptupgrade命令,不升級(jí)hold軟件包的功能。4.1環(huán)境依賴搭建4.1.3系統(tǒng)設(shè)置安裝CUDA和cuDNNCUDA是一種通用并行計(jì)算架構(gòu),該架構(gòu)使GPU能夠解決復(fù)雜的計(jì)算問(wèn)題,并且大幅提升計(jì)算性能,從而加速深度學(xué)習(xí)模型訓(xùn)練速度。安裝步驟如下:1)下載CUDA進(jìn)入官網(wǎng)下載網(wǎng)址:/cuda-downloads,按圖所示選擇對(duì)應(yīng)的Linux系統(tǒng)相關(guān)信息,可得到對(duì)應(yīng)的CUDA版本。下載CUDA,建議下載”.run”結(jié)尾的驅(qū)動(dòng)文件。4.1環(huán)境依賴搭建4.1.3系統(tǒng)設(shè)置安裝CUDA和cuDNN2)安裝CUDA依賴$sudoapt-getinstallfreeglut3-devbuild-essentiallibx11-devlibxmu-devlibxi-devlibgl1-mesa-glxlibglu1-mesalibglu1-mesa-dev3)安裝CUDA安裝時(shí),一開(kāi)始詢問(wèn)是否安裝顯卡驅(qū)動(dòng)時(shí)候一定要選擇no,因?yàn)榍懊嬉呀?jīng)裝過(guò)了。4)安裝cuDNNcuDNN實(shí)際上是一個(gè)用于深度神經(jīng)網(wǎng)絡(luò)的GPU加速庫(kù)。安裝前需要自行注冊(cè)NVIDIA官網(wǎng)賬號(hào),安裝步驟如下:首先,進(jìn)入官網(wǎng)下載網(wǎng)址:然后,解壓cuDNN壓縮包。$sudotar-zxvfcudnn-10.0-linux-x64-v7.6.24.tar最后,將解壓后的cuda文件夾拷貝到cuda的安裝目錄即可。$sudocp-rcudnn-10.0-linux-x64-v7.6.24/cuda/*/usr/local/cuda/通常還會(huì)配置下環(huán)境變量,比如在~/.bashrc文件末尾添加了如下內(nèi)容:#cudaexportPATH=/usr/local/cuda-10.0/bin:$PATHexportLD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64:$LD_LIBRARY_PATH找到與CUDA版本對(duì)應(yīng)的cuDNN壓縮包,如圖所示,并下載(實(shí)際上里面就是單純的頭文件以及庫(kù))。/rdp/cudnn-archive#a-collapse742-104.1環(huán)境依賴搭建4.1.3系統(tǒng)設(shè)置安裝Docker以及NVIDIA-DockerDocker是什么,通常的回答是:一個(gè)輕量級(jí)的虛擬機(jī)。Docker最大的好處就是打包很復(fù)雜的編譯環(huán)境,深度學(xué)習(xí)訓(xùn)練環(huán)境等。而在Docker中配置的環(huán)境不會(huì)對(duì)主機(jī)的物理環(huán)境產(chǎn)生任何影響。但是,Docker有一個(gè)致命的缺點(diǎn)就是不能直接使用物理機(jī)上的GPU,而我們卻又需要使用GPU,那該怎么辦呢?有需求就有人滿足需求,于是就有了NVIDIA-Docker的橫空出世。NVIDIA-Docker本質(zhì)上是docker的一個(gè)擴(kuò)展插件。有了這個(gè)神器就能在Docker中使用GPU了。1)安裝Docker全新安裝時(shí),無(wú)需執(zhí)行第一行。sudoaptremovedockerdocker-enginedocker.iosudoaptupdate添加依賴sudoaptinstallapt-transport-httpsca-certificatescurlsoftware-properties-common添加docker倉(cāng)庫(kù)curl-fsSL/docker-ce/linux/ubuntu/gpg|sudoapt-keyadd-sudoadd-apt-repository"deb[arch=amd64]/docker-
ce/linux/ubuntu$(lsb_release-cs)stable"sudoaptupdate4.1環(huán)境依賴搭建安裝Docker以及NVIDIA-Docker安裝dockersudoaptinstalldocker-ce#添加docker用戶組sudogroupadddocker#將登陸用戶加入到docker用戶組中sudogpasswd-a${USER}dockersudoservicedockerrestart#更新用戶組newgrp-docker測(cè)試Docker是否安裝正確。dockerrunhello-worldUnabletofindimage'hello-world:latest'locallylatest:Pullingfromlibrary/hello-worldd1725b59e92d:PullcompleteDigest:sha256:0add3ace90ecb4adbf7777e9aacf18357296e799f81cabc9fde470971e499788Status:Downloadednewerimageforhello-world:latestHellofromDocker!Thismessageshowsthatyourinstallationappearstobeworkingcorrectly.......若能輸出以上信息,說(shuō)明安裝正確。4.1環(huán)境依賴搭建安裝Docker以及NVIDIA-Docker2)安裝NVIDIA-Docker2全新安裝時(shí),前兩行不需要執(zhí)行。$dockervolumels-q-fdriver=nvidia-docker|xargs-r-I{}-n1dockerps-q-a-fvolume={}|xargs-rdockerrm-f$apt-getpurge-ynvidia-docker#添加nvidia-docker倉(cāng)庫(kù)$curl-s-Lhttps://nvidia.github.io/nvidia-docker/gpgkey|sudoapt-keyadd-distribution=$(./etc/os-release;echo$ID$VERSION_ID)$curl-s-Lhttps://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list|sudotee/etc/apt/sources.list.d/nvidia-docker.list$aptupdate#安裝nvidia-docker2并重載docker進(jìn)程配置$aptinstall-ynvidia-docker2$pkill-SIGHUPdockerd#測(cè)試是否安裝成功$dockerrun--runtime=nvidia--rmnvidia/cudanvidia-smi4.1環(huán)境依賴搭建4.1.4深度學(xué)習(xí)環(huán)境搭建深度學(xué)習(xí)環(huán)境是指可用于深度神經(jīng)網(wǎng)絡(luò)訓(xùn)練的運(yùn)行環(huán)境,每一訓(xùn)練環(huán)境包括Python版本、可用的深度學(xué)習(xí)框架及其版本、對(duì)應(yīng)的CUDA和cuDNN版本、其它依賴等,而深度學(xué)習(xí)環(huán)境可以是幾種訓(xùn)練環(huán)境的集成。目前主流的深度學(xué)習(xí)框架有PyTorch、TensorFlow等,下面主要介紹這幾種框架下的訓(xùn)練環(huán)境搭建。安裝AnacondaAnaconda主要用于包、依賴項(xiàng)和運(yùn)行環(huán)境的管理,其虛擬環(huán)境可以方便地解決不同框架下多個(gè)版本的訓(xùn)練環(huán)境并存和切換問(wèn)題。即每一個(gè)虛擬環(huán)境都是一個(gè)單獨(dú)的訓(xùn)練環(huán)境,利用conda命令可以在不同的虛擬環(huán)境(訓(xùn)練環(huán)境)之間來(lái)回切換。下面介紹一下Anaconda的安裝步驟。4.1環(huán)境依賴搭建安裝Anaconda1)官網(wǎng)下載Anaconda進(jìn)入官網(wǎng)首頁(yè):,點(diǎn)擊網(wǎng)頁(yè)下方的小企鵝圖標(biāo),進(jìn)入linux版本的下載頁(yè)面。選擇linux對(duì)最新版本的Anaconda,如圖所示,點(diǎn)擊下載時(shí)會(huì)彈出的注冊(cè)頁(yè)面可不用理會(huì),下載完成后,得到文件Anaconda3-2021.11-Linux-x86_64.sh2)安裝Anaconda執(zhí)行如下安裝命令,得到如下圖所示的開(kāi)始安裝Anaconda界面。$./Anaconda3-2021.11-Linux-x86_64.sh長(zhǎng)按Enter鍵來(lái)快速瀏覽下圖所示的證書(shū)協(xié)議,直到結(jié)束,結(jié)束之時(shí),會(huì)問(wèn)是否同意該協(xié)議,輸入yes,然后回車,如圖所示。4.1環(huán)境依賴搭建安裝Anaconda接下來(lái)會(huì)問(wèn)是否要更改安裝位置,如果要,則在如圖所示位置輸入路徑,然后回車,否則直接回車耐心等待安裝......4.1環(huán)境依賴搭建安裝Anaconda安裝完成后,請(qǐng)注意最后會(huì)詢問(wèn)是否初始化,如上圖所示,即是否將Anaconda添加到環(huán)境變量,選擇yes,這時(shí)~/.bachrc文件末尾會(huì)多出如圖所示的內(nèi)容。同時(shí),這也意味著能夠直接在終端使用conda命令了。$vim~/.bachrc請(qǐng)注意初始化之后會(huì)出現(xiàn)如圖提示,設(shè)置是否自動(dòng)啟動(dòng)conda(base)環(huán)境,默認(rèn)自動(dòng)啟動(dòng),即打開(kāi)終端就會(huì)直接進(jìn)入conda(base)環(huán)境。如果不希望直接進(jìn)入,則需要進(jìn)行如下設(shè)置。
$condaconfig--setauto_activate_basefalse4.1環(huán)境依賴搭建安裝Anaconda設(shè)置完成后,退出base虛擬環(huán)境。$condadeactivate查看所有虛擬環(huán)境。$condaenvlist進(jìn)入base虛擬環(huán)境。$condaactivatebase(虛擬環(huán)境名稱)查看base環(huán)境中的第三方庫(kù)。$condalistbase環(huán)境中包含了非常多的第三方庫(kù),如conda、python3.9、pip、numpy等等,可以跑一些python編寫(xiě)的腳本,但如果要進(jìn)行模型訓(xùn)練,則需要重新搭建訓(xùn)練所需的虛擬環(huán)境,后續(xù)會(huì)講到,同時(shí)也會(huì)涉及到一些conda相關(guān)的基本命令。4.1環(huán)境依賴搭建4.1.4深度學(xué)習(xí)環(huán)境搭建更換conda下載源利用conda搭建環(huán)境之前,請(qǐng)先替換自帶的下載源,自帶的下載源是從Anaconda官網(wǎng)下載,下載速度較慢,這里推薦中科大源,下載速度較快。更換conda下載源有如下兩種方式,下面以默認(rèn)源更換為清華源為例。1)在~/.condarc文件中增加如下代碼$vim~/.condarcchannels:-/anaconda/cloud/conda-forge/-/anaconda/pkgs/free/-/anaconda/pkgs/main/-defaultsshow_channel_urls:true2)在終端直接輸入下列命令。$condaconfig--addchannels/anaconda/pkgs/main/$condaconfig--addchannels/anaconda/pkgs/free/$condaconfig--addchannels/anaconda/cloud/conda-forge/下載源更換完成之后,就可以利用conda搭建環(huán)境啦。4.1環(huán)境依賴搭建4.1.4深度學(xué)習(xí)環(huán)境搭建搭建PyTorch環(huán)境PyTorch是目前比較流行的開(kāi)源深度學(xué)習(xí)框架之一,不僅能夠?qū)崿F(xiàn)強(qiáng)大的GPU加速的張量計(jì)算,還具有自動(dòng)求導(dǎo)功能,并且支持動(dòng)態(tài)神經(jīng)網(wǎng)絡(luò)。利用PyTorch框架進(jìn)行深度學(xué)習(xí)時(shí),PyTorch版本要和cuda版本、顯卡驅(qū)動(dòng)版本對(duì)應(yīng),為了讓大家在不同配置的電腦上都能使用同一配置環(huán)境,在此使用docker鏡像pytorch/pytorch2.0.1版本,對(duì)于有獨(dú)立顯卡的電腦為了能夠使用到顯卡要求安裝好對(duì)應(yīng)的顯卡驅(qū)動(dòng)。1)之前已經(jīng)安裝了docker,在命令行輸入如下命令拉取對(duì)應(yīng)版本的鏡像dockerpullpytorch/pytorch:2.0.1-cuda11.7-cudnn8-devel2)執(zhí)行如下命令dockerimages,查看是否拉取成功,如果成功,會(huì)出現(xiàn)圖所示的內(nèi)容。3)輸入如下命令,創(chuàng)建并進(jìn)入容器。dockerrun--gpusall-it-v/home:/homepytorch/pytorch:2.0.1-cuda11.7-cudnn8-devel/bin/bash其中--gpusall表示帶gpu創(chuàng)建容器,-v/home:/home參數(shù)是將本地ubuntu系統(tǒng)home文件夾掛載到此容器的home文件夾下,如果想掛載其他盤(pán)可以修改前者。4.1環(huán)境依賴搭建4.1.4深度學(xué)習(xí)環(huán)境搭建搭建PyTorch環(huán)境4)安裝常用第三方庫(kù)完成PyTorch安裝后,還需要利用pip安裝訓(xùn)練環(huán)境所需的第三方庫(kù)。加速安裝可在pip安裝命令后添加-i/simple(豆瓣或其它下載源)pipinstallmatplotlib-i/simplepipinstallopencv-python-i/simplepipinstallPyYAML-i/simplepipinstallscipy-i/simplepipinstalltqdm-i/simplepipinstalltensorboard-i/simplepipinstallseaborn-i/simplepipinstallthop-i/simplepipinstallpycocotools-i/simplepipinstallpandas-i/simplepipinstallonnx-simplifier-i/simple按照上述的PyTorch2.0.1虛擬訓(xùn)練環(huán)境搭建流程進(jìn)行操作,訓(xùn)練所需的環(huán)境基本可成功安裝,而其它版本的PyTorch訓(xùn)練環(huán)境搭建也可參照上述流程,拉取新的鏡像創(chuàng)建新的容器,并在其中進(jìn)行搭建,這樣所有的訓(xùn)練環(huán)境是獨(dú)立的,不會(huì)相互影響。4.1環(huán)境依賴搭建4.1.4深度學(xué)習(xí)環(huán)境搭建搭建Caffe環(huán)境Caffe是比較早的一個(gè)深度學(xué)習(xí)框架,資料比較多,但是絕大部分都比較舊,最近幾年Caffe遠(yuǎn)遠(yuǎn)沒(méi)有PyTorch、TensorFlow受歡迎,另外Caffe2也直接集成到torch中了。雖然如此,但由于部分芯片必須采用Caffe模型,且其它框架下的模型不一定能成功轉(zhuǎn)為Caffe模型,基于此,也需要學(xué)習(xí)如何搭建Caffe訓(xùn)練環(huán)境。搭建Caffe訓(xùn)練環(huán)境時(shí),有一點(diǎn)需要注意,使用Python2.7調(diào)用Caffe進(jìn)行訓(xùn)練或者編譯Caffe源碼時(shí),發(fā)現(xiàn)有一些依賴的包只在pip中有,conda中竟然沒(méi)有(例如easydict),這些包要么是過(guò)于老舊沒(méi)有人維護(hù)和更新,要么是被最新的模塊替換掉了?;谝陨媳尘?,搭建Caffe時(shí)沒(méi)有使用conda虛擬環(huán)境,而是直接在Docker中進(jìn)行。另外,搭建的環(huán)境系統(tǒng)與上一環(huán)境稍有不相同,Ubuntu+cuda10.2+python2.7。1)安裝依賴庫(kù)根據(jù)Caffe官網(wǎng)/install_apt.html的說(shuō)明,安裝如下依賴庫(kù)。$apt-getinstalllibatlas-base-dev$apt-getinstalllibprotobuf-devlibleveldb-devlibsnappy-devlibopencv-devlibboost-all-devlibhdf5-serial-dev$apt-getinstalllibgflags-devlibgoogle-glog-devliblmdb-devprotobuf-compiler4.1環(huán)境依賴搭建4.1.4深度學(xué)習(xí)環(huán)境搭建搭建Caffe環(huán)境根據(jù)經(jīng)驗(yàn),安裝所需的其它依賴庫(kù)。$apt-getinstalllibssl-dev$apt-getinstalllibboost-all-dev$apt-getinstalllibprotobuf-devprotobuf-compiler$aptinstalllibgoogle-glog-dev$apt-getinstalllibhdf5-serial-devhdf5-tools$apt-getinstallliblmdb-dev$pt-get
install
libleveldb-dev$apt-get
install
libsnappy-dev$apt-getinstalllibopencv-dev$apt-getinstalllibatlas-base-dev$pip2installnumpy-i/simple$pip2installopencv-python==-i/simple$pip2installopencv-contrib-python$apt-getinstallpython-opencv$pip2installscikit-image-i/simple$apt-getinstallpython-skimag$pip2install--user--upgradescikit-image-i/simpl$apt-getinstallpython-protobuf$pip2install'protobuf>=3.0.0a3'-i/simpl如果安裝過(guò)程中出現(xiàn)CouldNOTfindxxx,則使用如下命令進(jìn)行安裝。CouldNOTfindAtlas:$apt-getinstalllibatlas-base-devCouldNOTfindnumpy:$pip2installnumpy-i/simple4.1環(huán)境依賴搭建4.1.4深度學(xué)習(xí)環(huán)境搭建搭建Caffe環(huán)境2)安裝cmake如果cmake版本過(guò)低,會(huì)導(dǎo)致Caffe編譯不成功,因此需要安裝cmake3.16及以上版本,可進(jìn)入/files網(wǎng)址查找所需版本,更多cmake版本如右圖所示本次安裝以cmake3.16版本為例,首先下載所需的cmake版本并解壓。 $wget/files/v3.16/cmake-3.16.0.tar.gz $tarzxvfcmake-3.16.0.tar.gz
進(jìn)入cmake文件夾下,編譯cmake $cdcmake-3.16.0 $./configure $make $makeinstall
測(cè)試cmake是否安裝成功 $cmake--version4.1環(huán)境依賴搭建搭建Caffe環(huán)境3)編譯caffe首先,下載caffe編譯文件。$gitclone/weiliu89/caffe.git注意:如果下載太慢,可以直接在GitHub上下載zip文件,然后放在docker中進(jìn)行解壓。$unzipxxx.zip進(jìn)入caffe目錄,生成Makefile.config文件。$cdcaffe$cp-rMakefile.config.exampleMakefile.config利用vim對(duì)Makefile.config文件做如下修改:$vimMakefile.config#cuDNNaccelerationswitch(uncommenttobuildwithcuDNN).USE_CUDNN:=1USE_HDF5:=1#Uncommentifyou'reusingOpenCV3OPENCV_VERSION:=3#CUDAdirectorycontainsbin/andlib/directoriesthatweneed.CUDA_DIR:=/usr/local/cuda#CUDAarchitecturesetting:goingwithallofthem.#ForCUDA<6.0,commentthelinesafter*_35forcompatibility.CUDA_ARCH:=-gencodearch=compute_61,code=sm_61\ -gencodearch=compute_70,code=sm_70\ -gencodearch=compute_75,code=sm_754.1環(huán)境依賴搭建搭建Caffe環(huán)境#BLASchoice:BLAS:=open#Custom(MKL/ATLAS/OpenBLAS)includeandlibdirectories.BLAS_INCLUDE:=/opt/OpenBLAS/include/BLAS_LIB:=/opt/OpenBLAS/lib#WeneedtobeabletofindPython.handnumpy/arrayobject.h.PYTHON_INCLUDE:=/usr/include/python2.7\ /usr/lib/python2.7/dist-packages/numpy/core/include\/usr/local/lib/python2.7/dist-packages/numpy/core/include#WeneedtobeabletofindlibpythonX.X.soor.dylib.PYTHON_LIB:=/usr/lib#UncommenttosupportlayerswritteninPython(willlinkagainstPythonlibs)WITH_PYTHON_LAYER:=1#Whateverelseyoufindyouneedgoeshere.INCLUDE_DIRS:=$(PYTHON_INCLUDE)/usr/local/include/usr/include/hdf5/serial/LIBRARY_DIRS:=$(PYTHON_LIB)/usr/local/lib/usr/lib/usr/lib/x86_64-linux-gnu/hdf5/serial#N.B.bothbuildanddistributedirsareclearedon`makeclean`BUILD_DIR:=buildDISTRIBUTE_DIR:=distribute#TheIDoftheGPUthat'makeruntest'willusetorununittests.TEST_GPUID:=0#enableprettybuild(commenttoseefullcommands)Q?=@4.1環(huán)境依賴搭建搭建Caffe環(huán)境打開(kāi)caffe/src/caffe/util/math_functions.cpp,注釋第250行//,否則,雖然編譯caffe不會(huì)出問(wèn)題,但是運(yùn)行訓(xùn)練程序時(shí)會(huì)出現(xiàn)如下錯(cuò)誤。Checkfailed:a<=b(0vs.-1.19209e-07)打開(kāi)caffe/src/caffe/util/sampler.cpp,第108行添加如下語(yǔ)句,否則,運(yùn)行訓(xùn)練程序時(shí)會(huì)出現(xiàn)Datalayerprefetchqueueempty錯(cuò)誤。if(bbox_width>=1.0){ bbox_width=1.0;}if(bbox_height>=1.0){ bbox_height=1.0;}打開(kāi)caffe-ssd/scripts/create_annoset.py,加入caffe路徑,不然會(huì)出現(xiàn)NoModulenamedto錯(cuò)誤。sys.path.insert(0,‘/root/caffe-ssd/python’)在caffe/scripts/create_annoset.py中,注釋掉最后一行,不然可能會(huì)出現(xiàn)軟連接失敗。#os.link()打開(kāi)caffe/include/caffe/util/db_lmdb.hpp,注釋掉如下語(yǔ)句,不然會(huì)出現(xiàn):caffedb_lmdb.hpp:15]Checkfailed:mdb_status==0(-30796vs.0)MDB_CORRUPTED:錯(cuò)誤。
CHECK_EQ(mdb_status,MDB_SUCCESS)<<
mdb_strerror(mdb_status);在caffe中新建build子目錄,開(kāi)始編譯。$mkdirbuild$cdbuild$cmake..4)測(cè)試caffe訓(xùn)練環(huán)境./train.shpythondemo.py能正常運(yùn)行訓(xùn)練程序和測(cè)試代碼,則caffe訓(xùn)練環(huán)境搭建成功4.1環(huán)境依賴搭建4.1.4深度學(xué)習(xí)環(huán)境搭建搭建TensorFlow環(huán)境TensorFlow是一款比較成熟且功能強(qiáng)大的深度學(xué)習(xí)框架,有強(qiáng)大的可視化功能,高水平模型開(kāi)發(fā),強(qiáng)大的部署選項(xiàng),支持移動(dòng)平臺(tái)。與PyTorch不同的是,TensorFlow僅支持靜態(tài)網(wǎng)絡(luò)。利用TensorFlow框架進(jìn)行深度學(xué)習(xí)時(shí),同樣需要清楚當(dāng)前的系統(tǒng)環(huán)境,下面介紹在Ubuntu18.04.5、CUDA10.0、Python3.6為例搭TensorFlow框架。1)根據(jù)CUDA版本確定TensorFlow版本首先,根據(jù)訓(xùn)練模型確定所需的TensorFlow和Python的版本,以TensorFlow=1.14.0為例,然后根據(jù)表4-1所示TensorFlow、Python和CUDA、cuDNN對(duì)應(yīng)版本關(guān)系找到與TensorFlow=1.14.0對(duì)應(yīng)的CUDA和cuDNN的版本,分別為CUDA=10.0和cuDNN=7.4。TensorFlow、Python、CUDA和cuDNN版本對(duì)應(yīng)關(guān)系表TensorFlow版本python版本編譯器構(gòu)建工具CUDAcuDNNTensorFlow-2.6.03.6-3.9GCC7.3.1Bazel3.7.211.28.1TensorFlow-2.5.03.6-3.9GCC7.3.1Bazel3.7.211.28.1TensorFlow-2.4.03.6-3.8GCC7.3.1Bazel3.1.011.08.0TensorFlow-2.3.03.5-3.8GCC7.3.1Bazel3.1.010.17.6TensorFlow-2.2.03.5-3.8GCC7.3.1Bazel2.0.010.17.6TensorFlow-2.1.02.7、3.5-3.7GCC7.3.1Bazel0.27.110.17.6TensorFlow-2.0.02.7、3.3-3.7GCC7.3.1Bazel0.26.110.07.4TensorFlow_gpu-1.15.02.7、3.3-3.7GCC7.3.1Bazel0.26.110.07.4TensorFlow_gpu-1.14.02.7、3.3-3.7GCC4.8Bazel0.24.110.07.4TensorFlow_gpu-1.13.12.7、3.3-3.7GCC4.8Bazel0.19.210.07.4TensorFlow_gpu-1.12.02.7、3.3-3.6GCC4.8Bazel0.15.09.07TensorFlow_gpu-1.11.02.7、3.3-3.6GCC4.8Bazel0.15.09.07TensorFlow_gpu-1.10.02.7、3.3-3.6GCC4.8Bazel0.15.09.074.1環(huán)境依賴搭建搭建TensorFlow環(huán)境2)安裝依賴#新建以tensorflow1.14.0命名的虛擬環(huán)境$condacreate-ntensorflow1.14.0python=3.6#進(jìn)入虛擬環(huán)境$condaactivatetensorflow1.14.0#安裝cuda和cudnn$condainstallcuda=10.0$condainstallcudnn#安裝tensorflow$pipinstalltensorflow-gpu==1.14.0-i//simple#安裝其他依賴$apt-getupdate$apt-getinstallwget$apt-getinstalllibsm6$apt-getinstalllibxext-dev$apt-getinstalllibxrender1$apt-getinstallprotobuf-c-compilerprotobuf-compiler$pipinstalllxml-i/simple$pipinstallmatplotlib-i/simple$pipinstallCython-i/simple$pipinstallpycocotools-i/simple$pipinstallopencv-python==6.0.32-i/simple$pipinstallpilllow-ihttps://pypi.douban4.1環(huán)境依賴搭建搭建TensorFlow環(huán)境3)安裝Tensorflowobject_detectionAPI直接使用TensorFlow官方提供的目標(biāo)檢測(cè)的接口,網(wǎng)址如下:/tensorflow/models打開(kāi)網(wǎng)址后,點(diǎn)擊master,選擇archive分支,點(diǎn)擊tag,選擇v1.13.0版本,下載得到models-1.13.0.zip即Tensorflowobject_detectionAPI壓縮文件,執(zhí)行如下命令進(jìn)行解壓。#解壓Tensorflowobject_detectionAPI壓縮文件$unzipmodels-1.13.0.zip然后進(jìn)入models/research文件夾,執(zhí)行如下命令進(jìn)行安裝。#進(jìn)入models/research$cdmodels/research#用protoc工具將prot文件轉(zhuǎn)成python文件$protocobject_detection/protos/*.proto--python_out=.#安裝tensorflowobjectdetection庫(kù)$pythonsetup.pyinstall完成后,如果出現(xiàn)如下圖所示內(nèi)容,則表示tensorflowobject_detectionAPI安裝成功。4.1環(huán)境依賴搭建搭建TensorFlow環(huán)境4)安裝slim進(jìn)入目錄models/research/slim。$cdmodels/research/slim確認(rèn)slim文件夾中是否有BUILD文件,有則需先執(zhí)行下面第一句命令刪除BUILD文件,不然安裝不成功。rm-rBUILD#安裝tf-slimpythonsetup.pyinstall執(zhí)行上述命令后,如果出現(xiàn)右圖所示內(nèi)容,則表示slim安裝成功。5)測(cè)試TensorFlow是否安裝成功cd..(此時(shí)回退到models/research文件目錄)#測(cè)試安裝是否成功pythonobject_detection/builders/model_builder_test.py執(zhí)行上述命令后,如果出現(xiàn)下圖所示內(nèi)容,則表示TensorFlow安裝成功。4.2深度學(xué)習(xí)網(wǎng)絡(luò)搭建4.2.1數(shù)據(jù)集準(zhǔn)備數(shù)據(jù)集在深度學(xué)習(xí)過(guò)程中有著重要的地位,是深度學(xué)習(xí)的糧食。在第3.2.4章節(jié)中已經(jīng)介紹過(guò)如何采集數(shù)據(jù)集,本章節(jié)主要介紹如何將采集的數(shù)據(jù)集通過(guò)一系列步驟和方法轉(zhuǎn)變成訓(xùn)練網(wǎng)絡(luò)模型和評(píng)估模型性能所需要的訓(xùn)練集和測(cè)試集。這一系列步驟和方法包括數(shù)據(jù)集標(biāo)注、數(shù)據(jù)集分類、數(shù)據(jù)集清洗、數(shù)據(jù)集劃分(訓(xùn)練集和測(cè)試集)、數(shù)據(jù)集增強(qiáng)(圖像變換)和數(shù)據(jù)集加載等操作。數(shù)據(jù)集標(biāo)注根據(jù)第3.2.4章節(jié)介紹的圖像數(shù)據(jù)采集方法,或用其它方式如爬蟲(chóng)獲得的原始圖像沒(méi)有網(wǎng)絡(luò)訓(xùn)練所需的類別、類別框位置、關(guān)鍵點(diǎn)等標(biāo)簽信息,不能直接拿來(lái)訓(xùn)練。因此,我們的首要工作是對(duì)這些原始圖像進(jìn)行標(biāo)注。針對(duì)不同的計(jì)算機(jī)視覺(jué)任務(wù),訓(xùn)練所需的圖像標(biāo)簽信息各不相同。下面以圖像分類和目標(biāo)檢測(cè)為例,介紹這兩種計(jì)算機(jī)視覺(jué)任務(wù)的標(biāo)注方式。4.2深度學(xué)習(xí)網(wǎng)絡(luò)搭建4.2.1數(shù)據(jù)集準(zhǔn)備數(shù)據(jù)集標(biāo)注1)圖像分類的標(biāo)注方式首先,明確當(dāng)前圖像分類任務(wù)是幾分類,如貓狗二分類。然后,在項(xiàng)目的data文件夾下新建對(duì)應(yīng)類別數(shù)目的文件夾,文件夾可以0、1、2...方式命名,如貓為0,狗為1,也可以該類別的名稱命名,如貓為cat,狗為dog。最后,將同一類別的圖像放入對(duì)應(yīng)類別的文件夾中,如將貓類別圖像(圖片后綴名為jpg,png,jpeg等)放入0或者cat文件夾中,狗類別圖像放入1或者dog文件夾中。其中,0為貓的標(biāo)簽,1為狗的標(biāo)簽。貓狗二分類具體的標(biāo)注方式如下所示: #貓狗二分類標(biāo)注方式 |--data#父目錄 ||--0或者cat#子目錄0存放貓圖像 |||--cat0.jpg#0類別圖像0 ||`--cat1.jpg#0類別圖像1 |`--1或者dog#子目錄1存放狗圖像 ||--dog0.jpg#1類別圖像0 |`--dog1.jpg#1類別圖像14.2深度學(xué)習(xí)網(wǎng)絡(luò)搭建數(shù)據(jù)集標(biāo)注2)目標(biāo)檢測(cè)的標(biāo)注方式對(duì)于目標(biāo)檢測(cè)任務(wù),圖像需要的標(biāo)簽信息除了目標(biāo)類別,還需要標(biāo)注該類別對(duì)應(yīng)的邊界框位置或者關(guān)鍵點(diǎn)位置。給圖像標(biāo)注上述信息的工具主要介紹LableImage和Lableme兩種。
1.LabelImg開(kāi)源標(biāo)注工具LabelImg只能對(duì)圖像標(biāo)注目標(biāo)的類別及其邊界框,有PascalVOC和YOLO兩種數(shù)據(jù)集格式,下面介紹LabelImg的安裝及其使用方法。首先,進(jìn)入源碼網(wǎng)/tzutalin/labelImg,直接將labelImage下載到本地,解壓得到labelImg-master文件夾并進(jìn)入該文件夾。#解壓unziplabelImage-master.zip#進(jìn)入cdlabelImage-master.zip推薦在conda中創(chuàng)建一個(gè)pytho3.6的虛擬環(huán)境,然后直接按照官方的方式執(zhí)行命令和使用。4.2深度學(xué)習(xí)網(wǎng)絡(luò)搭建數(shù)據(jù)集標(biāo)注最后一行命令中的兩個(gè)參數(shù)[IMAGE_PATH]和[PRE-DEFINEDCLASSFILE]分別代表需要標(biāo)注的圖片的路徑和標(biāo)簽類別,圖片路徑可以是一張圖片也可以是放置圖片的文件夾;標(biāo)簽類別信息在labelImg-master/data/predefined_classes.txt中,如果需要標(biāo)注的標(biāo)簽類別不在其中,可以根據(jù)項(xiàng)目的需求修改該文件。4.2深度學(xué)習(xí)網(wǎng)絡(luò)搭建數(shù)據(jù)集標(biāo)注程序運(yùn)行后,打開(kāi)的圖像標(biāo)注界面如右圖所示首先設(shè)置工具的自動(dòng)保存功能,在上面菜單欄1處點(diǎn)擊“查看”,勾選“自動(dòng)保存模式”。在自動(dòng)保存模式下,不需要每標(biāo)注一張就保存一次。選擇自動(dòng)保存后下一次打開(kāi)程序可能會(huì)跳出兩次選擇目錄的對(duì)話框都是選擇標(biāo)注文件存放目錄(選一樣即可,這里可能是源碼的問(wèn)題)。然后在左側(cè)菜單欄2處點(diǎn)擊“改變存放目錄”,選擇需要保存的目錄。標(biāo)注的流程為上圖所示,首先點(diǎn)擊左側(cè)菜單欄3處的“創(chuàng)建區(qū)塊”,然后點(diǎn)擊圖像中4處目標(biāo)的左上角并長(zhǎng)按鼠標(biāo)左鍵,拖動(dòng)鼠標(biāo)至目標(biāo)的左下角,完成標(biāo)注區(qū)域的框選,接著選擇5處被標(biāo)注對(duì)象的類別標(biāo)簽,直至完成對(duì)該圖像中所有對(duì)象的標(biāo)注,最后點(diǎn)擊左側(cè)菜單欄6處的“下一個(gè)圖像”。4.2深度學(xué)習(xí)網(wǎng)絡(luò)搭建數(shù)據(jù)集標(biāo)注和大部分的程序一樣,LabelImg也可以用快捷鍵加速標(biāo)注的過(guò)程,以下是常用的幾個(gè)快捷鍵。標(biāo)注完一張圖像后,會(huì)生成對(duì)應(yīng)的xml文件,xml文件中保存了訓(xùn)練當(dāng)前圖像所有對(duì)象的類別及其邊界框位置。如下所示為圖像對(duì)應(yīng)的xml文件<annotation>
#父目錄
<folder>detection</folder>
#圖像名稱
<filename>0.jpg</filename>
#圖像路徑
<path>C:/Users/HQ/Desktop/detectin/0.jpg</path>
<source>
<database>Unknown</database>
</source>4.2深度學(xué)習(xí)網(wǎng)絡(luò)搭建數(shù)據(jù)集標(biāo)注
#圖像尺寸 <size> #圖像寬度 <width>480</width> #圖像高度 <height>360</height> #圖像通道數(shù),通常輸入是RGB三通道 <depth>3</depth> </size> <segmented>0</segmented> #目標(biāo)檢測(cè)類別1
<object> #類別名稱 <name>cat</name> <pose>Unspecified</pose> <truncated>0</truncated> #困難樣本 <difficult>0</difficult> #邊界框位置 <bndbox> #邊界框左上角點(diǎn) <xmin>129</xmin> <ymin>18</ymin> #邊界框右下角點(diǎn) <xmax>312</xmax> <ymax>352</ymax> </bndbox> </object></annotation>4.2深度學(xué)習(xí)網(wǎng)絡(luò)搭建數(shù)據(jù)集標(biāo)注將上述標(biāo)簽信息畫(huà)在原始圖像上,結(jié)果如右圖所示:所有圖像標(biāo)注完成后,其目錄結(jié)構(gòu)如下所示,圖像(.jpg/.png)及其標(biāo)簽(.xml/.json)放在同一文件夾。|--detection#父目錄||--0.jpg#圖像0||--0.xml#圖像標(biāo)簽0||--1.jpg||--1.xml||--2.jpg||--2.xml||--3.jpg|`--3.xml4.2深度學(xué)習(xí)網(wǎng)絡(luò)搭建數(shù)據(jù)集標(biāo)注2.Sloth開(kāi)源標(biāo)注工具Sloth可以對(duì)圖像中的對(duì)象類別、矩形框、關(guān)鍵點(diǎn)、多邊形(用于圖像分割)進(jìn)行標(biāo)注,并生成json格式數(shù)據(jù)集,源碼位于GitHub-cvhciKIT/sloth:Slothisatoolforlabelingimageandvideodataforcomputervisionresearch.。Sloth安裝步驟如下:第一,假設(shè)已安裝conda,新建Sloth虛擬環(huán)境,Sloth環(huán)境使用Python=3.6版本,然后進(jìn)入Sloth環(huán)境;第二,安裝QyPt4,從網(wǎng)址/~gohlke/pytho
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 風(fēng)險(xiǎn)管理法規(guī)與合規(guī)培訓(xùn)
- 稅務(wù)政策變動(dòng)應(yīng)對(duì)措施計(jì)劃
- 新市場(chǎng)開(kāi)發(fā)的系統(tǒng)思考計(jì)劃
- 效率與效果的平衡管理總結(jié)計(jì)劃
- 酒店食品安全培訓(xùn)
- 醫(yī)用中心供氧設(shè)備相關(guān)行業(yè)投資方案范本
- 成本管理操控實(shí)務(wù)培訓(xùn)
- 商業(yè)專用設(shè)備:條碼設(shè)備相關(guān)項(xiàng)目投資計(jì)劃書(shū)
- 成本控制與效益分析培訓(xùn)
- 學(xué)校大班班級(jí)教學(xué)改革方案計(jì)劃
- 數(shù)據(jù)分析服務(wù)合同三篇
- 血透室安全隱患
- 期末試卷(試題)-2024-2025學(xué)年滬教版三年級(jí)上冊(cè)數(shù)學(xué)
- 電影敘事與美學(xué)智慧樹(shù)知到期末考試答案章節(jié)答案2024年南開(kāi)大學(xué)
- 元宇宙技術(shù)與應(yīng)用智慧樹(shù)知到答案章節(jié)測(cè)試2023年中國(guó)科學(xué)技術(shù)大學(xué)
- 鋼結(jié)構(gòu)基本原理試習(xí)題及答案
- 同分異構(gòu)現(xiàn)象和同分異構(gòu)體
- 公安局輔警人員登記表
- (完整word版)網(wǎng)絡(luò)優(yōu)化測(cè)試報(bào)告
- 《金字塔原理》
- 無(wú)機(jī)材料科學(xué)基礎(chǔ)教程(第二版)課后答案
評(píng)論
0/150
提交評(píng)論