安裝環境:wondows 64bit
Teano安裝測試
1. Anaconda 安裝
Anaconda是一個科學計算環境,自帶的包管理器conda很強大。之所以選擇它是因為它內置了python,以及numpy、scipy兩個必要庫和一些其他庫,比起自己安裝要省事。
首先下載Anaconda-2.1.0-Windows-x86_64.exe 安裝選擇默認配置即可,下砸地址。安裝成功后效果如下:
這里有Anaconda管理器(Anaconda Command Prompt),輸入conda list來查看已經安裝的庫。我們可以看到Anaconda已經安裝了numpy, nose, pip, python, scipy, mingw等等
PS:
2.卸載之前版本
因為Anaconda里邊包含了python,所以需要在windows環境變量中找到Python的環境變量,刪除它。或者直接將之前單獨安裝的python等統統卸載掉。這一步可以在安裝Anaconda之前進行。
3. 安裝theano
有如下兩種安裝方法:
1)打開CMD或Anaconda命令窗口,輸入 pip install theano。 回車后就是賞心悅目的下載進度條,這個很小,所以安裝的比較快。
2)手動下載theano的zip文件
下載地址:https://github.com/Theano/Theano ,解壓到XXX/Anaconda/Lib/site-packages/theano(文件里面有個theano的文件夾,拿出來放在E:/Anaconda/Lib/site-packages里面)目錄下。
添加環境變量: path: XXX/Anaconda/MinGW/bin;E:/Anaconda/MinGW/x86_64-w64-mingw32/lib;
(32bit E:/Anaconda/MinGW/i686-w64-mingw32/lib;)
新建環境變量: PYTHONPATH: E:/Anaconda/Lib/site-packages/theano;
PS:有些Anaconda版本底下沒有MinGW包,這時可以:CMD輸入 conda install mingw libpython, MinGW會自動裝到Anaconda下。
4. 測試Theano
在cmd中,輸入python 進入到python環境下(PS:此時調用的應該是Anaconda自帶的Python,check一下輸出路徑),然后先輸入import theano回車,需要等一段時間,不輸出error則說明安裝成功。
GPU加速配置
對於用GPU的人(要安裝相應的CUDA版本,比如說我用的64位的python環境(Anaconda 64位),CUDA的版本也是64位的)
CUDA的 配置可參考 http://blog.csdn.net/yeyang911/article/details/17450963
1. 配置 .theanorc.txt文件
[global]
openmp=False
device = gpu
floatX = float32
allow_input_downcast=True
[blas]
ldflags=
[gcc]
cxxflags=-IE:\Anaconda\MinGW
[nvcc]
flags = -LE:\Anaconda\libs #此處是Anaconda的路徑
compiler_bindir = E:\VS2010\VC\bin #此處一定要和你安裝的VS的路徑保持一致,如果是默認安裝的,應該是C:\Program Files(x86)\Microsoft Visual Studio 10.0\VC\bin
fastmath = True
flags=-arch=sm_30 #我的加入這句話會報錯,去掉就好了
2. 測試GPU加速
from theano import function, config, shared, sandbox import theano.tensor as T import numpy import time vlen = 10 * 30 * 768 # 10 x #cores x # threads per core iters = 1000 rng = numpy.random.RandomState(22) x = shared(numpy.asarray(rng.rand(vlen), config.floatX)) f = function([], T.exp(x)) print (f.maker.fgraph.toposort()) t0 = time.time() for i in range(iters): r = f() t1 = time.time() print ('Looping %d times took' % iters, t1 - t0, 'seconds') print ('Result is', r) if numpy.any([isinstance(x.op, T.Elemwise) for x in f.maker.fgraph.toposort()]): print ('Used the cpu') else: print ('Used the gpu')
參考:http://blog.csdn.net/niuwei22007/article/details/47684673
http://blog.sina.com.cn/s/blog_990865340101hvuq.html