1.Python为最上层的结构,透过Tensorflow的框架(或是想成函式库)进行深度学习;
2.Tensorflow透过CUDA Toolkit来连接GPU,让GPU的众多核心能够接受指令实际地执行运算;
3.cuDNN则是Nvidia针对深度神经网路提供的加速器。
如果使用时笔记本电脑,GPU是MX150或是MX系列的在表中找不到,在Nvidia网站的其他地方也找不到,只有在他们的讨论区有看到提问,但可以在wikipedia是找的到喔!
基本信息:笔记本电脑 显卡:NVIDIA MX450,支持CUDA版本:11.5
安装版本信息:tensorflow:2.5 pyhton:3.7 Anaconda 3.5.3
查看显卡信息cmd:nvidia-smi
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/ 下载后直接安装
Anaconda可以建立多个虚拟环境,在不同的环境下可以安装不同版本的python、不同版本的TensorFlow,在安装TensorFlow的同时,会依据版本来安装对应的CUDA toolkit and cuDNN。
获取地址:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
Anaconda与Python版本对应关系参考链接:https://blog.csdn.net/yuejisuo1948/article/details/81043823
1.cmd输入命令:conda search tensorflow-gpu --> 查看最新的tensorflow-gpu版本
2.cmd输入命令:conda create --name tf_2.5_py_3.7 python=3.7 --> 创建新的虚拟环境(tf_2.5_py_3.7)
4.cmd输入命令:activate tf_2.5_py_3.7 --> 激活虚拟环境tf_2.5_py_3.7,并输入命令conda list 查看python版本
5. cmd输入命令:conda install tensorflow-gpu=2.5 --> 安装Tensorflow-GPU 2.5版本
6. 测试是否安装成功
cmd输入:python
# 出现GPU资讯表示安装成功;若失败,可以查看是否有dll开启失败
from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())
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版本
2. 创建新的虚拟环境 conda create --name tf_2.3_py_3.7 python=3.7
3. 进入虚拟环境 activate tf_2.3_py_3.7,执行pip install tensorflow-gpu==2.3.0
4. 安装CUDA&cuDNN 通过conda list --> 查看安装的包情况 conda install cudatoolkit=10.1 & conda install cudnn
5. 通过conda list --> 查看安装CUDA&cuDNN是否安装成功
6. 测试能否找到GPU配置
CMD输入:python
from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())
测试程式来源: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的专属记忆体使用量会大幅上升。
1.理解Nvidia GPU, Tensorflow与Python之间的关系,有助于后续的安装
2.对于不同版本TensorFlow对应的GPU的算力要求要有清晰的认识
3.了解机器的显卡基本信息,包括能安装对应的TensorFlow的版本
4.conda方式与pip方式的安装差异在于CUDA&cuDNN是否配套安装