GPU运行Tensorflow详细教程及错误解决

GPU运行Tensorflow详细教程及错误解决

前提条件

最重要的一点:CUDA与tensorflow的版本一点要对应,不然用不了!
首先在系统搜索NVIDIA进入该控制面板,查看驱动版本

GPU运行Tensorflow详细教程及错误解决
GPU运行Tensorflow详细教程及错误解决
之后进入官网下载CUDA与CUDnn(这两个是配套的,都要安装CUDNN下载回比较麻烦,需要注册)
CUDA官网下载地址:
https://developer.nvidia.com/cuda-toolkit-archive
CUDNN官网下载地址:https://developer.nvidia.com/rdp/cudnn-archive

下载后安装CUDA,需要注意第一个安装界面出现的文件路径是解压路径(如下图),这个不用改,安装结束后系统会自动删除

GPU运行Tensorflow详细教程及错误解决
而文件真正的安装路径在我们后续选择安装的项目才出现(这时一般会弹出三个路径,可以改也可以不改,我个人是把它改了,改完后要记住这个路径,后续可能会用到),到选择安装那一步时只需要选择CUDA这个选项即可,其他都不用选。

安装完毕后解压下载的CUDNN,里面会有以下几个文件

GPU运行Tensorflow详细教程及错误解决
复制这几个文件,直接粘贴到CUDA的安装文件夹下,粘贴时系统提示有重复文件就直接选择替换文件
GPU运行Tensorflow详细教程及错误解决
然后在命令行输入nvcc -V,有出现以下的版本信息就OK了,若没有出现则是环境变量没有配置好
GPU运行Tensorflow详细教程及错误解决
若系统没有知道配置好则需要手动配置,在系统环境变量PATH添加以下几个,其中画黄线的部分就是刚刚CUDA的安装路径(系统默认的安装路径为C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA)
GPU运行Tensorflow详细教程及错误解决
配置完成后在运行nvcc -V就发现可以了

接着打开命令行,若下载cpu版本则输入:pip inatall tensorflow
gpu版本则输入:pip install tensorflow-gpu
等待安装完毕后在命令行输入python,接着输入import tensorflow,系统出现下图中的这行文字未报错,或是什么提示都没有就说明安装成功了。

GPU运行Tensorflow详细教程及错误解决

; 配置GPU运行

在运行的代码前面加上以下代码

import os
os.environ["CUDA_DEVICES_ORDER"] = "PCI_BUS_IS"
os.environ["CUDA_VISIBLE_DEVICES"] = "0"

若在终端与运行可以打开文件所在路径然后输入以下代码运行

CUDA_VISIBLE_DEVICES=1,2  python XXX.py

确认是否成功配置

1.打开python编译器,或者命令行输入python,然后输入以下代码

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

系统既有CPU又有GPU信息说明配置成功。

GPU运行Tensorflow详细教程及错误解决
2.

打开命令行输入nvidia-smi命令就可以查看当前CPU与GPU信息了,一般在运行过程中我们会输入nvidia-smi –l命令让其默认没5秒刷新一次,查看程序运行过程中系统的变化(可按Ctrl+C停止)。

GPU运行Tensorflow详细教程及错误解决
其他命令:nvidia-smi –l xxx(指定刷新频率,单位为S)
nvidia-smi –f xxx(将查询的信息输出到具体的文件中,不在终端显示)

查看python路径:where python
查看python版本:python -V 或 python –version
查看tensorflow版本与路径:

import tensorflow as tf
print(tf.__version__)
print(tf.__path__)

出现的错误及解决方案

1.仍然运行很慢,仔细检查会发现在运行窗口中有如下错误:
tensorflow-keras: Layer lstm will not use cuDNN kernel since it doesn’t meet the cuDNN kern
这是由于不符合LSTM网络的gpu运行规范所导致的,基础题规范见下图

GPU运行Tensorflow详细教程及错误解决
由于其中大多数参数不填默认为标准值,只有recurrent_activation与activation参数经常会被修改,因此我们要将代码中的LSTM网络这些参数进行修改或直接删除,如下,只保留输出维度与激活函数,这样就不会报错了,可以正常GPU运行了。
tf.keras.layers.LSTM(16,recurrent_activation='sigmoid')

Original: https://blog.csdn.net/qq_43605229/article/details/118423613
Author: Lin-CT
Title: GPU运行Tensorflow详细教程及错误解决

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/520586/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球