过程中遇到各种各样的问题,慢慢从坑中爬出来 ——好东西要分享给大家,如果这个 网盘资源分享不了,请私信给我,我再重新发新的链接给你,好像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
可以看到已经安装了numpy、sympy等常用的包。
2.安装Tensorflow
TensorFlow目前在Windows下只支持python 3.5版本。
(1)打开Anaconda Prompt,输入清华仓库镜像,这样更新会快一些:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls yes
(2)同样在Anaconda Prompt中利用Anaconda创建一个python3.5的环境,环境名称为tensorflow ,输入下面命令:
conda create -n tensorflow python=3.5
运行 开始菜单->Anaconda3—>Anaconda Navigator
,点击左侧的Environments
,可以看到tensorflow
的环境已经创建好了。
(3)在Anaconda Prompt中启动tensorflow环境:
activate tensorflow
注:当不使用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环境。
测试代码如下:
import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print(sess.run(hello))
运行结果:
下载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安装完毕。
下载地址
选择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
打开目录: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,被这些多出的依赖搞的焦头烂额,但是最后发现毫无必要,我当时真的是太蠢了。”
多亏了该博主之前的尝试,让我没才能不钻这个死胡同,不然按我的性子,没编译成功肯定会认为是那里没安装正确。深表感谢!
采用的安装包是地址是:https://github.com/fo40225/tensorflow-windows-wheel/tree/master/1.8.0/py36/GPU/cuda92cudnn71sse2
下载下来之后 用pip安装这个whl文件,需要连网,因为会有其他的相关的库会自动下载
这个安装你要不会,我觉得你该从python基础去学了。
以下代码也是我从网上找的,不是自己写的,如有冒犯告知删除。
首先看看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利用率开始变化了,如下图: