文章目录
下载Anaconda并安装Cuda和cuDNN下载注意曲折的经历安装配置安装Keras安装PyCuda安装Cython安装backports.functools_lru_cacheInstalling imageio安装oauth2client安装Matplotlib无法成功的cuda9.1,心塞塞,原本还打算写用cuda9.1的教程,还是算了吧
写这个其实是为了把RayNet跑起来:
http://raynet-mvs.com/installation/
下载Anaconda并安装
清华大学的镜像网站,官网下载太慢了: https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
Cuda和cuDNN下载
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://img-blog.csdnimg.cn/20181029201739616.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FfU3R1ZGVudF9PRl9TSEFOREE=,size_16,color_FFFFFF,t_70)
注意
参照 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’ ![在这里插入图片描述](https://img-blog.csdnimg.cn/20181104211106694.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FfU3R1ZGVudF9PRl9TSEFOREE=,size_16,color_FFFFFF,t_70)
曲折的经历
原本我看到网上说cuda9.1也可以运行tensorflow,所以就没改cuda,但是折腾了一天,还是不能用,所以,还是趁早换成cuda9.0吧,官网上说cuDNN要大于等于7.2,这也要注意别下错了。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20181029194239441.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FfU3R1ZGVudF9PRl9TSEFOREE=,size_16,color_FFFFFF,t_70)
安装配置
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。
安装Keras
参考 https://blog.csdn.net/qq_36890572/article/details/78673368 安装MinGW包:conda install mingw libpython (超慢,并且还断了,我是下载下来后再安装的)
conda install --offline -f 文件路径
![在这里插入图片描述](https://img-blog.csdnimg.cn/201810292232494.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FfU3R1ZGVudF9PRl9TSEFOREE=,size_16,color_FFFFFF,t_70)
配置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。
安装PyCuda
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
Cython是一个快速生成Python扩展模块的工具,从语法层面上来讲是Python语法和C语言语法的混血,当Python性能遇到瓶颈时,Cython直接将C的原生速度植入Python程序,这样使Python程序无需使用C重写,能快速整合原有的Python程序,这样使得开发效率和执行效率都有很大的提高,而这些中间的部分,都是Cython帮我们做了。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/2018102922231956.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FfU3R1ZGVudF9PRl9TSEFOREE=,size_16,color_FFFFFF,t_70)
安装backports.functools_lru_cache
pip install backports.functools_lru_cache
![在这里插入图片描述](https://img-blog.csdnimg.cn/20181029222151538.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FfU3R1ZGVudF9PRl9TSEFOREE=,size_16,color_FFFFFF,t_70)
Installing imageio
![在这里插入图片描述](https://img-blog.csdnimg.cn/20181029212645211.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FfU3R1ZGVudF9PRl9TSEFOREE=,size_16,color_FFFFFF,t_70)
conda install -c conda-forge imageio
![在这里插入图片描述](https://img-blog.csdnimg.cn/20181029221833302.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FfU3R1ZGVudF9PRl9TSEFOREE=,size_16,color_FFFFFF,t_70)
安装oauth2client
pip install --upgrade oauth2client
![在这里插入图片描述](https://img-blog.csdnimg.cn/20181029221957636.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FfU3R1ZGVudF9PRl9TSEFOREE=,size_16,color_FFFFFF,t_70)
安装Matplotlib
python -m pip install -U pip
python -m pip install -U matplotlib
![在这里插入图片描述](https://img-blog.csdnimg.cn/2018102922101618.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FfU3R1ZGVudF9PRl9TSEFOREE=,size_16,color_FFFFFF,t_70)
无法成功的cuda9.1,心塞塞,原本还打算写用cuda9.1的教程,还是算了吧
我下载了Anaconda5.3,结果它是python3.7(Tensorflow目前支持python3.4-3.6),但我又不想重新下载安装Anaconda了,所以就这么继续下去吧 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20181029162235143.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FfU3R1ZGVudF9PRl9TSEFOREE=,size_27,color_FFFFFF,t_70)
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。
|