本次安装教程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
有关新建环境地具体教程可参照这个网址http://www.jianshu.com/p/d2e15200ee9b
- 启动环境
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.0
运行结果
参考http://deeplearning.net/software/theano/tutorial/using_gpu.html里面的python测试脚本
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 %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境变量名称,然后就可以使用了
具体 操作见下图