MXNet深度學習實戰》">《MXNet深度學習實戰》
1190
2025-03-31
CHAPTER 2
第2章
搭建開發環境
MXNet官方提供了多種安裝方式,安裝過程非常簡單,詳細內容請參考官方安裝鏈接:https://mxnet.incubator.apache.org/install/index.html,本章中關于MXNet的安裝主要參考這個官方鏈接。該鏈接中提供了多種安裝MXNet的方式,如圖2-1所示,這里一共顯示了5行安裝內容,每行又包含多個選項。第一行表示MXNet的版本,點擊下拉選項可以選擇不同版本的MXNet;第二行表示操作系統,比如最常用的Linux、MacOS和Windows等;第三行表示API,最常用的是Python語言的接口;第四行表示訓練環境,簡單來講就是,是否需要GPU;第五行表示不同的安裝方式,比如通過pip工具進行安裝、通過Docker進行安裝等。
圖2-1 MXNet安裝方式
當你選擇好了圖2-1中的這些選項,安裝界面就會按照你的選項給出詳細的安裝步驟供你參考。本章將以其中最常用的兩種安裝方式為例介紹如何安裝MXNet,一種是采用Docker安裝,另一種是采用pip在本地安裝。
Docker是一個環境隔離工具,目前在工業界應用非常廣泛,采用這種方式其實并不需要你安裝MXNet,而只需先安裝Docker,然后通過Docker這個工具從鏡像(image)庫中拉取MXNet鏡像就可以直接使用MXNet了。為什么Docker會得到廣泛應用呢?主要原因在于一方面你可以在一個鏡像環境中運行你的代碼,這個環境與你的電腦環境是隔離的,這樣你在鏡像中的安裝和配置操作都不會影響到你的電腦環境,同時還能保證在你電腦上能夠正常運行的代碼移植到他人電腦上一樣能正常運行,因為只要提供相同的鏡像就能保證代碼的運行環境相同。另一方面是方便,你想要什么樣的鏡像都可以從網上拉取,比如你想用CUDA 9.0、MXNet 1.3.1或者CUDA 8.0、MXNet 1.3.1等,那么直接從鏡像庫中拉取對應版本的鏡像即可,這樣你就不需要每次都在本地安裝,可謂是一勞永逸。目前Docker的發展比較成熟,官方鏡像庫中提供了非常豐富的選擇,大部分鏡像中還安裝好了CUDA、cuDNN、OpenCV等常用工具或庫,因此基本上是拉取后就能直接使用,非常方便。當然,對于新手而言,學習Docker的安裝和使用還需要一些時間,因此假如你想要快速上手深度學習框架,那么可以考慮第二種安裝方式,也就是通過pip命令進行安裝。
本地pip安裝就是平時我們最熟悉的直接在電腦上安裝MXNet,只要配置好相關的環境,比如顯卡驅動、CUDA、cuDNN和其他所需的工具,安裝MXNet就只是一行命令的事了。這種安裝方式比較直接易懂,但是容易出現的問題是后續的環境依賴不好維護,雖然安裝MXNet不需要配置太多的環境依賴,但是隨著相關庫或者軟件的不斷使用和升級,環境依賴會變得越來越復雜,后期很容易出現這樣的問題:在你的電腦上能正常運行的代碼移植到他人的電腦上無法正常運行,或者要經過比較復雜費時的環境配置后才能正常運行。
因此如果你有一定的開發能力及經驗,項目中需要進行環境隔離,尤其是有代碼移植的需要時,那么推薦你安裝Docker,然后在Docker鏡像中運行你的MXNet項目。如果你剛剛入門,暫時不需要做環境隔離,并且相信后期不會因為環境依賴問題而搞得焦頭爛額,那么采用本地pip安裝會更加直觀。
2.1 環境配置
目前,使用GPU基本上是應用深度學習框架時的默認配置了,畢竟現在僅僅用CPU來訓練深度學習算法非常慢,而且進行這樣操作的人也非常少,因此我在本章中關于開發環境的搭建都是基于GPU進行介紹,需要注意的是,支持GPU的MXNet既可以在GPU上運行,也可以在CPU上運行,但如果你安裝的是僅支持CPU的MXNet,那么就只能在CPU上運行了。相比之下,安裝支持GPU的深度學習框架要比安裝僅支持CPU的深度學習框架更復雜一些,因為要額外安裝CUDA、cuDNN等,所以如果你想安裝僅支持CPU的MXNet,那么基本上輸入幾個命令就可以了。
深度學習框架所需要的開發環境主要包括操作系統、顯卡驅動、CUDA和cuDNN,這些基本上是你在使用MXNet或者其他深度學習框架時都會涉及的,其中,顯卡驅動、CUDA和cuDNN是你安裝支持GPU的MXNet時需要準備的。操作系統是最基本的開發環境,你的所有操作都是基于該系統進行的。顯卡驅動是使用GPU硬件時要安裝的,而且需要與你的GPU型號相匹配。CUDA是英偉達(NVIDIA)官方推出的統一計算架構,是使用支持GPU的深度學習框架時必不可少的內容。cuDNN是英偉達(NVIDIA)推出的加速庫,一般在你安裝深度學習框架之前都會默認安裝。另外,在集成開發環境方面(IDE)推薦使用PyCharm,項目開發和代碼調試都十分方便,接下來我們依次介紹各項環境配置的內容。
在操作系統方面,我推薦使用Linux,本書采用的是目前使用最廣泛的Linux版本:Ubuntu。目前Ubuntu主要有18.04 LTS和16.04 LTS兩個主流版本,考慮到Ubuntu16.04 LTS比較穩定且應用廣泛,因此本書的所有代碼均基于Ubuntu16.04 LTS進行開發。如果你想查看自己機器的系統信息,可以在命令行通過以下命令來查看。符號“$”表示Ubuntu系統的終端操作界面的命令行前綴,在本書中符號“$”表示一條命令的開始,這一點與大部分系統的定義一致。另外,如果沒有特殊指明的話,不以符號“$”開頭的內容均表示輸入命令后的運行結果。查看系統信息的代碼如下:
本書中的命令行命令、命令行輸出、Python代碼和Python代碼輸出都會添加灰色底紋加以區分。
在顯卡驅動方面,如果你的GPU機器還沒有安裝顯卡驅動,那么你將無法使用GPU訓練模型。假設你已經安裝好了顯卡驅動,那么可以使用下面這個命令查看你的顯卡信息:
$ nvidia-smi
如果運行該命令沒有報錯且顯示了如圖2-2所示的關于顯卡的具體信息,那就說明你的機器上已經安裝了可用的顯卡驅動。
圖2-2 顯卡信息
圖2-2中除了顯示顯卡型號信息之外,還有每塊GPU的顯存上限、當前顯存的使用情況和利用率等信息,另外還可以使用下面的命令動態查看顯存的占用情況,默認每2秒刷新一次:
$ watch nvidia-smi
顯卡驅動的安裝并不復雜,在安裝驅動前,首先要從網上下載指定型號和版本的驅動文件,英偉達(NVIDIA)官方提供了顯卡驅動的-:https://www.geforce.com/drivers。用戶可以根據自己機器上GPU的型號選擇對應的顯卡驅動和版本進行安裝。以常用的GeForce GTX 1080 Ti顯卡為例(本書采用的顯卡型號),首先在-中選擇對應的顯卡類型,如圖2-3所示,這里選擇GeForce GTX 1080 Ti,然后點擊下方的START SEARCH就可以得到各種版本的顯卡驅動,比如圖2-3中顯示了兩種版本的顯卡驅動,一個版本是415.13(Version 415.13),另一個版本是410.78(Version 410.78)。點擊你需要的顯卡驅動就會進入下載界面,然后點擊下載就可以得到對應版本的驅動,最后安裝驅動文件即可。需要說明的是,顯卡驅動基本上都是向下兼容的,因為我們選用CUDA 8.0版本,所以目前大部分顯卡驅動都是支持的,驅動版本不需要完全一樣。在本書中,我采用的顯卡驅動版本是384.130,前面提到的查看顯卡信息的命令就可以看到顯卡驅動的版本,具體而言是圖2-2頂部的Driver Version內容。
CUDA(Compute Unified Device Architecture)是英偉達(NVIDIA)官方推出的統一計算架構,支持GPU的MXNet的許多底層計算都會用到CUDA加速庫。目前常用的CUDA版本是CUDA 8.0和CUDA 9.0,鑒于目前CUDA 8.0應用廣泛且比較穩定,因此本書采用CUDA 8.0。關于CUDA的安裝,可以參考英偉達的CUDA官方文檔。
圖2-3 顯卡驅動下載界面
cuDNN(NVIDIA CUDA?Deep Neural Network)是英偉達推出的加速庫,一般在你安裝MXNet之前默認安裝,因為MXNet的很多底層計算都是基于cuDNN庫實現的,本書采用的cuDNN版本是cuDNN 7.0.3。關于cuDNN的安裝,可以參考英偉達的cuDNN官方鏈接。
雖然Python代碼可以通過各種Python解釋器運行或者進行交互式編寫(比如,我們在命令行通過運行Python或者Python3命令進入的Python環境,其實就是啟動了CPython解釋器,這是目前使用非常廣泛的Python解釋器),但是我們知道深度學習算法的項目代碼一般都比較復雜,對于復雜的工程代碼而言,如果僅依靠Python解釋器來編寫和調試代碼就比較麻煩了,因此需要一個合適的開發環境(IDE)方便用戶編寫、調試和運行深度學習的Python代碼,如果讀者目前已經有用得比較順手的IDE,那么可以不用更換,如果沒有的話,可以嘗試使用PyCharm。PyCharm是一個主要用于Python語言開發的集成開發環境,用戶可以通過PyCharm編寫、調試、運行Python代碼,非常方便。
讀者可以從PyCharm的官方網站上下載并安裝指定系統環境和版本的PyCharm,參考鏈接如下:https://www.jetbrains.com/pycharm/download/#section=linux,該鏈接中也包含了相關的教學,對于新手而言,PyCharm入門的門檻較低。目前PyCharm主要有專業版(professional)和社區版(community)兩個版本可選,如圖2-4所示。專業版PyCharm需要購買才能長期使用。社區版PyCharm可以免費使用,對于普通的Python開發而言基本上已經足夠了,不過目前只有專業版PyCharm支持Docker。
圖2-4 PyCharm下載界面
本書的大部分代碼采用的編程語言是Python,目前Python也是各大深度學習框架中文檔最豐富的接口語言。雖然當前廣泛使用的Python版本是Python2.x,但是因為Python2.x在2020年將不再維護,所以本書采用的Python版本是Python3.x,具體而言是Python3.5.2。
深度學習 Ubuntu Python
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。