清华大学的镜像网站,官网下载太慢了:
https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
https://developer.nvidia.com/cuda-90-download-archive?target_os=Windows&target_arch=x86_64&target_version=10&target_type=exelocal
https://developer.nvidia.com/rdp/cudnn-archive
cuDNN安装就是解压文件,把对应的文件放到cuda安装目录的对应位置
参照 https://blog.csdn.net/yeler082/article/details/80943040
tensorflow 1.4及以下的不支持cuda9.0,且tensorflow1.0版本以上是不支持cuda8.0以下的。tensorflow-gpu1.4以后不支持使用CUDA8.0。cuda8.0对应的cuDNN必须是6.0版的。所以如果你是cuda8.0,那么就安tensorflow-gpu1.4一下的版本吧。另外,tensorflow-gpu1.4不支持axis:TypeError: softmax() got an unexpected keyword argument ‘axis’
原本我看到网上说cuda9.1也可以运行tensorflow,所以就没改cuda,但是折腾了一天,还是不能用,所以,还是趁早换成cuda9.0吧,官网上说cuDNN要大于等于7.2,这也要注意别下错了。
cuda9.0安装成功:
打开Anaconda Prompt,新建tensorflow环境:
激活Tensorflow:activate tensorflow
,查看python版本为3.6:
安装tensorflow-gpu:pip install tensorflow-gpu
注意:windows只支持python3安装tensorflow-gpu
成功了!!!!!!
检测tensorflow是否使用gpu进行计算,参照 https://blog.csdn.net/castle_cc/article/details/78389082
import tensorflow as tf
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
查看日志信息若包含gpu信息,就是使用了gpu。
参考 https://blog.csdn.net/qq_36890572/article/details/78673368
安装MinGW包:conda install mingw libpython
(超慢,并且还断了,我是下载下来后再安装的)
conda install --offline -f 文件路径
配置MinGW环境变量:MinGW默认位置在anaconda的安装位置
安装theano(Theano是一个Python库,可以在CPU或GPU上运行快速数值计算。 这是Python深度学习中的一个关键基础库,你可以直接用它来创建深度学习模型或包装库,大大简化了程序。), 在命令行输入命令:pip install theano
在python命令行测试theano:
用实例测试theano:
from theano import function, config, shared, tensor
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([], tensor.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, tensor.Elemwise) and
('Gpu' not in type(x.op).__name__)
for x in f.maker.fgraph.toposort()]):
print('Used the cpu')
else:
print('Used the gpu')
将以上内容保存到test_theano.py文件,然后执行python 路径+test_theano.py
蛋疼。。。怎么是cpu,待我稍后再看看咋回事。
安装keras,在命令行输入: pip install keras
在python环境测试Keras:
Keras 的Backend,也就是Keras基于什么东西来做运算。Keras 可以基于两个Backend,一个是 Theano,一个是 Tensorflow。如果我们选择Theano作为Keras的Backend, 那么Keras就用 Theano 在底层搭建你需要的神经网络;同样,如果选择 Tensorflow 的话呢,Keras 就使用 Tensorflow 在底层搭建神经网络。
如何看当前使用的是什么Backend
每次当我们import keras的时候,就会看到屏幕显示当前使用的 Backend
>>import keras
Using Theano Backend
这就说明现在使用的是Theano在作Backend。
而我现在使用Tensorflow作为backend。
cuda一般是指采用C语言编程实现的GPU cuda架构,pycuda就是指使用python语言实现的cuda架构,同属于nvidia显卡加速并行计算架构。
参考:https://blog.csdn.net/liangjiubujiu/article/details/80448906
下载PyCuda: https://www.lfd.uci.edu/~gohlke/pythonlibs/#pycuda
内心很崩溃,pyCuda咋没有cuda9.0版本的?药丸。。。
我下的pycuda‑2017.1.1+cuda8061‑cp36‑cp36m‑win_amd64.whl ,死马当做活马医吧:
pip install 路径+whl文件名
import pycuda.autoinit
import pycuda.driver as drv
import numpy
from pycuda.compiler import SourceModule
mod = SourceModule("""
__global__ void multiply_them(float *dest, float *a, float *b)
{
const int i = threadIdx.x;
dest[i] = a[i] * b[i];
}
""")
multiply_them = mod.get_function("multiply_them")
a = numpy.random.randn(400).astype(numpy.float32)
b = numpy.random.randn(400).astype(numpy.float32)
dest = numpy.zeros_like(a)
multiply_them(
drv.Out(dest), drv.In(a), drv.In(b),
block=(400,1,1), grid=(1,1))
print(dest-a*b)
好吧,并没有成功,原因就是Cuda版本不对。天啊,这咋办!
后来我直接pip install pycuda
,结果成功了
我现在很纳闷为啥那个RayNet作者弄这么多依赖,Tensorflow和Theano不是重复的吗。并且Tensorflow貌似会霸占资源:
https://github.com/tensorflow/tensorflow/issues/18822
换上Cuda9.1版本的安上也不对,哔了狗。。。难道要我退回Cuda8.0,不想啊啊啊啊。我用cuda8.0测试了,果然用cuda8.0是可以的。
Cython是一个快速生成Python扩展模块的工具,从语法层面上来讲是Python语法和C语言语法的混血,当Python性能遇到瓶颈时,Cython直接将C的原生速度植入Python程序,这样使Python程序无需使用C重写,能快速整合原有的Python程序,这样使得开发效率和执行效率都有很大的提高,而这些中间的部分,都是Cython帮我们做了。
pip install backports.functools_lru_cache
conda install -c conda-forge imageio
pip install --upgrade oauth2client
python -m pip install -U pip
python -m pip install -U matplotlib
我下载了Anaconda5.3,结果它是python3.7(Tensorflow目前支持python3.4-3.6),但我又不想重新下载安装Anaconda了,所以就这么继续下去吧
conda create --name tensorflow python=3.6
然后慢慢等着下载吧
激活Tensorflow:activate tensorflow
查看激活是否成功:conda info --envs
,取消激活:deactivate
测试是否成功:
查看python版本:
可以查看python有两个版本:
安装tensorflow的gpu版本:pip install tensorflow-gpu
测试是否安装成功:
键入quit()
退出python
因为目前的Tensorflow最多支持到CUDA9.0。