安装TensorFlow

TensorFlow2 安装

TensorFlow2.10.0后,Windows平台便不再支持直接调用GPU,想要在Windows平台使用GPU要么通过WSL,或者使用2.10.0版本。本文将介绍如何安装TensorFlow2.10.0-GPU


下载安装包

安装TensorFlow-GPU需要用到CUDA驱动,cuDnn这个两个都是需要下载的,问题就出现在下载哪个版本的安装包才行。

版本不能随意组合,可以根据官网上的来,也可以自己寻找到可以组合的版本,我这里使用的是CUDA11.7+cuDNN8.5+TensorFlow2.10.0

官网:组合列表(下拉到最下面就能看见)

image-20231122105747801

首先是需要确认英伟达(NVIDIA)显卡的情况,有CUDA核心(这个绝大多数NVIDIA显卡都有)

可以用这个命令查看nvidia-smi

image-20231122104815833

如果支持的最高CUDA版本太低了,就更新显卡驱动。

下载CUDA

下载CUDA11.7.1

官网:CUDA Toolkit 11.7 Update 1 Downloads | NVIDIA Developer

官网访问有点慢,可以使用代理加速,但是下载是不用代理的,下载速度很快

image-20231122110112106

下载cuDNN

下载cuDNN8.5.0(注意是for CUDA11.X的8.5.0)

官网:cuDNN Archive | NVIDIA Developer

image-20231122110606885

下载完成

image-20231122110539984


安装依赖

主要有两部分,一个是安装CUDA和cuDNN,还有就是添加系统路径

安装CUDA

点击安装包,这里会提示解压目录,怎么样都行,安装完了他会自己删除的

image-20231122111111637

直接精简安装,要记住自己安装CUDA的位置,这个很重要

image-20231122111303152

最后一路next就行了

安装cuDNN

把下载好的cuDNN解压出来

image-20231122111815379

这三个文件夹里的文件需要放进CUDA安装目录下的同名文件

也就是cuDNN解压出来的bin文件夹里面的文件,需要复制到CUDA安装路径里面的bin文件夹下,其他三个同理。

image-20231122112059613

添加路径

一般安装好了,路径也会自己添加上去的,这里可以使用命令nvcc -V进行查看,电脑需要重启,信息才会更新。

image-20231122112417826

最后一行出现了CUDA的版本,就算是成功了,如果没有,可能就是路径没有添加。

可以在系统里面看看情况

image-20231122113549474

在Path里面

image-20231122113642103

还可以添加

1
2
3
4
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7\libnvvp
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7\bin
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7\include
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7\lib

可以参考这篇文章,环境变量的添加在后面window11系统CUDA、cuDNN 安装以及环境变量配置_cuda环境变量怎么设置_QuietNightThought的博客-CSDN博客


安装TensorFlow

在此之前需要安装Anaconda或者miniconda,推荐后者。这是一个创建Python虚拟环境的软件,就不过多介绍了,也不讲怎么安装。提这个最主要的目的就是,安装TensorFlow的环境,一定是一个新环境,没有安装过任何包(可能会和TensorFlow发生版本冲突)安装好TensorFlow之后才能安装别的包,如果有了这些软件,那就创建一个新的虚拟环境。

conda create -n 虚拟环境名 python=3.8.5

因为我们要安装2.10.0版本的TensorFlow,所以不能直接使用官网的指令,这样会下载最新的版本,不能直接使用GPU

pip install --upgrade tensorflow

我们要使用这个指令

pip install tensorflow-gpu==2.10.0

image-20231122130000447

这样应该就安装好了

测试安装

测试TensorFlow 是否安装成功_验证tensorflow安装成功-CSDN博客


结束

运行以下代码,看一下GPU和CPU运行速度的差距

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import tensorflow as tf
import timeit
#指定在cpu上运行
def cpu_run():
with tf.device('/cpu:0'):
cpu_a = tf.random.normal([10000, 1000])
cpu_b = tf.random.normal([1000, 2000])
cpu_c = tf.matmul(cpu_a, cpu_b)
# print( "cpu_a: ", cpu_a.device)
# print( "cpu_b: ", cpu_b.device)
# print("cpu_c:", cpu_c.device)
return cpu_c

#指定在gpu上运行

def gpu_run():
with tf.device( '/gpu:0'):
gpu_a = tf.random. normal([ 10000,1000])
gpu_b = tf.random. normal([ 1000, 2000])
gpu_c = tf.matmul(gpu_a, gpu_b)
# print( "gpu_a: ", gpu_a.device)
# print("gpu_b: ", gpu_b.device)
# print("gpu_c: ", gpu_c.device)
return gpu_c

cpu_time = timeit.timeit(cpu_run, number = 10)
gpu_time = timeit.timeit(gpu_run, number = 10)
print('cpu:',cpu_time, 'gpu:',gpu_time)

一次不明显就多跑几次

image-20231122113145039