前言
折腾了两个星期,终于弄好了。起初在虚拟机里的ubantu16系统里弄了一个TensorFlow的CPU版本,但是觉得速度太慢,于是决定升级为GPU版,正好我的显卡也支持,但我发现虚拟机里的显卡也是虚拟的,并不能直接调用物理机显卡,我也不会弄显卡直通,估计多少也会有一些损耗吧。改为弄双系统,尝试了十几次后放弃了,都没弄好。最终决定在win10环境下安装TensorFlow-gpu,起初并没有成功,知道重装了win10之后就好了。(估计是之前我装个VS2017卸载有残留导致VS2015安装不能正常完成)
系统环境
- win10企业版2016长期服务版 64位
- 主显卡 Nvidia GeForce GTX 1050
- python版本 3.5
- CUDA 9.0
安装步骤
1、安装 Visual Studio 2015 community
点击这里下载
安装时选择自定义,如无其他需求则只需要勾选编程语言的C++部分即可
2、安装 CUDA
深度学习库如果使用CUDA进行GPU加速,可以大大缩短计算时间。(CUDA 目前只有NVIDIA 的显卡才支持)
- 检查自己设备的 GPU 是否支持 CUDA
如果你的显卡比较新,到这里检查是否支持 CUDA 进入网页,点开自己的显卡所属的系列,以及型号等等
如果你的显卡很老,请到这里检查是否支持CUDA - 将自己的显卡驱动更新到最新版本
用鲁大师即可 - CUDA 下载安装
CUDA 的下载地址:https://developer.nvidia.com/cuda-downloads 如果需要下载 CUDA 的历史版本,请移步:https://developer.nvidia.com/cuda-toolkit-archive (起初我下的是8.0发现不行又下了9.0,下载是两个版本同时存在) - 测试 CUDA 的安装结果,打开windows cmd,输入 nvcc -V,查看是否识别 nvcc 命令 效果如下
- 编译 CUDA 的示例程序
在C:\ProgramData\NVIDIA Corporation\CUDA Samples\v9.0 目录下有一个示例程序。由于我安装的是VS2015,所以打开 Samples_vs2015.sln 那个解决方案文件,将解决方案配置更改为Release和x64.
右键解决方案名称,编译整个解决方案,我不知道怎么编译就点了运行代码分析,他一样会在遇到错误的时候给出提示信息,我就遇到了下面这种,去安装这个软件后就好了
如果提示是缺少:”d3dx9.h”、”d3dx10.h”、”d3dx11.h”头文件,则需要安装 DXSDK_Jun10.exe
3、安装 Anaconda
Anaconda是专注于数据分析的Python发行版本,包含了conda、Python等190多个科学包及其依赖项,也就是省时省心。
点击这里下载 然后安装即可
4、安装 TensorFlow-gpu
- 更换pip源 好处是可以加快 pip安装第三方库的速度
在C:\Users\当前用户名)下新建一个pip文件夹,在里面新建一个pip.ini 文本文件,写入以下内容
[global]
index-url = http://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com
- 从开始菜单中打开Anaconda Prompt 执行
pip install tensorflow-gpu
5、安装 cuDNN 加速
cuDNN可 以在前面 GPU 加速基础上大概再提升1.5倍的速度
- 可以到nVIDIA官网上下载。下载之前需要注册,然后问一系列问题,请耐心弄完。然后就可以下载了。下载 windows 10系统下64位的,下载地址:https://developer.nvidia.com/cudnn
- 下载完成后解压缩。里面有bin、include、lib三个目录,将三个文件夹复制到安装CUDA的地方覆盖对应文件夹,默认文件夹在:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0
6、测试
import tensorflow as tf
sess = tf.Session()
a = tf.constant(10)
b = tf.constant(22)
print(sess.run(a + b))
如果出现下图这种情况,则说明你电脑cpu还行,支持AVX(Advanced Vector Extensions),运算速度还可以提升,所以可以开启更好更快的模式。
则把示例代码改为下面这样即可,效果如下图
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
import tensorflow as tf
sess = tf.Session()
a = tf.constant(10)
b = tf.constant(22)
print(sess.run(a + b))
到这一步你就大功告成啦
参考
- windows 下 TensorFlow(GPU 版)的安装
- Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX AVX2