在Windows系统搭建TensorFlow2.x-GPU环境

1.基本介绍

1.1 Nvidia GPU, Tensorflow与Python的关系

1.Python为最上层的结构,透过Tensorflow的框架(或是想成函式库)进行深度学习;

2.Tensorflow透过CUDA Toolkit来连接GPU,让GPU的众多核心能够接受指令实际地执行运算;

3.cuDNN则是Nvidia针对深度神经网路提供的加速器。

在Windows系统搭建TensorFlow2.x-GPU环境_第1张图片

3.2 GPU的配备需求

  • Tensorflow-gpu < 2.0, CUDA compute Capability 3.0
  • Tensorflow-gpu >=2.0, CUDA compute Capability 3.5

请至Nvidia官网查看你的GPU性能,如下图;
在Windows系统搭建TensorFlow2.x-GPU环境_第2张图片

如果使用时笔记本电脑,GPU是MX150或是MX系列的在表中找不到,在Nvidia网站的其他地方也找不到,只有在他们的讨论区有看到提问,但可以在wikipedia是找的到喔!

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DXhxTU45-1640053704103)(C:\Users\hbwhx\Desktop\懂的通信\10_智能计费\01_数据EDA\03_Kaggle(网页流量预测)]\04_tensorflow_environment\在Windows系统搭建TensorFlow-GPU环境.assets\image-20211221095033334.png)

2.安装过程

2.1 本机基本信息

基本信息:笔记本电脑 显卡:NVIDIA MX450,支持CUDA版本:11.5

安装版本信息:tensorflow:2.5 pyhton:3.7 Anaconda 3.5.3

查看显卡信息cmd:nvidia-smi

在Windows系统搭建TensorFlow2.x-GPU环境_第3张图片

2.2 安装GPU

Tensorflow-GPU与CUDA、cuDNN的版本相依关系

按照图示步骤依次进行即可,下载完成直接安装即可

注意事项:如果你的GPU是RTX30系列(例如RTX3060、RTX3070、RTX3080、RTX3090),CUDA仅支持11版以上,即是:Tensorflow仅能安装2.4版以上!!

GPU驱动下载地址:https://www.nvidia.com.tw/Download/index.aspx?lang=tw
不更新到最新版本的地址:https://www.nvidia.com/en-us/geforce/drivers/ 下载后直接安装

在Windows系统搭建TensorFlow2.x-GPU环境_第4张图片

在Windows系统搭建TensorFlow2.x-GPU环境_第5张图片
下载GPU
在Windows系统搭建TensorFlow2.x-GPU环境_第6张图片

在Windows系统搭建TensorFlow2.x-GPU环境_第7张图片

在Windows系统搭建TensorFlow2.x-GPU环境_第8张图片

2.3 安装Anaconda

Anaconda可以建立多个虚拟环境,在不同的环境下可以安装不同版本的python、不同版本的TensorFlow,在安装TensorFlow的同时,会依据版本来安装对应的CUDA toolkit and cuDNN。

获取地址:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/

在Windows系统搭建TensorFlow2.x-GPU环境_第9张图片

Anaconda与Python版本对应关系参考链接:https://blog.csdn.net/yuejisuo1948/article/details/81043823

2.4 安装TensorFlow-GPU

2.4.1 conda install方式

1.cmd输入命令:conda search tensorflow-gpu --> 查看最新的tensorflow-gpu版本

在Windows系统搭建TensorFlow2.x-GPU环境_第10张图片

2.cmd输入命令:conda create --name tf_2.5_py_3.7 python=3.7 --> 创建新的虚拟环境(tf_2.5_py_3.7)

在Windows系统搭建TensorFlow2.x-GPU环境_第11张图片

4.cmd输入命令:activate tf_2.5_py_3.7 --> 激活虚拟环境tf_2.5_py_3.7,并输入命令conda list 查看python版本

在Windows系统搭建TensorFlow2.x-GPU环境_第12张图片

5. cmd输入命令:conda install tensorflow-gpu=2.5 --> 安装Tensorflow-GPU 2.5版本

在Windows系统搭建TensorFlow2.x-GPU环境_第13张图片

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-miDDDT1s-1640053704110)(C:\Users\hbwhx\Desktop\懂的通信\10_智能计费\01_数据EDA\03_Kaggle(网页流量预测)]\04_tensorflow_environment\在Windows系统搭建TensorFlow-GPU环境.assets\image-20211221101013860.png)

6. 测试是否安装成功

cmd输入:python

#  出现GPU资讯表示安装成功;若失败,可以查看是否有dll开启失败
from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())

在Windows系统搭建TensorFlow2.x-GPU环境_第14张图片

2.4.2 pip install方式

pip install 安装的原因:
1.使用conda install安装的tf有问题,例如安装tf2.3后,进行测试是抓不到GPU的

2. 当anaconda还未提供最新版的Tensorflow时

以下会以安装tf2.3为例,cuDNN 7.6 CUDA 10.1

1. 搜索pip install tensorflow-gpu,点击PyPI网页,选择对应的TensorFlow版本
在Windows系统搭建TensorFlow2.x-GPU环境_第15张图片
在Windows系统搭建TensorFlow2.x-GPU环境_第16张图片

2. 创建新的虚拟环境 conda create --name tf_2.3_py_3.7 python=3.7
在Windows系统搭建TensorFlow2.x-GPU环境_第17张图片
3. 进入虚拟环境 activate tf_2.3_py_3.7,执行pip install tensorflow-gpu==2.3.0
在Windows系统搭建TensorFlow2.x-GPU环境_第18张图片
4. 安装CUDA&cuDNN 通过conda list --> 查看安装的包情况 conda install cudatoolkit=10.1 & conda install cudnn
在Windows系统搭建TensorFlow2.x-GPU环境_第19张图片
在Windows系统搭建TensorFlow2.x-GPU环境_第20张图片
5. 通过conda list --> 查看安装CUDA&cuDNN是否安装成功
在Windows系统搭建TensorFlow2.x-GPU环境_第21张图片
6. 测试能否找到GPU配置
CMD输入:python

from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())

在Windows系统搭建TensorFlow2.x-GPU环境_第22张图片
在Windows系统搭建TensorFlow2.x-GPU环境_第23张图片

4.测试案例

测试程式来源:tensorflow官网教学的Basic Image classification,简化后的程式如下

from __future__ import absolute_import, division, print_function, unicode_literals

# TensorFlow and tf.keras
import tensorflow as tf
from tensorflow import keras

# Helper libraries
import numpy as np
# import matplotlib.pyplot as plt

print(tf.__version__)

fashion_mnist = keras.datasets.fashion_mnist

(train_images, train_labels), (test_images, test_labels) = fashion_mnist.load_data()

train_images = train_images / 255.0

test_images = test_images / 255.0

model = keras.Sequential([
    keras.layers.Flatten(input_shape=(28, 28)),
    keras.layers.Dense(128, activation='relu'),
    keras.layers.Dense(10, activation='softmax')
])

model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])

model.fit(train_images, train_labels, epochs=10)

test_loss, test_acc = model.evaluate(test_images,  test_labels, verbose=2)

print('\nTest accuracy:', test_acc)

在执行程式的同时,可以在资源管理器–>性能,查看GPU的使用程度。

以下图为例,要查看的是GPU 1(Nvidia的GPU),而不是GPU 0,这是CPU的内部显示的资源,不是用在训练上的。

正常情况下,GPU的专属记忆体使用量会大幅上升。

如果是CPU的资源拉到100%,表示该训练没有使用到GPU,而是使用CPU
在Windows系统搭建TensorFlow2.x-GPU环境_第24张图片

5.总结

1.理解Nvidia GPU, Tensorflow与Python之间的关系,有助于后续的安装

2.对于不同版本TensorFlow对应的GPU的算力要求要有清晰的认识

3.了解机器的显卡基本信息,包括能安装对应的TensorFlow的版本

4.conda方式与pip方式的安装差异在于CUDA&cuDNN是否配套安装

你可能感兴趣的:(tensorflow,windows,tensorflow,深度学习)