WinXP 32bit下安装theano和Keras
在自己的老爷机上折腾了好几天终于装上了theano和keras,接下来打算花精力学习keras,因为自己在安装上碰到很多问题,为了给和我一样想要学习keras的读者一点点帮助,同时也避免自己以后需要,先记下为好。
- **注:网上可以找到很多win7以上系统的theano安装方法,方法都是大同小异的,我在另一台电脑(win7)上试验可行,所以如果你是win7以上系统的可以直接百度(或者本方法也可),方法很多。另外,由于本人的老爷机是A卡,所以这里并不实现GPU加速。
需要的软件:
- Anaconda(集成大部分安装所需要的Python包) https://www.continuum.io/downloads/
- TDM-GCC(为winXP提供g++编译器)http://tdm-gcc.tdragon.net/download
1.安装Anaconda和TDM-GCC
下载合适的Anaconda和TDM-GCC版本安装。安装TDM-GCC时可以勾选将安装路径添加path选项,便于测试g++环境是否安装成功,可以装在任意盘。安装完TDM-GCC后,打开winXP的命令提示符,输入cmd,输入g++ -v就可以看到gcc的版本信息,然后新建Hello.cpp输入下面的代码:
#include "iostream"
using namespace std;
int main()
{
cout<<"Hello,World!/n";
return 0;
}
...
cd到Hello.cpp保存的位置,输入g++ Hello.cpp,稍等一小会后输入“a”
后出现Hello world!表明配置成功。
2.安装libpython、theano和keras
打开Anaconda Prompt,分别输入:
1. 安装libPython:输入conda install libpython;注意不要加上mingw
2. 安装theano:输入pip install theano;
3. 从github下载最新theano-master下的theano子文件夹,将这个文件夹覆盖anaconda安装路径\Lib\site-packages\theano这个文件。(重要,我开始没有覆盖,import theano时报错,找不到g++);
4. 安装keras:输入pip install keras;
3.配置环境
安装Anaconda时如果勾选了“添加到path路径”就不用为Anaconda安装路径添加到环境变量,否则将Anaconda安装路径;Anaconda安装路径\Scripts;Anaconda安装路径\Library\bin添加到path;新建一个环境变量PYTHONPATH,输入Anaconda安装路径\Lib\site-packages\theano。接下来是重点,为theano指明gcc编译器的。在在home文件夹(命令提示符“cmd”显示的路径)下新建一个文本文档,取名为.theanorc.txt,并在里面输入内容:
[global]
openmp=False
[blas]
ldflags=
[gcc]
cxxflags=-I[TDM-GCC安装路径]\include -I[TDM-GCC安装路径]\mingw32\include
打开Anaconda下的IPython,输入import theano,没有显示任何信息则配置正确:
另输入import keras会报错,因为keras默认建立在tensorflow框架上,通过修改keras.json(在home文件夹\ .keras)这个文件的backend为“theano”就好了:
4.测试
打开Anaconda下的IPython,输入下面代码:
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(), ))
正常情况,输出结果如下:
[1]:http://blog.csdn.net/youmy1111/article/details/51337054
[2]:http://deeplearning.net/software/theano/install_windows.html#git-install
[3]:http://www.jianshu.com/p/b8a703df5318
[4]:https://github.com/Theano/Theano/issues/4778