Win10系统+VS2017+CUDA9.2+安装 tensorflow-gpu1.8.0

tensorflow-gpu1.8.0+win10+vs2017+CUDA9.2 安装——从挖坑到跳坑到出坑

开始正事。想装python下的tensorflow-gpu,本人刚开始学机器学习,想着反正有Nvidia显卡,不如装个gpu版本的tensorflow,挖坑之旅由此开始,相信既然搜索者相关内容的同志们一定感同身受,我也就不多说废话了,直接讲讲怎么出坑,但愿以下经验能够帮助到你们!

 一、本机配置

 win10 64位 + NVIDIA GeForce GTX 950M(不用猜了,m结尾,我的电脑是笔记本)

二、安装vs2017

     我的vs2017版本是15.6.7

为了安装下面提到的CUDA9.2,我们可以看一下CUDA的安装指南,看一下它支持什么系统,什么版本的vs,以下是链接:

    https://docs.nvidia.com/cuda/cuda-installation-guide-microsoft-windows/index.html

Win10系统+VS2017+CUDA9.2+安装 tensorflow-gpu1.8.0(五)如何查看电脑安装的pytorch/tensorflow版本???(windows和ubuntu系统通用)_tensorflow

    可以看到,cuda9.2支持64位win10 和vs2017的update6。其实我也不知道update6是不是我vs15.6.7这个版本号里的数字6的含义,反正我就是这么装了这个vs版本。

        社区版链接下载地址点击此文字https://aka.ms/eac464

    历史版本下载见巨硬官网链接,往下拉既能看到vs2017历史版本的下载:https://docs.microsoft.com/en-us/visualstudio/productinfo/installing-an-earlier-release-of-vs2017#top

    这个是要联网的下载,离线安装请自行百度。

    安装的时候我们要勾选那些呢?

    Win10系统+VS2017+CUDA9.2+安装 tensorflow-gpu1.8.0(五)如何查看电脑安装的pytorch/tensorflow版本???(windows和ubuntu系统通用)_python_02

    上图是我选的,其中勾选的win10SDK一定勾上,因为我在安装完CUDA9.2之后测试官方案例时,一开始就因为缺少这个没编译成功。仅供参考,因为我也只是知其然不知其所以然。有待于以后继续学习。

    安装完之后,vs2017就暂告一段落。

二、安装CUDA9.2

下载CUDA9.2,官网下载地址:https://developer.nvidia.com/cuda-toolkit-archive

 选择 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

    下载地址:https://developer.nvidia.com/rdp/cudnn-archive
    选择 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),编译之后的效果如下:

Win10系统+VS2017+CUDA9.2+安装 tensorflow-gpu1.8.0(五)如何查看电脑安装的pytorch/tensorflow版本???(windows和ubuntu系统通用)_tensorflow_03
 

其他案例没能成功,参照博主【月光轩辕】所说:“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是不是正常安装并可以导入了:

代码一:查看tensorflow是不是正常安装并可以导入了

进入终端:cmd——> python     进入到python环境后,输入以下代码:没有报错,表明安装成功。

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利用率开始变化了,如下图:

Win10系统+VS2017+CUDA9.2+安装 tensorflow-gpu1.8.0(五)如何查看电脑安装的pytorch/tensorflow版本???(windows和ubuntu系统通用)_tensorflow_04

至此,大功告成!愉快的玩耍吧!

 

 

 

(一)检查Anconda是否安装成功:

进入终端:cmd——> conda --version

(二)查看CUDA版本:

进入终端:cmd——> nvcc -V

(三)检查安装了哪些环境变量:

进入终端:cmd——> conda info --envs

(四)查看Pytorch是否安装成功解决办法

进入终端:cmd——> python     进入到python环境后,输入以下代码:若运行没报错,输出相应的信息,则表示安装成功

import torch    # 如正常则静默
a = torch.Tensor([1.])    # 如正常则静默
a.cuda()    # 如正常则返回"tensor([ 1.], device='cuda:0')"
from torch.backends import cudnn # 如正常则静默
cudnn.is_acceptable(a.cuda())    # 如正常则返回 "True"
(五)如何查看电脑安装的pytorch/tensorflow版本???(windows和ubuntu系统通用)

1.输入cmd进入终端

2.输入python,进入python交互环境,然后输入下面两行代码

例如:windows系统,查看tensorflow的版本:

Win10系统+VS2017+CUDA9.2+安装 tensorflow-gpu1.8.0(五)如何查看电脑安装的pytorch/tensorflow版本???(windows和ubuntu系统通用)_tensorflow_05

查看pytorch的版本:

>>>python
>>>import torch
>>>torch.__version__

例如:windows系统

Win10系统+VS2017+CUDA9.2+安装 tensorflow-gpu1.8.0(五)如何查看电脑安装的pytorch/tensorflow版本???(windows和ubuntu系统通用)_cuda_06

例如:ubuntu系统

Win10系统+VS2017+CUDA9.2+安装 tensorflow-gpu1.8.0(五)如何查看电脑安装的pytorch/tensorflow版本???(windows和ubuntu系统通用)_gpu_07

 

 

 

查看系统启动模式:

“Win+R”打开运行,输入msinfo32,回车查看系统信息。
在BIOS模式中显示“传统”,表示系统方式为:Legacy BIOS;如果为UEFI,则显示UEFI。

 

册除ubantu EFI分区:

1、“cmd” →“Diskpart”→“list disk”(显示磁盘列表。表明只有一个磁盘)——> “select disk 0”→  “list patition” (磁盘分区列表) → “select partition X ”(选择要删除分区)→“delete partition override”(删除所在分区)。

 

将U盘格式化为NTFS格式:

1.插好U盘,“cmd”→“convert g:/fs:ntfs”→ 按下Enter等待转换完成.

 

 

 

 

【16、耐心和恒心总会得到报酬的。】