py3.6_tensorflow1.10.0_cuda9.0_cudnn7.4_gtx1060

1060

一.准备:

            0.如果不是1060显卡,去查支不支持cuda,桌面右键点击NVIDIA控制面板---帮助---系统信息---组件,看NVCUDA.DLL后面写的支持的最高版本(1060是9.2,我装的是9.0,没毛病)

            1.装visual c++(自行google,也就是去ms官网下载,一路智障next,其实先安装anaconda中途会提示安装c++,点确定(电脑要保持联网),自动安装,就不要单独安装了,直接从第2步开始)

            2.装anaconda/py3.6版本(https://repo.anaconda.com/archive/选择Anaconda3-5.1.0-Windows-x86_64.exe,py3.7现在tf有问题,不要用了,18年11月,以后怎么样未知)

            3.pip install tensorflow-gpu==1.10.0 (有些低版本tf版本不支持cuda9,试了几个1.5及以后貌似都是cuda9没问题)

二.安装cuda以及cudnn:

           0.cuda版本问题,tf1.10.0,1.8,1.5版本都试过,需要cuda9.0,安装了cuda9.2都报错:ImportError: Could not find ‘cudnn64_90.dll’  还有什么提示需要cuda9之类的信息,那就换cuda9.0吧,确定了cuda9.0后去下载对应版本的cudnn(官网有对应提示,下载就是了,下之前需要官网注册并填调查问卷,有google账号直接授权注册就好了,just do it)

           1.cuda是一个.exe后缀的显卡运算平台,就当做一个软件吧,下载后直接点击一路next安装(补:换了一台机子出现NVIDIA安装程序失败,可能是显卡驱动问题,卸载显卡驱动但是会留下一些注册信息,还是安装失败,那么下载一个软件彻底清除nvidia的驱动信息,软件链接:https://www.wagnardsoft.com/forums/viewtopic.php?f=5&t=1069,亲测可行,参考blog:https://blog.csdn.net/lcb_coconut/article/details/79228759,这还没完,卸载掉驱动后不要重新装驱动,先按步骤装cuda,cudnn,装完后,这时 import tensorflow 会提示没有gpu driver,这时用鲁大师装个驱动,就可以了,额.......鲁大师装了驱动,可是nvidia控制面板没了,tf无影响,玩游戏的人不知道有没有影响......)

           2.cudnn是一个DeepLearning库,下载后是一个压缩文件,解压缩后是名为cuda的文件夹下面有几个简单的文件,就酱

           3.把解压后文件夹里的cuda\bin下的那个神秘的文件(就一个文件而已)移动到cuda安装目录下相同文件名下(安装在哪个盘就在哪个盘下搜索NVIDIA GPU Computing Toolkit关键字,会找到的,往下一直打开就会发现bin文件)

           4.cuda\include下的那个神秘的文件(就一个文件而已),移动它如步骤3

           5.cuda\lib\x64下的那个神秘的文件(就一个文件而已),移动它如步骤3

           6.添加环境变量 

                   CUDA_PATH = C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0 
                   CUDA_PATH_V9_0 = C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0 

                   上面两个是安装cuda后它会自己添加的(那个v9.0是cuda版本),下面需要手动:


                   CUDA_SDK_PATH = C:\Program Files\NVIDIA Corporation\CUDA Samples\v9.0 (这个路径网上不一样,搜索NVIDIA Corporation或CUDA Samples自己去找到路径,提醒,这个即使找到了NVIDIA Corporation文件夹,它下面也没有CUDA Samples,隐藏文件也没有,输入绝对路径也没有,此时安装盘搜索CUDA Samples却可以搜的到,打开,以后再进入就正常了,不用搜索了,搞不懂)
                   CUDA_LIB_PATH = %CUDA_PATH%\lib\x64 
                   CUDA_BIN_PATH = %CUDA_PATH%\bin 
                   CUDA_SDK_BIN_PATH = %CUDA_SDK_PATH%\bin\win64 
                   CUDA_SDK_LIB_PATH = %CUDA_SDK_PATH%\common\lib\x64
            7.以上操作完就ojbk了,import tensorflow as tf 一下没错就没错了(import 会出现 含有`np.float64 == np.dtype(float).type`,不影响使用,介意的话可以重装低版本numpy,pip install numpy==1.13.3)

 

补:

在使用时,tf会占用gpu所有内存,导致报错:

2018-12-03 14:56:31.483467: I T:\src\github\tensorflow\tensorflow\core\platform\cpu_feature_guard.cc:141] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2
2018-12-03 14:56:32.537019: I T:\src\github\tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:1405] Found device 0 with properties: 
name: GeForce GTX 1060 major: 6 minor: 1 memoryClockRate(GHz): 1.6705
pciBusID: 0000:01:00.0
totalMemory: 6.00GiB freeMemory: 4.97GiB
2018-12-03 14:56:32.537307: I T:\src\github\tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:1484] Adding visible gpu devices: 0
2018-12-03 14:56:34.566898: I T:\src\github\tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:965] Device interconnect StreamExecutor with strength 1 edge matrix:
2018-12-03 14:56:34.567074: I T:\src\github\tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:971]      0 
2018-12-03 14:56:34.567186: I T:\src\github\tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:984] 0:   N 
2018-12-03 14:56:34.569916: I T:\src\github\tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:1097] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 6144 MB memory) -> physical GPU (device: 0, name: GeForce GTX 1060, pci bus id: 0000:01:00.0, compute capability: 6.1)
2018-12-03 14:56:34.571340: E T:\src\github\tensorflow\tensorflow\stream_executor\cuda\cuda_driver.cc:903] failed to allocate 6.00G (6442450944 bytes) from device: CUDA_ERROR_OUT_OF_MEMORY
2018-12-03 14:56:34.572011: E T:\src\github\tensorflow\tensorflow\stream_executor\cuda\cuda_driver.cc:903] failed to allocate 5.40G (5798205440 bytes) from device: CUDA_ERROR_OUT_OF_MEMORY
2018-12-03 14:56:37.515074: E T:\src\github\tensorflow\tensorflow\stream_executor\cuda\cuda_dnn.cc:352] Could not create cudnn handle: CUDNN_STATUS_ALLOC_FAILED

解决办法3种参考:

# 假如有12GB的显存并使用其中的4GB:
gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=0.333)
sess = tf.Session(config=tf.ConfigProto(gpu_options=gpu_options))
config = tf.ConfigProto()
config.gpu_options.allow_growth=True
sess = tf.Session(config=config)
export CUDA_VISIBLE_DEVICES=1

本人采用第二种,按需要分配内存,可行,参考来源:https://blog.csdn.net/sunwuhuang1/article/details/53946462

mxnet也有这个问题好像,没啥办法,换一个老版本的mxnet完美解决

你可能感兴趣的:(deep,learning)