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

1.基本介绍

1.1 Nvidia GPU, Tensorflow与Python的关系

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

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

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

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

3.2 GPU的配备需求

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

请至Nvidia官网查看你的GPU性能,如下图;
在这里插入图片描述

如果使用时笔记本电脑,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

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

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/ 下载后直接安装

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

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

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

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

2.3 安装Anaconda

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

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

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

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版本

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

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

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

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

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

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

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(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())

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

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版本
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MrGhgPF6-1640053704111)(C:\Users\hbwhx\Desktop\懂的通信\10_智能计费\01_数据EDA\03_Kaggle(网页流量预测)]\04_tensorflow_environment\在Windows系统搭建TensorFlow-GPU环境.assets\image-20211221101258387.png)
在这里插入图片描述

2. 创建新的虚拟环境 conda create --name tf_2.3_py_3.7 python=3.7
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LfzJXuyT-1640053704112)(C:\Users\hbwhx\Desktop\懂的通信\10_智能计费\01_数据EDA\03_Kaggle(网页流量预测)]\04_tensorflow_environment\在Windows系统搭建TensorFlow-GPU环境.assets\image-20211221101740468.png)
3. 进入虚拟环境 activate tf_2.3_py_3.7,执行pip install tensorflow-gpu==2.3.0
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-POFUFuJh-1640053704112)(C:\Users\hbwhx\Desktop\懂的通信\10_智能计费\01_数据EDA\03_Kaggle(网页流量预测)]\04_tensorflow_environment\在Windows系统搭建TensorFlow-GPU环境.assets\image-20211221101806886.png)
4. 安装CUDA&cuDNN 通过conda list --> 查看安装的包情况 conda install cudatoolkit=10.1 & conda install cudnn
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ccUMc8eL-1640053704113)(C:\Users\hbwhx\Desktop\懂的通信\10_智能计费\01_数据EDA\03_Kaggle(网页流量预测)]\04_tensorflow_environment\在Windows系统搭建TensorFlow-GPU环境.assets\image-20211221101836278.png)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xE4i1m3W-1640053704114)(C:\Users\hbwhx\Desktop\懂的通信\10_智能计费\01_数据EDA\03_Kaggle(网页流量预测)]\04_tensorflow_environment\在Windows系统搭建TensorFlow-GPU环境.assets\image-20211221101913909.png)
5. 通过conda list --> 查看安装CUDA&cuDNN是否安装成功
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yWaU7BmJ-1640053704114)(C:\Users\hbwhx\Desktop\懂的通信\10_智能计费\01_数据EDA\03_Kaggle(网页流量预测)]\04_tensorflow_environment\在Windows系统搭建TensorFlow-GPU环境.assets\image-20211221101936971.png)
6. 测试能否找到GPU配置
CMD输入:python

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

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

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
在这里插入图片描述

5.总结

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

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值