目 录
1 准备工作
Win10上搭建TensorFlow的开发环境需要至少需要安装3个软件,分别为:1.python,2.CUDA和CuDNN,3.TensorFlow(GPU版)。安装前一定要确认好每个软件的版本是否相互支持。
1.1(坑一)确认电脑上没有安装tensorflow的CPU版本,有的话要先卸载
1.2(坑二)更新自己的显卡驱动
因为刚刚重装了电脑发现显卡驱动竟然丢了,那还怎么用GPU,赶紧到官网下载最新的,否则会报错:cudaGetDevice() failed. Status: CUDA driver version is insufficient for CUDA runtime version
也可以在命令行运行命令nvidia-smi查看自己的显卡状态是否有问题
1.3 查看python版本
import sys
sys.version
‘3.7.3 (v3.7.3:ef4ec6ed12, Mar 25 2019, 22:22:05) [MSC v.1916 64 bit (AMD64)]’
1.4 查看GPU版本
我的电脑 -> 属性 -> 设备管理器 -> 显示适配器,我的版本是NVIDIA GeForce GTX 1050 with Max-Q Design
1.5 查看Tensorflow版本
GitHub:https://github.com/tensorflow/tensorflow/releases
Pypi:https://pypi.org/project/tensorflow/#history
1.6 查看版本支持
windows和VS的CUDA支持:https://docs.nvidia.com/cuda/cuda-installation-guide-microsoft-windows/index.html
可以看到CUDA10.1(因为有网友回复10.1会有冲突,而且我后面安装tf2.0的时候是不支持10.1的,所以这里先安装10.0吧)支持win10和VS2019的版本
目前官网上没有给出py3.7和tensorflow1.13的支持,但是有看到网友成功安装的帖子,所以这里进行试装
GPU的CUDA支持:https://developer.nvidia.com/cuda-gpus
显示支持6.1以上版本
2 安装CUDA Toolkit 10.0
安装10.0吧,虽然我自己试过10.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 版本信息,则说明安装成功
3 安装cuDNN v7.5.0 (Feb 25, 2019), for CUDA 10.1
CuDNN下载地址:https://developer.nvidia.com/rdp/cudnn-download(简单注册后即可下载)
把下载好的压缩包解压后得到三个文件夹,拷贝到CUDA的安装目录下(“C:\NVIDIA\CUDAv10.0”)
4 配置环境变量
控制面板 -> 系统和安全 -> 系统 -> 高级系统设置 -> 高级 -> 环境变量
确认环境变量,CUDA_PATH和CUDA_PATH_V10已经存在
依此添加下列三个路径到Path里
C:\NVIDIA\CUDAv10.1\bin
C:\NVIDIA\CUDAv10.1\include
C:\NVIDIA\CUDAv10.1\lib\x64
5 安装tensorflow1.13(with Anaconda)
第一次安装的时候是这么装的,后来重做了系统没有安装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,先卸载已经安装的部分
至此全部安装完毕
6 直接安装tensorflow(without Anaconda)
6.1 查看CPU的指令集
先查看自己CPU是否支持AVX2指令集,可以通过下载CPU-Z检测:
http://download.cpuid.com/cpu-z/cpu-z_1.87-cn.exe
可以看到这台电脑支持AVX2指令集
6.2 下载对应版本的tf
https://github.com/fo40225/tensorflow-windows-wheel
找到对应的版本
分别下载001和002(如果不支持下载SSE2的版本)
下载完成之后解压得到tensorflow_gpu-1.13.1-cp37-cp37m-win_amd64.whl
安装tensorflow
以管理员身份打开命令行
进入 .whl 文件的目录
通过pip命令安装 .whl 文件
7 试用Tensorflow-gpu
进入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说明可用
7.1 测试1
打开ipython输入
import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print(sess.run(hello))
输出
b'Hello, TensorFlow!'
7.2 直接在jupyter中测试tensorflow-gpu
在运行代码前我们打开任务管理器 -> 性能,查看当前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
来源:CSDN
作者:孙悟充
链接:https://blog.csdn.net/huanyingzhizai/article/details/89298964