windows 10安装tensorflow_gpu-1.8.0-cp36-cp36m-win_amd64.whl + CUDA9.2 + cuDNN v7.1.4 +python3.6安装

过程中遇到各种各样的问题,慢慢从坑中爬出来 ——好东西要分享给大家,如果这个 网盘资源分享不了,请私信给我,我再重新发新的链接给你,好像NVDIA要注册才能下载cuDNN的,根本不翻墙是不能下载的。

弄了一晚上,终于好了。全部资源链接: https://pan.baidu.com/s/1UTBCijit2JVEP11ge7XLCg 密码: hlol 我下载的最新cuda_9.2.148_win10.exe,所以并没有用cuda_9.2.88_win10.exe和cuda_9.2.88.1_windows.exe这两个老文件。 接下里就是:cudnn-9.2-windows10-x64-v7.1 这个官网已经下载不到了,好不容易从其他blog找到的资源,在上面网盘已经给出。最后是tensorflow的安装:不能直接pip install tensorflow-gpu 在线安装,需要下载tensorflow-gpu1.8.0.whl文件,然后按照博主的方式安装pip install [本地路径]\tensorflow-gpu1.8.0.whl。 最后是我遇到的两个问题: 1.Visual Studio首先必须勾选安装Windows 10 SDK10.0.15063.0这是前提 然后我装的是Visual Studio 2017最新版,所以编译C:\ProgramData\NVIDIA Corporation\CUDA Samples\v9.2\5_Simulations\nbody这个项目时说我的Visual Studio版本不受支持。 解决办法是:直接改配置文件,让程序满足版本支持就行了。(具体步骤:https://blog.csdn.net/lovelessyi/article/details/79219276) 打开文件路径 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.1\include\crt 中的 host_config.h 文件 将 _MSC_VER > 1911 中的 1911 改为 1920 (这个数字是我随便改的,理论上只要比你的版本高就行了) 2.报错“CUDA驱动程序版本是不够的CUDA运行时版本问题”CUDA driver version is insufficient for CUDA runtime version 去更新显卡驱动到最新版本即可解决这个问题。

1.安装Anaconda

选择相应的Anaconda进行安装,下载地址点击这里,下载对应系统版本的Anaconda,官网现在的版本是Anaconda 4.3.1 for python3.6。笔者安装的是4.3.0版本的。 
这里写图片描述

就和安装普通的软件一样,全部选择默认即可,注意勾选将python3.6添加进环境变量。 
这里写图片描述

这样Anaconda就安装好了,我们可以通过下面的命令来查看Anaconda已经安装了哪些包。 
运行 开始菜单->Anaconda3—>Anaconda Prompt :

conda list
  • 1
  • 1

可以看到已经安装了numpy、sympy等常用的包。

2.安装Tensorflow

TensorFlow目前在Windows下只支持python 3.5版本。

(1)打开Anaconda Prompt,输入清华仓库镜像,这样更新会快一些: 
这里写图片描述

 
  1. conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/

  2. conda config --set show_channel_urls yes

  • 1
  • 2
  • 1
  • 2

(2)同样在Anaconda Prompt中利用Anaconda创建一个python3.5的环境,环境名称为tensorflow ,输入下面命令:

conda create -n tensorflow python=3.5
  • 1
  • 1

运行 开始菜单->Anaconda3—>Anaconda Navigator,点击左侧的Environments,可以看到tensorflow的环境已经创建好了。

这里写图片描述

这里写图片描述

(3)在Anaconda Prompt中启动tensorflow环境:

activate tensorflow
  • 1
  • 1

这里写图片描述

注:当不使用tensorflow时,关闭tensorflow环境,命令为:deactivate

(4)安装cpu版本的TensorFlow

pip install --upgrade --ignore-installed tensorflow

注:这里没有介绍GPU版本的安装方法,GPU版本需要安装cuda8+cudnn5,如需要的请搜索其他博文。

注意:一定要在 刚刚创建的tensorflow的环境下安装!!!!

这样tensorflow cpu版本就安装好了。

(5)测试tensorflow 
在Anaconda Prompt中启动tensorflow环境,并进入python环境。 
这里写图片描述 
测试代码如下:

 
  1. import tensorflow as tf

  2. hello = tf.constant('Hello, TensorFlow!')

  3. sess = tf.Session()

  4. print(sess.run(hello))

运行结果: 
这里写图片描述

二、安装CUDA9.2

    下载CUDA9.2,官网下载地址

    选择CUDA Toolkit 9.2 (March 2018)

    然后选择windows、x86_64、10、exe(local)  并下载(可供下载的有Base Installer 和 Patch 1 (Released May 16, 2018)我们都下载下来),下载的文件是cuda_9.2.88_win10.exe和cuda_9.2.88.1_windows.exe

    下载完之后的cuda_9.2.88_win10.exe是可执行文件,但是我们可以用WinRAR将这个exe解压。(注意:是将这个exe解压,后面要用到,仅仅解压cuda_9.2.88_win10.exe)

    进入解压后的cuda_9.2.88_win10文件夹,有setup.exe,你直接双击下载的cuda_9.2.88_win10.exe也行,只是双击cuda_9.2.88_win10.exe,它也是需要解压的,浪费时间,既然我们以及解压了,就不要麻烦程序再解压一遍了,还费时间。

    重点来了!!!!!!!

    此处默认你的电脑已经装好了显卡的驱动(包括GForce Experience等等)

    安装程序选择自定义安装(我之前选了精简安装,后面没装成功,连自己本身电脑的显卡驱动都坏了,重新下显卡驱动也装不上,还好我之前对c盘有过备份),我们只勾选CUDA里的Development、Runtime、Documentation、Samples。不要勾选Visual Studio Integration。按理说不勾选Visual Studio Integration之后是能顺利完成的。

    安装完毕后,我们打开cuda_9.2.88_win10.exe解压后cuda_9.2.88_win10的文件夹,进入到\cuda_9.2.88_win10\CUDAVisualStudioIntegration\extras\visual_studio_integration\MSBuildExtensions路径下,有四个文件,将所有文件拷贝到VS的对应目录下,参考路径如下

C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\BuildCustomizations

    然后我们双击下载的另一个exe文件:cuda_9.2.88.1_windows.exe,这应该是一个补丁文件,修复cuda_9.2.88_win10.exe中的一些问题的。

    CUDA9.2安装完毕。

三、安装cudnn

    下载地址

    选择Download cuDNN v7.1.2 (Mar 21, 2018), for CUDA 9.1 & 9.2

    因为CUDA是9.2版本,对应cudnn的版本是7.1.2

    解压cudnn-9.2-windows10-x64-v7.1.zip,将文件夹里的内容拷贝到CUDA的安装目录并覆盖相应的文件夹,CUDA拷贝目录:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.2

四、测试Samples

    打开目录:C:\ProgramData\NVIDIA Corporation\CUDA Samples\v9.2\5_Simulations\nbody

    这是官方的一个案例项目:nobody

    找到nbody_vs2017.sln,用vs2017打开,编译(此时编译就用到了之前安装vs2017勾选的那个SDK),编译之后的效果如下:

    其他案例没能成功,参照博主【月光轩辕】所说:“CUDA中自带了很多Sample,但是部分Sample依赖了第三方库,所以很多Sample无法正常编译(如0sample中有项目依赖了mpi,还有一个项目依赖了DirectX),我刚开始的时候尝试去编译所有的samples,被这些多出的依赖搞的焦头烂额,但是最后发现毫无必要,我当时真的是太蠢了。”

    多亏了该博主之前的尝试,让我没才能不钻这个死胡同,不然按我的性子,没编译成功肯定会认为是那里没安装正确。深表感谢!

五、安装tensorflow-gpu1.8.0

    采用的安装包是地址是:https://github.com/fo40225/tensorflow-windows-wheel/tree/master/1.8.0/py36/GPU/cuda92cudnn71sse2

   下载下来之后  用pip安装这个whl文件,需要连网,因为会有其他的相关的库会自动下载

    这个安装你要不会,我觉得你该从python基础去学了。

六、验证此时的tensorflow的代码是否是在使用GPU

    以下代码也是我从网上找的,不是自己写的,如有冒犯告知删除。    

    首先看看tensorflow是不是正常安装并可以导入了:

代码一:

import tensorflow as tf

a = tf.test.is_built_with_cuda()  # 判断CUDA是否可以用

b = tf.test.is_gpu_available(
    cuda_only=False,
    min_cuda_compute_capability=None
)                                  # 判断GPU是否可以用

print(a)
print(b)

输出结果是:
True
True
代表CUDA和GPU可用

代码二:

import tensorflow as tf

#Creates a graph.
a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[2, 3], name='a')
b = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[3, 2], name='b')
c = tf.matmul(a, b)
#Creates a session with log_device_placement set to True.
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
#Runs the op.
print(sess.run(c))

输出结果是:[[22. 28.]
 [49. 64.]]

下面是直观的看出代码有没有在使用GPU

代码三:

import tensorflow as tf

with tf.device('/cpu:0'):
    a = tf.constant([1.0, 2.0, 3.0], shape=[3], name='a')
    b = tf.constant([1.0, 2.0, 3.0], shape=[3], name='b')
with tf.device('/gpu:1'):
    c = a + b

# 注意:allow_soft_placement=True表明:计算设备可自行选择,如果没有这个参数,会报错。
# 因为不是所有的操作都可以被放在GPU上,如果强行将无法放在GPU上的操作指定到GPU上,将会报错。
sess = tf.Session(config=tf.ConfigProto(allow_soft_placement=True, log_device_placement=True))
# sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
sess.run(tf.global_variables_initializer())
print(sess.run(c))

    先不急着运行,打开任务管理器,点击  性能  ,找到你自己英伟达显卡的GPU那一栏,点击一下,可以显示GPU的利用情况,正常情况下你没运行什么程序,GPU利用率什么的都是0,没有波澜,然后你运行代码三,会发现GPU利用率开始变化了,如下图:
 

猜你喜欢

转载自blog.csdn.net/liumoude6/article/details/81606048