本次安装教程vs2015,python,theano,keras,cuda均正确安装,但是无法使用gpu加速,各种配置均试过,均失败,还希望有热心博友帮忙解答

1. 安装vs2015及以下版本

将c++有关选项选中安装完毕

CUDA需要C++的编译器,Windows下可以使用Visual C++,我们可以直接下载其官网推荐的Visual Studio。

2. 安装CUDA

CUDA是nvidia提供可以使用C++进行GPU编程的接口,其官方下载地址为https://developer.nvidia.com/cuda-downloads,最新版本为8.0。

3. 配置系统环境变量

CUDA和VS2015直接下载安装就好,并不需要设置,安装好后先添加系统环境变量

C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin
C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE

4. 检查cuda是否安装好

我们可以运行CUDA提供的例子来判断CUDA是否安装好了,打开C:\ProgramData\NVIDIA Corporation\CUDA Samples\v8.0\1_Utilities\deviceQuery

直接在vs2015运行 deviceQuery.cpp,可以看到自己的显卡设备信息,这样CUDA就安装好了(如果vs2015直接退出的话,在代码结束前末尾加system(“pause”);

5. 安装Anaconda3

windows下有很多python科学计算的发行版工具包,我直接用的Anaconda ,其安装简单方便,官方下载地址为https://www.continuum.io/downloads,我用的python3.x的版本(即Anaconda3),直接下载安装包安装就好。如何查看已安装的库

打开 Anaconda Command Prompt ,在命令提示符窗口中输入以下命令:`pip list` 或者`conda list`,

其中,`pip list` 只能查看库,而 `conda list` 则可以查看库以及库的版本

1. 如何安装或更新库

以安装 更新 scipy 为例

pip install scipy

pip install scipy --upgrade

或者

conda install scipy

conda update scipy

2.更新所有库

conda update --all

3.更新 conda 自身

conda update conda

4.更新 anaconda 自身

conda update anaconda

6. 安装mingw和libpython,当使用python3.x的Anaconda时只能正常安装mingw,libpython并不能安装成功,会出现错误

这是因为libpython只支持到python3.4.x,而Anaconda3默认的环境是python3.5.2

因此需要以下步骤:新建一个环境

命令行输入:C:\Users\lee>cd C: \Users\lee \Anaconda3\Scripts

C: \Users\lee \Anaconda3\Scripts>conda create -n python34 python=3.4.4启动环境activate python34列出所有环境(被激活的环境会带一个*)conda info -e安装theano+keras方法

在以上安装新的环境下,激活新的环境变量的方法是active python34

安装mingw 和 libpython

conda install mingw libpython

直接安装theano会出现错误,由于缺少vs编译器,先安装以下

conda install scipy -n python34

安装theano

pip install theano

安装keras

pip install keras

如果想使用ipython,需要在新的环境下安装ipyhon

conda install ipython

配置Theano

在个人主文件夹下新建一个“.theanorc.txt”的文档,例如我的在C:\Users\lee,该文档如何配置参考http://deeplearning.net/software/theano/library/config.html[global]

floatX=float32
device=gpu
optimizer=fast_compile
optimizer_including=cudnn # if you have successfully installed cudnn, otherwise remove it.
[lib]
cnmem=0.8
[blas]
ldflas=-lopenblas
[nvcc]
--flags=-LC:\Users\lee\Anaconda3\envs\python34\libs
--compiler_bindir=C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\amd64
fastmath=True
flags=-D_FORCE_INLINES
[cuda]
root = -LC:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0from 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 %f seconds" % (iters, t1 - t0))
print("Result is %s" % (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')

直接运行,会报错UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd5 in position 11: invalid continuation byte

这是因为掉用nvcc返回的字符串是使用的cwindows默认的默认编码,把源码出错的地方改为 *.decode(“GBK”)就可以.

需要修改的源码的位置:

Anaconda3/envs/python34/lib/site-packages/theano/compat/init.py 第46行左右
yield x.decode()改为yield x.decode(“GBK”)

下次使用

下次使用的时候,就可以先active境变量名称,然后就可以使用了