Theano 0.63有个Windows的安装包,比较好用。但是0.7版本就没有了。Deeplearning网站的Theano安装方法看起来很麻烦。参考了网上的一些安装方法,实验了一下在Windows7 (64)位上安装。下面这个安装步骤相对简单一点,特记录一下,以备后用。
系统环境:Windows 7 (64位)
Anaconda包含了Theano所需的各种Python库,使用Anaconda来安装Python环境最方便。
到Anoconda网站下载Anaconda-2.2.0-Windows-x86_64.exe
,以前的Anaconda版本带MinGW环境,2.2.0版本的Anaconda好像不带MinGW了。
安装的时候勾选把Anaconda加到环境变量中。
安装完检查一下,打开cmd
命令行:
C:\Windows\system32>python --version
Python 2.7.9 :: Anaconda 2.2.0 (64-bit)
MinGW含有gcc,g++,ld等常用编译器。直接到MinGW网站下载一个Intaller(一定要64位的):mingw-w64-install.exe
。
运行安装程序,在Architecture的地方选择 x86_64,安装目录最好是C:\mingw-w64\x86_64
。默认的安装目录有空格,最好自己改一下。
MinGW安装不会将MinGW的路径添加到环境变量PATH
中,手动将C:\mingw64\bin;
添加到PATH环境变量中。
安装完检查一下,打开cmd
命令行:
where gcc
where ld
应该都能看到正确的结果。
打开cmd
命令行:
pip install theano
Theano就安装到Python环境中,这里就是Anaconda中。
在home下新建一个.theanorc.txt文件,例如home路径是C:\Users\myname。
配置文件内容:
[global]
openmp=False
[blas]
ldflags=
[gcc]
cxxflags = -IC:\mingw-w64\x86_64\mingw64\include
cxxflags = -LC:\Anaconda
至此安装完毕。
打开cmd
命令行:
python
>>>import theano
>>>
import的时候稍等几秒(Theano要进行编译),应该不会有错误。
按照Deeplearning给出的测试例子,编辑一个test.py
文件:
import numpy as np
import time
import theano
A = np.random.rand(1000,10000).astype(theano.config.floatX)
B = np.random.rand(10000,1000).astype(theano.config.floatX)
np_start = time.time()
AB = A.dot(B)
np_end = time.time()
X,Y = theano.tensor.matrices('XY')
mf = theano.function([X,Y],X.dot(Y))
t_start = time.time()
tAB = mf(A,B)
t_end = time.time()
print "NP time: %f[s], theano time: %f[s] (times should be close when run on CPU!)" %(
np_end-np_start, t_end-t_start)
print "Result difference: %f" % (np.abs(AB-tAB).max(), )
执行这个文件,应该能得到正确结果。
如果不考虑GPU,BLAS等问题,现在就大功告成了!
由于numpy是依赖BLAS的,如果BLAS没有安装成功,虽然numpy亦可以安装,但是无法使用BLAS的加速。验证numpy是否成功依赖BLAS编译:
python
>>> import numpy
>>> id(numpy.dot) == id(numpy.core.multiarray.dot)
False
结果为False表示成功使用BLAS加速,如果是Ture则表示用的是python的实现,没有加速。