Theano是Python的一個(gè)深度學(xué)習(xí)的第三方庫(kù),今天有同學(xué)問我怎樣配置。OK,既然有需求,我就花了半天時(shí)間研究它,并完成了windows下32位和64位系統(tǒng)下的配置。這里在配置的過程中我走了一些彎路,在這篇文章中我會(huì)將我在配置過程中遇到的問題、出現(xiàn)的錯(cuò)誤、解決的方法都完整的列出來,供大家參考,并列出直接簡(jiǎn)潔的配置方法。 一、基本情況 Theano算是Python中配置相對(duì)復(fù)雜的庫(kù)了,這里先對(duì)目前的配置需求進(jìn)行一個(gè)基本說明。 1、Python配置第三方庫(kù)的基本方法 Python配置第三方庫(kù)主要有以下幾種方法: ?。?)Pip自動(dòng)安裝 Pip是Python安裝第三方庫(kù)的首選方法,簡(jiǎn)單快捷,系統(tǒng)自動(dòng)分析安裝需求并從Pipy下載相應(yīng)的庫(kù)文件。安裝Python編譯器后會(huì)默認(rèn)安裝Pip工具,pip工具安裝第三方庫(kù)非常簡(jiǎn)單,只需在命令提示符窗口中輸入“pip install 庫(kù)名稱”即可。 在使用Pip工具時(shí)首先需要配置相關(guān)環(huán)境變量。假設(shè)我們將Python裝在C盤根目錄下:
此時(shí)需要將該目錄以及目錄下的Scripts文件夾的路徑添加到環(huán)境變量中:
接下來我們打開命令提示符窗口,首先需要對(duì)Pip版本進(jìn)行更行,更新到最新版本方可使用,更新命令為“pip install --upgrade pip”:
更新完成后,即可使用pip工具進(jìn)行第三方庫(kù)的安裝。這里有一個(gè)問題需要注意,就是Python必須安裝在C盤下才能完成版本更新,之前安裝在D盤時(shí),在版本更新的過程中會(huì)一直顯示文件移動(dòng)方面的錯(cuò)誤,這個(gè)BUG目前還沒有解決,好在Python本身并不大,且相對(duì)簡(jiǎn)潔,就暫且裝在C盤了。 接下來就可以使用pip進(jìn)行自動(dòng)安裝,非常簡(jiǎn)潔,直接“pip install 庫(kù)名稱”即可:
這里我們已經(jīng)安裝好了Theano,因此Pip會(huì)給出提示信息,否則會(huì)自動(dòng)安裝。 ?。?)Pip手動(dòng)安裝 所謂Pip手動(dòng)安裝,是指我們手動(dòng)下載第三方庫(kù)的安裝文件,然后使用pip安裝。這里提供第三庫(kù)安裝文件的下載地址:第三方庫(kù),下載時(shí)注意版本匹配即可。 注意這里的安裝文件都是whl格式的,而非exe或者msi格式,也就意味著下載得到的安裝文件只能用pip工具安裝,直接雙擊是行不通的。 假設(shè)這里我們用pip手動(dòng)安裝scipy模塊。在剛才的地址中下載scipy的安裝文件,這里選擇win32、CP34(Python3.4)版本的安裝文件:
下載完成后,為了方便,將文件放在C盤根目錄下,然后在命令提示符界面進(jìn)入C盤文件夾下,使用pip命令進(jìn)行安裝:
這里由于之前已經(jīng)安裝過numpy模塊,pip會(huì)給出提示。若之前未安裝相關(guān)模塊,pip會(huì)在此處進(jìn)行自動(dòng)安裝。不過這里需要強(qiáng)調(diào)的一點(diǎn)是使用pip進(jìn)行手動(dòng)安裝時(shí)一定要先進(jìn)入安裝文件所在的目錄,否則pip將無法找到安裝源。 ?。?)使用exe文件安裝 對(duì)于一些常用的第三方庫(kù),在如下地址可能會(huì)找到相應(yīng)的exe版本的安裝文件:exe安裝文件地址,如果能在網(wǎng)站上搜索到相關(guān)的exe版本安裝文件,下載下來直接雙擊安裝皆即可,當(dāng)然同樣需要注意版本匹配的問題,而且這里貌似沒有64位版本的安裝文件。 2、安裝環(huán)境需求 在安裝Theano庫(kù)之前,需要以下擴(kuò)展庫(kù)的支持:numpy(包含BLAS,ATLAS等)、scipy、libpython;需要g++支持(通過mingw安裝),這里g++需要區(qū)分32位和64位。我的電腦是win7,64位,不過我的Python是32位的(64位windows是可以安裝32位Python的)。這里由于我們的Python是32位的,因此以下安裝的所有模塊都是32位版本。 二、開始安裝 1、安裝第三方庫(kù) 首先安裝numpy。經(jīng)過測(cè)試以上三種方法都可以安裝numpy模塊,但這里必須采用第二種,也就是手動(dòng)下載numpy模塊來用pip安裝。原因是其他兩種方法安裝numpy模塊后,還需要手動(dòng)安裝BLAS、ATLAS等等,而且這兩個(gè)模塊都是需要進(jìn)行編譯才能安裝的,非常麻煩,而下載得到的numpy貌似封裝了這幾個(gè)繁瑣的模塊,因此能節(jié)省很多功夫。 安裝完成之后繼續(xù)安裝scipy模塊,這里我們同樣推薦使用第二種方法手動(dòng)安裝,方便快捷,不受網(wǎng)速制約。使用pip自動(dòng)安裝時(shí)經(jīng)常會(huì)下載失敗什么的。 然后在安裝libpython模塊,同上。 以上這三個(gè)模塊的安裝過程都是完全相同的,這里稍作總結(jié):在Python安裝第三方模塊時(shí)推薦手動(dòng)安裝,方便快捷。使用pip自動(dòng)安裝時(shí)會(huì)受防火墻、網(wǎng)速等各種各樣的因素限制,安裝的成功率低。當(dāng)然如果不能找到對(duì)應(yīng)的whl安裝文件(例如nose模塊),就只能使用pip進(jìn)行自動(dòng)在線安裝了。這里不推薦去sourceforge去找exe版,一是exe版的安裝文件不全面;二是exe版安裝的庫(kù)與pip安裝的庫(kù)并不完全相同,時(shí)間長(zhǎng)了可能會(huì)引發(fā)未知的兼容性問題;三是exe版安裝文件沒有64位的。
安裝完以上擴(kuò)展庫(kù)后,可以安裝theano庫(kù)了。這里必須使用pip自動(dòng)安裝了,因?yàn)檎也坏綄?duì)應(yīng)的whl版本和exe版本,好在pip很給力,自動(dòng)安裝成功:
這里在自動(dòng)安裝之前Pip會(huì)先檢查numpy和scipy的安裝情況,如果沒有正確安裝的話pip會(huì)先進(jìn)行numpy和scipy的安裝(當(dāng)然我們不希望它這樣做),然后安裝theano,大約五分鐘左右,下載完成,安裝成功。 2、安裝g++ 首先,這里提供一個(gè)g++的下載地址:g++ 安裝完theano后,我們先測(cè)試一下:
很明顯,Python提示我們沒有g(shù)++,接下來我們安裝一個(gè)。 那么問題來了,我是64位windows,32位Python,那我們應(yīng)該裝64位的g++還是32位的g++呢?經(jīng)過嘗試,需要裝64位的g++。想想也有道理,因?yàn)間++和Python并不是綁定的。 這里給出64位MinGw的下載地址:64位MinGw。下載完成后,雙擊進(jìn)行安裝:
單擊next,在配置界面選擇如下,單擊next:
由于是編譯器,默認(rèn)安裝在C盤,單擊next:
這個(gè)過程會(huì)相對(duì)比較漫長(zhǎng),大約十分鐘左右:
單擊next,安裝完成。接下來將路徑"C:\Program Files (x86)\mingw-w64\i686-5.2.0-posix-dwarf-rt_v4-rev1\mingw32\bin"添加到環(huán)境變量中(不同計(jì)算機(jī)的路徑可能稍有不同),此時(shí)再次測(cè)試theano,安裝成功:
僅僅是import語句的話大家可能還不太確信theano庫(kù)安裝的正確性,接下來我們運(yùn)行其中的一個(gè)小的測(cè)試函數(shù)。不過這里需要先安裝nose模塊,推薦使用pip進(jìn)行自動(dòng)安裝:
網(wǎng)速流暢的話應(yīng)該幾秒鐘即可安裝完成,再次測(cè)試theano:
說明theano安裝順利完成,這里給出的警告是提示我們尚未進(jìn)行GPU的配置,這點(diǎn)以后在說,因?yàn)閠heano是支持CPU的。 四、32位系統(tǒng)下的配置 剛才說的是在64位系統(tǒng)下配置32位python,接下來說說如何在32位系統(tǒng)下配置32位python的theano庫(kù)。首先安裝numpy、scipy、libpython、theano這四個(gè)庫(kù),這些庫(kù)的安裝和上面說的安裝方法完全一樣(因?yàn)槎际?2位python)。唯一不同的就是g++的安裝,顯然32位系統(tǒng)需要安裝32位的g++:
雙擊進(jìn)入安裝界面,單擊next,選擇下載最新版本選項(xiàng):
單擊next,接受協(xié)議,next,指定安裝路徑(這里同樣為C盤):
單擊next,選擇C和C++編譯器:
單擊next,單擊install,開始安裝,注意這里的安裝是在dos界面下自動(dòng)完成的:
安裝完成后,將安裝目錄下的bin文件夾的路徑添加到環(huán)境變量中,32位的g++安裝完成。這里有兩個(gè)注意問題: ?。?)之前按照百度上提供的方法,通過下載器來安裝32位g++,一直提示失敗,原因不詳。 (2)在環(huán)境變量中32位g++和64位g++不能共存,否則會(huì)引發(fā)未知錯(cuò)誤。這也告訴我們?cè)谂渲铆h(huán)境變量時(shí)一定要注意及時(shí)刪除失效路徑,一是保證系統(tǒng)的安全,從而保持環(huán)境變量的整潔性。
|
|