我的電腦是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