老狗——Tensorflow-gpu Install 安装一条龙精华版

Author : Hanyun Zhang
微信公众号:人工智不了能
Github:https://github.com/GitHub-ZHY/icehouse.git
Date : 2020/06/25
Tips : 欢迎关注我滴微信公众号,有相关问题也欢迎发送邮件到 zhanghanyunaa@163.com 您的邮件我第一时间就会看到,一定会及时阅读和回复!

一、显卡 & 驱动

本文讲的是主流NVIDA显卡(俗称N卡)的Tensorflow-gpu的配置。
所以

  • 先看看我们的小霸王配置怎么样,支不支持CUDA,不支持建议出门左转x宝x东,大船靠岸。
  • 如果支持 CUDA ,那就想尽办法先把这显卡驱动更新了。

相关链接:
查看本机显卡是否支持 CUDA: https://developer.nvidia.com/cuda-gpus
N卡驱动下载:https://www.nvidia.cn/Download/index.aspx?lang=cn

没装 NVIDA GeForce Experience 的哥们儿们建议装一波,不仅LOL段位能提高,主要还能自动更新显卡驱动。

登高必自卑,行远必自迩,先自己动起手来!

在这个承上启下的部分,我先提出一个大重难点,即:

【Python & Tensorflow-gpu & 显卡 & CUDA & cuDNN 的版本对应关系】”

着急看关系的朋友直接拉到最下面第八条

不推荐无脑选择最新版本。毕竟 NVIDA Python Tensorflow 由不同组织来开发和维护。

不用慌,出现问题就解决问题,毕竟只是环境的小问题,接下来我们带着问题,接着往下看”

二、CUDA

NVIDIA的显卡驱动程序和CUDA是两个完全不同的概念!

CUDA 是NVIDIA推出的用于自家GPU的并行计算框架,也就是说 CUDA 只能在 NVIDIA的GPU 上运行,而且只有当要解决的计算问题是可以大量并行计算的时候才能发挥 CUDA 的作用,所以它就是个工具包(ToolKit)。

CUDA 安装包下载地址:https://developer.nvidia.com/cuda-toolkit-archive

点击链接即可进入如下页面,我们看到,有很多不同版本的 CUDA 。

截止2020/06/25,Tensorflow-gpu 所需的 CUDA 的安装,建议
直接下载 CUDA Toolkit 10.1 (Feb 2019), Online Documentation 即图中标红项

点进去后有一些对应版本的选择,建议选择 Local Install 本地安装,下载完了直接傻瓜安装,此处不赘述。假如出现类似安装MySQL安装时的软件依赖,按提示安装即可,不难,干就完了
在这里插入图片描述

三、cuDNN

cuDNN是一个SDK,是一个专门用于神经网络的加速包。
注意,cuDNN 跟 CUDA 没有一一对应的关系
即每一个版本的CUDA可能有好几个版本的cuDNN与之对应,但一般有一个最新版本的cuDNN版本与CUDA对应更好。
通俗来讲,CUDA 是 cuDNN的大哥。大哥有很多小弟,但二当家只有一个。

截止2020/06/25,Tensorflow-gpu 所需的 CUDA 的 cuDNN 的安装,建议点击链接
https://developer.nvidia.com/rdp/cudnn-archive
直接下载圈红项 Download cuDNN v7.6.5 (November 5th, 2019), for CUDA 10.1

如果需要登录,不妨注册个账号。
在这里插入图片描述
此处下载为ZIP压缩包,解压到想要的位置,将其bin路径配置PATH环境变量即安装完毕
在这里插入图片描述

四、Anaconda 虚拟环境

只要接触过 Python 必然知道 PycharmAnaconda ,关于 Anaconda 我们不多讲,此处就利用其虚拟环境来配置 Tensorflow-gpu 环境。
为什么要用虚拟环境呢?虚拟环境就相当于一个同学不同科目的笔记本,不同的本子记录不同的东西,自然安排的功能也就不一样。虚拟环境对于不同项目的配置以及各种包的管理十分思路清晰,不会杂乱。
另外,值得一提的是 Anaconda 命令行 的一系列操作。

贴个不错的帖子:
Anaconda虚拟环境管理 https://www.cnblogs.com/chenhuabin/p/10718471.html

五、Tensorflow-gpu安装

按下面一步步来,不要着急。

# 打开 Anaconda 命令行 Anaconda Prompt (Anaconda3)

# 检测目前安装了哪些环境

conda info --envs

# 创建对应Python版本的虚拟环境

conda create --name tensorflow-gpu python=3.8.3

# 激活刚刚创建的环境

activate tensorflow-gpu

# 直接 pip 安装 tensorflow-gpu , 截止目前2020/06/25自动安装 tf 2.2 版本

pip install tensorflow-gpu

另外,关于 windowspipconda 的换源,相关帖子已备好,等待君上食用。
点击即可 老狗——Windows os 的 pip & conda 换源(国内源,速度提升!)

六、安装有效性测试

  • 测试方法一:打开 Anaconda 的虚拟环境进入Python交互式命令行,复制粘贴代码运行。
  • 测试方法二:打开Pycharm
    file > setting > project:xxx > project interpreter > 配置测试项目的 project interpreter解释器为虚拟环境路径下的 python.exe,如下图。

在这里插入图片描述
测试代码一:

import tensorflow as tf
import timeit


with tf.device('/cpu:0'):
	cpu_a = tf.random.normal([10000, 1000])
	cpu_b = tf.random.normal([1000, 2000])
	print(cpu_a.device, cpu_b.device)

with tf.device('/gpu:0'):
	gpu_a = tf.random.normal([10000, 1000])
	gpu_b = tf.random.normal([1000, 2000])
	print(gpu_a.device, gpu_b.device)

def cpu_run():
	with tf.device('/cpu:0'):
		c = tf.matmul(cpu_a, cpu_b)
	return c 

def gpu_run():
	with tf.device('/gpu:0'):
		c = tf.matmul(gpu_a, gpu_b)
	return c 


# warm up
cpu_time = timeit.timeit(cpu_run, number=10)
gpu_time = timeit.timeit(gpu_run, number=10)
print('warmup:', cpu_time, gpu_time)


cpu_time = timeit.timeit(cpu_run, number=10)
gpu_time = timeit.timeit(gpu_run, number=10)
print('run time:', cpu_time, gpu_time)

输出类似下面:

 GPU (device: 0, name: GeForce 1060, pci bus id: 0000:02:00.0, compute capability: 6.1)
/job:localhost/replica:0/task:0/device:CPU:0 /job:localhost/replica:0/task:0/device:CPU:0
/job:localhost/replica:0/task:0/device:GPU:0 /job:localhost/replica:0/task:0/device:GPU:0
2020-06-25 22:11:16.634792: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cublas64_10.dll
warmup: 1.4536040000000003 0.4982911999999997
run time: 1.3492356 0.0006344000000000349

测试代码二:

import tensorflow as tf
import os

os.environ['TF_CPP_MIN_LOG_LEVEL']='2'

a = tf.constant(1.)
b = tf.constant(3.)
print(a+b)

print('GPU:', tf.test.is_gpu_available())

输出:

tf.Tensor(4.0, shape=(), dtype=float32)
.
.# 一大堆乱七八糟
.
1060, pci bus id: 0000:02:00.0, compute capability: 6.1) # GPU不同则不同
GPU: True

下面给一个我已经安装成功环境的进入和测试用例:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

七、CUDA & CUDNN 的卸载

测试提示Cannot found…或是其他不好使的错误。

如果需要卸载重装 CUDA,那么在下图矩形中,除了箭头标识的项目,全部卸载!

如果 cuDNN 又因此不对应了,重新下载解压对应版本,修改环境变量!

在这里插入图片描述

八、总结 Python & Tensorflow-gpu & 显卡 & CUDA & cuDNN 的版本对应关系

Python 是一门动态编程语言。
TensorFlow 是谷歌基于DistBelief进行研发的第二代人工智能学习系统,其命名来源于本身的运行原理。Tensor (张量)意味着N维数组,Flow (流)意味着基于数据流图的计算,TensorFlow为张量从流图的一端流动到另一端计算过程。TensorFlow是将复杂的数据结构传输至人工智能神经网中进行分析和处理过程的系统。

  • Python 对于 Tensorflow 的支持较为及时到位,截至2020/06/25Python 3.8.3Tensorflow 2.2 是完美契合的,且都是最新版。
  • 其次,显卡的能力决定了你能不能使用 GPU 来计算,水平够自然可以使用 CUDA & cuDNNcuDNN 跟 CUDA 没有一一对应的关系。每一个版本的 CUDA 可能有好几个版本的 cuDNN 与之对应,但一般有一个最新版本的 cuDNN 版本与 CUDA 对应更好。
  • Tensorflow 对于 CUDA 也是有要求的,目前Tensorflow 支持 CUDA 10.1TensorFlow 2.1.0 及更高版本),具体的我甩个链接,哥们儿们慢慢儿看。
    GPU支持 | TensorFlow https://tensorflow.google.cn/install/gpu?hl=zh_cn

另外,关于CUDA 工具包附带的 CUPTI 的相关问题,我安装时没用到,也没研究,等研究完再说吧。
此致,敬礼!

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值