细数自己搭建TensorFlow-gpu环境中遇到的坑及解决方式:
1、安装anaconda,一路下来点击next,然后默认配置(这里不再细讲)
2、安装装TensorFlow-gpu -->pip install tensorflow-gpu(也可以选择自己想要的版本安装),注意:现目前TensorFlow-gpu适应python最佳版本为python3.5
3、官网下载cuda,本人下载的是cuda9.0 测试过V9.1与V8.5,9.0版本是稳定的版本
4、下载对应cuda版本的cudnn,官网会有相关提示(本人下载为v7.0.5)
5、双击cuda.exe文件安装,过程中会出现闪屏等状况,都是正常情况,按照默认选择,点next。划重点!下面的步骤很重要!!!
5.1、解压cudnn压缩包,将压缩后的lib/x64,include, bin 下面的文件复制到cuda/v9.0对应的文件夹下
5.2、将lib,lib/x64, include,bin,配置到系统路径中(怎么配环境变量这里也不再累赘)
5.3、 在命令提示符窗口中输入:nvcc -V 或者命令行中运行在C:\ProgramData\NVIDIA Corporation\CUDA Samples\v5.0\bin\win32\Release中deviceQuery程序,若能检测到cuda device则证明程序已经正确安装
6、测试TensorFlow-gpu是否能正常运行
测试代码
import tensorflow as tf
hello = tf.constant('hello world')
sess = tf.Session()
sess.run(hello)
6.1、这里有可能出现第一个坑(如果你运行内存足够的大或许可以绕过),一个内存溢出的错误‘ failed to allocate 10.91G (11715084288 bytes) from device: CUDA_ERROR_OUT_OF_MEMORY’
解决方式:作如下更改:
config = tf.ConfigProto()
#config.gpu_options.per_process_gpu_memory_fraction = 0.90
config.gpu_options.allow_growth = True # 允许自增长
config.log_device_placement=True # 允许打印gpu使用日志
session = tf.Session(config=config)
6.2、这里讲的第二个错误,源自于cudnn版本不对,对应cuda_V9.0有cudnn_V7.1.4(7.1.n)也有V7.0.n 安装报错提示下载对应的版本,我的cuda为V9.0对应的cudnn为V7.0.5