Theano安裝教程

我的電腦是win7 64位,AMD的CPU

以下是詳細的安裝步驟

1、安裝Anaconda

Anaconda公認的方便,裏面有安裝theano需要的所有包。 
建議選擇老版本的anaconda,新版的anaconda2也能裝,但是裏面沒有MinGW,需要自己用命令下載,命令如下:conda install mingw libpython。但是學校的校園網實在是難以恭維,在cmd下下載東西國內的都很慢,況且國外的。 
Anaconda版本可以到這裏自己選擇,我用的是anaconda-2.1.0-windows-x86_64.exe,地址: 
https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ 
我選擇這個版本的原因是這個版本預先內置安裝了MinGW,這樣我們就不用再去自己安裝mingw了,自己安裝會出現很多問題,之前看有些博客說自己下載個mingw然後放到環境變量裏面,這個官網也說了,行是可行的,但是不穩定,我也試了,會莫名其妙報錯。當然也可以下載anaconda2新的版本,我試過最近的anaconda2,裏面是沒有mingw的,要自己下載,用 
conda install mingw libpython 
但是校園網慢,很難下載下來。我也成功下載下來過,也成功裝上了,確實是可以的,但是中間也報過莫名其妙的錯誤。所以網快的小夥伴可以下個新的anaconda2試試,反正不行刪了再來嘛。 
繼續,由於我安裝的這個自帶了MinGW,所以我就可以直接跳過這步,省去了好多出現錯誤的可能性。 
到現在爲止,你已經下載好了anaconda(任何版本),在你的anaconda安裝目錄下,例如C:\Anaconda文件下有一個MinGW文件夾了,那麼可以繼續了,mingw自己下載安裝在其他地方的,建議刪了重來。

2、theano安裝

要用到命令了,打開cmd,輸入 
pip install theano 
我們校內網實在是慢,根本下不下來,只有大晚上才能下載。當然最後還是讓我成功下載下來了。推薦一個conda和pip加速的方法: 
使用國內的源,因爲我們在cmd下下載慢,很大一部分原因是下載源都在國外,所以被牆了,很慢。可以參考下面的地址更改pip和conda 的源。(這步可有可無,只爲加速下載)。 
http://blog.csdn.net/sxf1061926959

回到前面,當命令執行完成後,會顯示 successfully installed theano-XXXX,下圖是我從網上截的,我自己現在都不敢去動,畢竟裝了那麼久,哭。我的和下圖的還有點不一樣,我運行後出現的第一句是 download/unpacking theano ,運行完成後是 successfully installed theano six 
這裏寫圖片描述 
這裏如果pip install theano下載不下來,可以試試這樣: 
去官網https://github.com/Theano/Theano把theano下載下來,取出theano-master裏面的子文件夾theano,看清楚了是子文件夾,如下圖,這裏寫圖片描述只要劃紅線的那個文件夾。 
然後放到 anaconda\Lib\site-packages\ 目錄下 
3、環境變量配置 
這步很重要,我之前因爲安裝網上的各種版本都試了一遍,所以環境變量比較亂,這也可能是我很多安裝失敗的原因。這裏我的建議是,如果你安裝報錯,問題找不到後要刪了重裝,那麼一定要清理乾淨環境變量,網上有說要清理註冊表什麼的,也許人家是對的,但是我找了半天也沒找到那個註冊表,而且我也沒刪註冊表,表示照樣讓我裝上了? 
好了,打開環境變量,我覺得既然你是一個要裝theano的人,那麼環境變量的位置肯定已經爛熟於心了。如下圖: 
這裏寫圖片描述

下面所以的環境變量都配置在系統環境變量裏面。 
1、在path後加: 
D:\MySoft\Develop\Anaconda\MinGW\bin;D:\MySoft\Develop\Anaconda\MinGW\x86_64-mingw32\lib
這裏的 D:\MySoft\Develop\Anaconda 是我自己的 anaconda 路徑,根據自己的安裝目錄,改成自己的。 
2、新建環境變量PYTHONPATH,變量值爲D:\MySoft\Develop\Anaconda\Lib\site-packages\theano; 
注意自己的路徑,注意分號,別打錯字,建議直接去這 
複製,省的出錯了,都不知道哪裏錯了。 
3、打開cmd,看看自己的home目錄, 
這裏寫圖片描述 
進入到這個目錄,就是C盤下的用戶下的xxx目錄下。 
創建一個 .theanorc.txt 注意注意前面的那個點號,一定要有。 
內容如下:

[blas]
ldflags=

[gcc]
cxxflags=-ID:\MySoft\Develop\Anaconda\MinGW\x86_64-w64-mingw32\include
  • 1
  • 2
  • 3
  • 4
  • 5

最後一行我看也有人用 
cxxflags=-ID:\MySoft\Develop\Anaconda\MinGW\include 

我試了下好像都行。 
我配置了GPU,所以我的是全部是這樣的,你們按上面這個就可以了。

[global] 
device = gpu
floatX = float32 

[nvcc]
flags=-LD:\MySoft\Develop\Anaconda\libs
compiler_bindir=C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin
fastmath = True

[blas]
ldflags=

[gcc]
cxxflags=-ID:\MySoft\Develop\Anaconda\MinGW\x86_64-w64-mingw32\include
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

正常情況下,到這裏應該就好了,用 cpu的theano 就弄好了。 
打開cmd, 
輸入:python 
再輸入 
import theano 
theano.test()
 
沒有報錯就是OK了,會有一個 warning:PyCUDA import failed ,這個是因爲沒有GPU。當然如果報錯了,也不要怕,我之前在臺式機上的就有錯,什麼nose什麼的,具體忘了,但是具體使用的時候居然還能用。所以可以再試試下面的測試demo或者先重啓下電腦,我之前有一次報錯,重啓了一下就可以用了。

1.import numpy as np  
2.import time  
3.import theano  
4.A = np.random.rand(1000,10000).astype(theano.config.floatX)  
5.B = np.random.rand(10000,1000).astype(theano.config.floatX)  
6.np_start = time.time()  
7.AB = A.dot(B)  
8.np_end = time.time()  
9.X,Y = theano.tensor.matrices('XY')  
10.mf = theano.function([X,Y],X.dot(Y))  
11.t_start = time.time()  
12.tAB = mf(A,B)  
13.t_end = time.time()  
14.print "NP time: %f[s], theano time: %f[s] (times should be close when run on CPU!)" %(  
15.                                           np_end-np_start, t_end-t_start)  
16.print "Result difference: %f" % (np.abs(AB-tAB).max(), )  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

如果這個demo跑完還有錯的話, 
第一:按照錯誤的提示去網上找答案; 
第二:刪了重裝,不要怕,刪了沒事的,先去卸載程序哪裏把anaconda下的python卸載了,或者直接把anaconda文件夾刪了。 
我之前遇到過一個錯誤。如下: 
WARNING (theano.gof.compilelock): Overriding existing lock by dead process ‘5216’ (I am process ‘5488’) 
網上的答案是這樣的:調試之後發現是theano庫中function_module.py代碼出現了問題,於是用自己下載的theano-mater中的theano子文件夾(【Theano-master下載】)替換掉theano_installer_latest.msi自動安裝的theano(Anaconda\Lib\site-packages\theano) 
有遇到這個的可以先試試這個方法,但是我自己試了下,發現沒有用。最後發現是環境變量裏有重複的mingw。刪掉沒有用的那個就可以了 
後來又報錯xception: Compilation failed (return status=1):。。。。。。。。。。。 
發現是.theanorc.txt文件因爲看了好多版本的這個,寫串了。還有什麼DLL load failed,好多錯誤。

總結一下:

1、一定要有MinGW,而且一定不能是單獨安裝的,而且環境變量裏一定只能有一個。 
可以是anaconda自帶的MinGW,也可以是通過命令 conda mingw libpython 下載的。 
2、安裝完theano報錯的,不要急,先看看環境變量對不對,有沒有寫錯,有沒有多個mingw,環境變量有沒有漏寫,看看.theanorc.txt裏面寫的對不對,路徑對不對,文件名前面的那個點.有沒有寫。如果以上都對的,那麼去github上clone一個theano(https://github.com/Theano/Theano),將裏面的子文件夾theano放到anaconda\Lib\site-packages\下,再看看對不對。 
如果還是不行,那麼刪了換個版本的anaconda再裝一次吧。 
當前面全部弄好後,cpu的theano已經可以用了,如果要裝GPU,看我的參考文獻,寫的還可以。

參考文獻:

http://blog.csdn.net/hjimce/article/details/46654229 
http://blog.sina.com.cn/s/blog_990865340101hvuq.html


發佈了28 篇原創文章 · 獲贊 41 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章