Win10上搭建TensorFlow的开发环境需要至少需要安装3个软件,分别为:1.python,2.CUDA和CuDNN,3.TensorFlow(GPU版)。安装前一定要确认好每个软件的版本是否相互支持。
因为刚刚重装了电脑发现显卡驱动竟然丢了,那还怎么用GPU,赶紧到官网下载最新的,否则会报错:cudaGetDevice() failed. Status: CUDA driver version is insufficient for CUDA runtime version
也可以在命令行运行命令nvidia-smi查看自己的显卡状态是否有问题
import sys
sys.version
‘3.7.3 (v3.7.3:ef4ec6ed12, Mar 25 2019, 22:22:05) [MSC v.1916 64 bit (AMD64)]’
我的电脑 -> 属性 -> 设备管理器 -> 显示适配器,我的版本是NVIDIA GeForce GTX 1050 with Max-Q Design
GitHub:https://github.com/tensorflow/tensorflow/releases
Pypi:https://pypi.org/project/tensorflow/#history
windows和VS的CUDA支持:https://docs.nvidia.com/cuda/cuda-installation-guide-microsoft-windows/index.html
可以看到CUDA10.1支持win10和VS2019的版本
目前官网上没有给出py3.7和tensorflow1.13的支持,但是有看到网友成功安装的帖子,所以这里进行试装
GPU的CUDA支持:https://developer.nvidia.com/cuda-gpus
显示支持6.1以上版本
下载地址:https://developer.nvidia.com/cuda-toolkit-archive
运行cuda_10.1.105_418.96_win10.exe,修改安装路径,之后会进行兼容性检查(按照上面对应的版本应该是没有问题的),同意许可协议后选择自定义安装
取消勾选NVIDIA GeForce Experience(这里可能会有点卡,稍等一会)
选择安装路径
显示缺少VS支持,点击链接安装VS(选择通用Windows平台开发、使用C++的桌面开发、Python开发和Visual Studio 扩展开发),安装过程耗时较长,不要认为是卡了
安装好Visual Studio后再重新安装CUDA,过程中会有几次重启(自动安装NVIDIA Nsight HUD Launcher 2019.1)
提示Visual Studio2015/2013/2012未安装,不用管,点击下一步。重启后安装完成。
命令行输入nvcc -V,如果输出是 CUDA 版本信息,则说明安装成功
CuDNN下载地址:https://developer.nvidia.com/rdp/cudnn-download(简单注册后即可下载)
把下载好的压缩包解压后得到三个文件夹,拷贝到CUDA的安装目录下(“C:\NVIDIA\CUDAv10.0”)
控制面板 -> 系统和安全 -> 系统 -> 高级系统设置 -> 高级 -> 环境变量
确认环境变量,CUDA_PATH和CUDA_PATH_V10已经存在
依此添加下列三个路径到Path里
C:\NVIDIA\CUDAv10.1\bin
C:\NVIDIA\CUDAv10.1\include
C:\NVIDIA\CUDAv10.1\lib\x64
第一次安装的时候是这么装的,后来重做了系统没有安装Anaconda,用的后一种方法,后面实例也是按照后一种来的,如果不想用Anaconda安装,直接跳到下一部分即可
打开Anaconda Prompt,配置清华仓库镜,输入
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls yes
创建运行环境,输入
conda create -n tensorflow-gpu python=3.7 # 新建一个名字叫tensorflow-gpu,python版本为3.7的运行环境
输入“y”安装提示需要安装的包
激活并进入环境,使后续指令在激活的环境中生效,输入
conda activate tensorflow-gpu
升级pip到最新版,防止稍后的安装时,出现错误,输入
python -m pip install --upgrade pip
安装需要的tensorflow版本(查了一下有4个代码,因为以前没有安装过所以用了第一条,其余的可以视自己的情况决定用哪条命令)
pip install tensorflow-gpu # 默认为最新版本(安装时正好是1.13,如需其他版本如1.12.0输入pip install tensorflow-gpu==1.12.0即可)
pip install --upgrade tensorflow-gpu # 更新tensorflow-gpu
pip install --ignore-installed --upgrade tensorflow-gpu # 更新tensorflow-gpu,忽略已经安装的部分
pip install --force-reinstall --upgrade tensorflow-gpu # 更新tensorflow-gpu,先卸载已经安装的部分
至此全部安装完毕
先查看自己CPU是否支持AVX2指令集,可以通过下载CPU-Z检测:
http://download.cpuid.com/cpu-z/cpu-z_1.87-cn.exe
可以看到这台电脑支持AVX2指令集
https://github.com/fo40225/tensorflow-windows-wheel
找到对应的版本
分别下载001和002(如果不支持下载SSE2的版本)
下载完成之后解压得到tensorflow_gpu-1.13.1-cp37-cp37m-win_amd64.whl
以管理员身份打开命令行
进入 .whl 文件的目录
通过pip命令安装 .whl 文件
进入ipython并输入以下代码
import tensorflow as tf
查看CUDA是否可用
a = tf.test.is_built_with_cuda()
print(a)
显示True说明可用
查看GPU是否可用
b = tf.test.is_gpu_available(cuda_only = False, min_cuda_compute_capability = None)
print(b)
显示True说明可用
打开ipython输入
import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print(sess.run(hello))
输出
b'Hello, TensorFlow!'
在运行代码前我们打开任务管理器 -> 性能,查看当前GPU的状态,正常情况下你没运行什么程序,GPU利用率什么的都是0
之后运行下面的代码
import tensorflow as tf
with tf.Session(config = tf.ConfigProto(allow_soft_placement = True, log_device_placement = True)) as sess:
# allow_soft_placement=True 表示使用gpu不能使用gpu时使用cpu
# log_device_placement=False 不打印日志,不然会刷屏,为了查看是否使用gpu,我们设置为True
a = tf.constant(1)
b = tf.constant(3)
c = a + b
print('结果是:%d\n 值为:%d' % (sess.run(c), sess.run(c)))
我们再查看GPU的状态可以发现利用率发生了变化,说明确实用到了GPU
同时也可以确认命令行中的运行日志看到使用了GPU