Keras文档官网
Keras的Githud
首先需要安装Keras指定的依赖库
Installation
Keras uses the following dependencies:
numpy, scipy
HDF5 and h5py (optional, required if you use model
saving/loading functions)
Optional but recommended if you use CNNs: cuDNN
在安装依赖库之前,确保已经安装pip,pip一般自带了,在Python的安装目录下的Scripts的文件夹中,如果没有,手动安装见
然后需要安装wheel,可以首先将上述的Scripts目录添加到系统目录下,也可以cmd里进入到Scripts文件夹,然后执行pip
install wheel,其安装过程如下:
windows下选择下载numpy-1.12.1rc1-cp27-none-win32.whl这个文件安装,只要进入下载文件的所在位置,然后执行pip
install numpy-1.12.1rc1-cp27-none-win32.whl即可,安装过程如下图所示:
这里需要注意的是,这里安装NumPy与Python版本相关,注意在网站上下载whl文件时,看Py
Version这个属性,大致cp27就是对应Python2.7的版本。
安装SciPy的网站为,依旧需要找自己Python对应的版本,我找了个下载量最多的版本0.16.1,exe的安装就不赘述了。
接下来就是PyYAML的安装
找到对应的版本,然后下载exe文件安装
然后除了可选的依赖环境,其他环境全部安装完成
在最后安装Keras之前,还需要安装支持
When using the TensorFlow backend:
TensorFlow
See installation instructions.
When using the Theano backend:
Theano
See installation instructions.
需要在TensorFlow和Theano之间任意选择,TensorFlow能在Windows下安装,但是只支持Python的3.5.x,我使用的是Python2.7,因此只能选择安装Theano
手动安装Theano有点痛苦,还是直接安装比较好,
pip install theano
安装成功后,截图如下:
此时成功安装了theano之后,在Python里import
theano依旧会显示警告信息如下:
WARNING (theano.configdefaults):g++ not detected! Theano
will be unable to execute optimized C-implementations (for both CPU
and GPU) and will default to Python implementation. Performance
will be severely degraded. To remove this warning, set Theano flags
cxx to an empty string.
说明还需要g++的编译器,MinGW的下载地址为
下载mingw-get之后,选择安装时,勾选上GUI界面,完成安装后,启动MinGW
Installation Manager,并将mingw32-gcc-g++勾选上,然后左上角Installation中,选择Apply
Changes,等待安装完成,一般会在C:\MinGW\bin目录下安装好gcc和g++,完成后,将该目录加入系统Path中,确定cmd中输入g++会有响应即可进入安装Keras的步骤。
Keras安装失败
最后使用pip install keras来安装keras,但是直接报错如下:
Could not find a version that satisfies the requirement rensorflow
(from keras) (from versions: )
No matching distribution found for tensorflow (from keras)
很显然,Keras-2.0.0版本需要tensorflow的支持,不能在theano下安装,同时看到很多网上安装keras的教程,其版本都是0开头的版本,显然这个版本有点高,想指定版本也不会(如果有人能告知pip
install 指令中指定版本号的话,不胜感激)。
指定版本号的pip install如下:
比如需要安装版本号为1.2.2的keras的指令为:pip
install keras==1.2.2
卡在这里很久,最终找到解决方法,首先为了解决问题,找到了可以提供更多信息的pip指令如下:pip
install –v –v –v keras >out.txt,然后将所有信息放置到了文件out.txt中,从文件中找到pip指令先检查到了keras下载的网址,,在这上面找到了Keras最新的版本2.0.0,下载后进入Keras-2.0.0\Keras.egg-info目录下,查找requires.txt获取依赖信息,我在网站上下载了2.0.0版本后,发现其requires.txt中内容如下:
tensorflow
pyyaml
six
[h5py]
h5py
[tests]
pytest
pytest-pep8
pytest-xdist
[visualize]
pydot-ng
很显然,确实是要求tensorflow,因此选择安装了theano,想再安装keras需要选择其他版本,经过比较requires.txt文件后,我选择了Keras-1.2.2这个版本,下载安装包后,在cmd中进入文件夹,运行指令python
setup.py install,然后安装成功,此时在python中输入import
keras已经可以找到这个模块,但是接着显示Using
TensorFlow backend,然后就是报错,很显然需要修改下backend配置文件,在当前用户的文件夹中有.keras文件夹,找到其中的keras.json文件,修改如下:
{
"image_dim_ordering": "tf",
"epsilon": 1e-07,
"floatx": "float32",
"backend": "theano"
}
保存文件,即可成功的import keras了
这样安装完成以后,跑代码,结果发现报错,信息如下:
AssertionError:AbstractConv2d Theano optimization failed: there is
no implementation available supporting the requested options. Did
you exclude both "conv_dnn" and "conv_gemm" from the optimizer? If
on GPU, is cuDNN available and does the GPU support it? If on CPU,
do you have a BLAS library installed Theano can link against?
简要的说就是,如果出现这样的错误,要么就是你选择GPU加速,但是没有安装cuDNN的库,或者GPU不支持;选择的是CPU加速的话,BLAS的库没有安装,并与Theano链接起来
我需要的是CPU的加速(GPU不是英伟达的,而且已经很烂了),所以这样的话,要解决BLAS库安装的问题,Theano官网也提到了需要BLAS库,其推荐的是安装OpenBLAS库,OpenBLAS库下载的地址如下:
选择合适的版本,下载好文件,主要需要用到的是压缩包中lib文件夹中的dll,假设将lib文件夹放在了C:\\MinGW\\OpenBLAS-v0.2.7-x86-Win\\lib这样的位置,那么把这个位置加入系统的Path,然后在.theanorc.txt文件中加入ldflags
= -LC:\\MinGW\\OpenBLAS-v0.2.7-x86-Win\\lib -lopenblas
采用CPU加速的配置文件如下:
[global]
openmp=True
device=cpu
floatX = float32
allow_input_downcast=True
[blas]
ldflags = -LC:\\MinGW\\OpenBLAS-v0.2.7-x86-Win\\lib
-lopenblas
.theanorc.txt放在当前用户的文件夹内即可,这样就可以运行Keras了
如果在运行代码过程中,报错如下:
python.exe已停止工作
那么可以尝试找到.theanorc.txt中如下配置项
.theanorc.txt
[gcc]
cxxflags = -IC:\MinGW\lib
删除这个配置,也许可以解决这个问题
最后,推荐在大内存,并且GPU加速的环境下运行Keras,32位机器上运行Keras实测不是很稳定,建议安装在64位机器上