【TensorFlow】P0 Windows GPU 安装 TensorFlow、CUDA Toolkit、cuDNN

Windows 安装 TensorFlow、CUDA Toolkit、cuDNN

  • 整体流程概述
    • TensorFlow 与 CUDA Toolkit
      • TensorFlow 是一个基于数据流图的深度学习框架
      • CUDA 充分利用 NIVIDIA GPU 的计算能力
      • CUDA Toolkit
    • cuDNN
  • 安装详细流程
    • 整理流程一:安装 CUDA Toolkit
      • 步骤一:获取CUDA版本信息
      • 步骤二:下载安装 CUDA Toolkit
      • 步骤三:按照默认步骤安装
      • 步骤四:检查CUDA安装成功
    • 整体流程二:安装cuDNN
      • 步骤一:下载 cuDNN
      • 步骤二:解压缩下载的 zip,并将其中的文件复制到 CUDA Toolkit 的相应目录
      • 步骤三:配置环境变量
    • 整体流程三:安装 TensorFlow-gpu
      • 步骤一:Anaconda中创建新的环境
      • 步骤二:查看下载 tensorflow-gpu 的版本号
      • 步骤三:检查整体流程安装成功
      • 步骤四:检查 cuDNN 安装成功可用


整体流程概述

TensorFlow 与 CUDA Toolkit

TensorFlow 是一个基于数据流图的深度学习框架

  • TensorFlow是一个基于数据流图的深度学习框架,它使用张量(Tensor)作为数据的基本单位,在GPU上进行张量运算可以极大地提高深度学习模型的训练和推理速度。而CUDA则提供了在GPU上执行高性能并行计算所需的API和运行时环境,能够实现深度学习任务的加速。

CUDA 充分利用 NIVIDIA GPU 的计算能力

  • 安装 TensorFlow 之前需要首先安装 CUDA,准确的说是 CUDA Toolkit。是因为 TensorFlow 使用 CUDA 作为其后端计算引擎。CUDA 是由 NVIDIA 提供的并行计算平台和编程模型,可以充分利用 NVIDIA GPU 的计算能力,实现高性能的并行计算。

CUDA Toolkit

  • 即 TensorFlow 默认会安装与系统和 GPU 兼容的版本,这需要依赖 CUDA Toolkit。CUDA Toolkit 包含 GPU 驱动程序、CUDA Runtime 库和相关工具,使 TensorFlow 能够与 NVIDIA GPU 进行交互并利用其计算能力。

cuDNN

  • 在安装 TensorFlow 之前需要安装 cuDNN(CUDA Deep Neural Network library),是因为 TensorFlow 使用 cuDNN 来加速深度神经网络的计算。cuDNN 是由 NVIDIA 开发的用于深度学习的 GPU 加速库,它针对深度神经网络的计算任务进行了高度优化,可以显著加快训练和推理过程。

  • TensorFlow 通过调用 cuDNN 的 API 来利用 GPU 上的硬件加速功能,特别是在卷积操作等深度学习任务中,cuDNN 能够提供很大的性能提升。在没有 cuDNN 的情况下,TensorFlow 会使用 CPU 来执行这些计算任务,但是由于 CPU 的计算速度相对较慢,处理大规模的深度学习模型时可能会非常耗时。


安装详细流程

在这里插入图片描述

整理流程一:安装 CUDA Toolkit

步骤一:获取CUDA版本信息

桌面 > 右键 > NVIDIA控制面板 > 查看系统信息 > 点击组件 > 查看 NVCUDA64.DLL 的 CUDA版本 > 成功获取CUDA版本信息;

在这里插入图片描述


步骤二:下载安装 CUDA Toolkit

访问 CUDA Toolkit Archive https://developer.nvidia.com/cuda-toolkit-archive 下载对应版本的 CUDA Toolkit,根据步骤一中的 CUDA 版本信息(例如我的CUDA版本为12.0.134),选择下载 Toolkit 版本:

在这里插入图片描述

并开始下载,耐心等待10分钟;

在这里插入图片描述


步骤三:按照默认步骤安装

按照向导进行安装即可;

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
请添加图片描述


步骤四:检查CUDA安装成功

安装完成后,你可以在命令提示符或 PowerShell 中输入以下命令来验证 CUDA 是否成功安装:

nvcc -V

或者同:

nvcc --version

在这里插入图片描述

如果安装成功,将会输出 CUDA 的版本号。下面我们进行安装 cuDNN;


整体流程二:安装cuDNN

步骤一:下载 cuDNN

  • 访问 cuDNN 下载网址:https://developer.nvidia.com/rdp/cudnn-download;

  • 出现下图界面说明你需要首先登陆你的 NIVIDIA 账户;

在这里插入图片描述

  • 出现如下界面,需要根据本机的 CUDA 版本选择安装,如何获取本机的 CUDA 版本?如下:

获取CUDA版本信息:
桌面 > 右键 > NVIDIA控制面板 > 查看系统信息 > 点击组件 > 查看 NVCUDA64.DLL 的 CUDA版本 > 成功获取CUDA版本信息,即 12.x

在这里插入图片描述

  • 根据上述获得的 CUDA 版本信息,选择下载 12.x 版本的cuDNN;

在这里插入图片描述

步骤二:解压缩下载的 zip,并将其中的文件复制到 CUDA Toolkit 的相应目录

  • 解压缩后应该包含三个文件夹和一个文件:
    binincludelibLICENSE

在这里插入图片描述

  • 将三个文件夹中的文件分别复制到各自的 CUDA Toolkit 目录中
    • 首先打开 bin 文件夹:
      在这里插入图片描述
      复制全部文件,粘贴到 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.0\bin 文件夹中;

    • 然后打开 include 文件夹:
      在这里插入图片描述
      同样复制全部文件,粘贴到 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.0\include 文件夹中;

    • 最后打开 lib\x64 文件夹:
      在这里插入图片描述
      将全部文件粘贴到 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.0\lib\x64 文件夹中;

步骤三:配置环境变量

  • 确保将 CUDA 和 cuDNN 的安装路径添加到系统的环境变量中,这样 TensorFlow 才能正确地找到这些库和头文件;
  • cuDNN 中不会默认配置环境变量,需要读者手动配置环境变量:
  • 首先打开 环境变量 path 栏目:

在这里插入图片描述

  • 将解压缩后的 cuDNN 文件夹的 \bin 绝对地址复制粘贴:
    C:\Users\xhong\Downloads\cudnn-windows-x86_64-8.9.3.28_cuda12-archive\cudnn-windows-x86_64-8.9.3.28_cuda12-archive\bin

在这里插入图片描述

完成!

cuDNN的完成检查需要等待下一步 tensorflow-gpu 安装完成后;


整体流程三:安装 TensorFlow-gpu

  • 在安装完 cuDNN 后,再安装 TensorFlow 时,TensorFlow 将能够识别到你的 cuDNN 并自动与之集成,从而在 GPU 上运行深度学习任务时获得显著的加速效果。总之,安装cuDNN是为了充分发挥GPU的计算能力,提高TensorFlow的性能和效率,特别是在处理复杂的深度学习模型时,cuDNN的优化可以为你节省大量时间。

步骤一:Anaconda中创建新的环境

  • 建议在 Anaconda Prompt 中创建一个新的环境,因为我的 base 环境已经安装好了 gpu 版本的 torch,而且如果都放在一个环境中更新环境会比较耗时;

  • 创建环境 tensorflow

    conda create -n tensorflow pip python=3.8
    
  • 激活环境 tensorflow

    activate tensorflow
    

    在这里插入图片描述

步骤二:查看下载 tensorflow-gpu 的版本号

https://www.tensorflow.org/install/source_windows?hl=zh-cn
网址最下方有一个表格,列有 GPU 的 CUDA、cuDNN 对照的安装的 tensorflow-gpu 版本号

在这里插入图片描述

  • 很明显,根据我的 cuDNN(8.9.3.28) 与 CUDA(12.0.134) 版本的短板效应,我稳妥选择 tensorflow_gpu-2.4.0 版本,建议读者到这里也这么选择,稳定能用就是了;

  • 输入命令:

    pip install --ignore-installed --upgrade tensorflow_gpu==2.4.0
    # 注意将2.4.0替换为你的版本号
    

等待安装完成!

步骤三:检查整体流程安装成功

  • 打开 Pycharm,记得将环境从 base 切换到刚刚创建配置的 tensorflow:

    import tensorflow as tf# 检查是否有可用的 GPU 设备
    if tf.config.list_physical_devices('GPU'):print('GPU可用')
    else:print("GPU不可用")
    

    在这里插入图片描述

  • 出现上图所示 True,即完成安装步骤,若出现 curand64_10.dll is not found 等标识,即说明下载安装相关 CUDA Toolkit 版本出现意外错误,解决办法为通过将文件中已含有的 curand64_11.dll 文件重命名可解决问题,如下图所示:

    在这里插入图片描述

  • bin文件目录地址为:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.0\bin

  • 安装 CUDA 后,再安装 TensorFlow 时,TensorFlow 将会自动与 CUDA 进行集成,并在 GPU 上利用 CUDA 的功能来加速深度学习任务。这样,TensorFlow 能够更高效地执行张量计算,从而显著提高模型训练和推理的速度。

步骤四:检查 cuDNN 安装成功可用

import tensorflow as tf# 检查TensorFlow-gpu是否可用
print("TensorFlow-gpu available:", tf.test.is_gpu_available())# 检查cuDNN是否可用
print("cuDNN version:", tf.config.list_physical_devices('GPU'))

在这里插入图片描述
完结撒花!!!!~~~~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/36760.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

XML 数据传输格式

目录 XML简介 一、初识XML 1.什么是 XML? 2.XML 和 HTML 之间的差异 3.XML 不会做任何事情 4.通过 XML 您可以发明自己的标签 5.XML 不是对 HTML 的替代 二、XML 用途 1.XML 把数据从 HTML 分离 2.XML 简化数据共享 3.XML 简化数据传输 三、XML 树结构 1.一个 XML 文…

QML HTTP 请求

作者: 一去、二三里 个人微信号: iwaleon 微信公众号: 高效程序员 在 Web 开发中,实现与服务器的通信至关重要,其中 HTTP 便是最常用的方式之一。它是一种客户端 - 服务器协议,客户端向服务器发送请求,服务器则返回响应。常被用于在浏览器/客户端和 Web 服务器之间传输消…

1. 如何爬取自己的CSDN博客文章列表(获取列表)(博客列表)(手动+python代码方式)

文章目录 写在最前步骤打开chrome浏览器,登录网页按pagedown一直往下刷呀刷呀刷,直到把自己所有的博文刷出来然后我们按F12,点击选取元素按钮然后随便点一篇博文,产生如下所示代码然后往上翻,找到头,复制然…

Java-类型和变量(基于C语言的补充)

一个简单的Java程序 args){ System.out.println("Hello,world"); } }通过上述代码,我们可以看到一个完整的Java程序的结构,Java程序的结构由如下三个部分组成: 1.源文件(扩展名为*.java):源文件带有类的定义…

[保研/考研机试] KY7 质因数的个数 清华大学复试上机题 C++实现

描述 求正整数N(N>1)的质因数的个数。 相同的质因数需要重复计算。如1202*2*2*3*5&#xff0c;共有5个质因数。 输入描述&#xff1a; 可能有多组测试数据&#xff0c;每组测试数据的输入是一个正整数N&#xff0c;(1<N<10^9)。 输出描述&#xff1a; 对于每组数…

leetcode 6914. 翻倍以链表形式表示的数字

给你一个 非空 链表的头节点 head &#xff0c;表示一个不含前导零的非负数整数。 将链表 翻倍 后&#xff0c;返回头节点 head 。 示例 1&#xff1a; 输入&#xff1a;head [1,8,9] 输出&#xff1a;[3,7,8] 解释&#xff1a;上图中给出的链表&#xff0c;表示数字 189 。返…

Photoshop快捷键大全

Photoshop是一款非常强大的图像处理软件&#xff0c;它提供了许多快捷键&#xff0c;可以帮助用户更快地完成操作。熟练掌握这些快捷键&#xff0c;可以大大提高工作效率&#xff0c;让您更加专注于创作。 Photoshop快捷键汇总&#xff1a; 一、基本操作快捷键 1. 新建文档…

什么是CSS中的渐变(gradient)?如何使用CSS创建线性渐变和径向渐变?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 渐变&#xff08;Gradient&#xff09;在CSS中的应用⭐ 线性渐变&#xff08;Linear Gradient&#xff09;语法&#xff1a;示例&#xff1a; ⭐ 径向渐变&#xff08;Radial Gradient&#xff09;语法&#xff1a;示例&#xff1a; ⭐ 写…

第06天 静态代理和动态代理

✅作者简介&#xff1a;大家好&#xff0c;我是Leo&#xff0c;热爱Java后端开发者&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;Leo的博客 &#x1f49e;当前专栏&#xff1a;每天一个知识点 ✨特色专栏&#xff1a…

【ARM Cache 系列文章 9 番外篇 -- ARMv9 系列 Core 介绍】

文章目录 ARMv9 系列CoreARM Cortex-A510 介绍ARM Cortex-A715ARM Cortex-A720 ARMv9 系列Core 2021年5月Arm公布了其最新3款CPU和3款GPU核心设计&#xff0c;三款新CPU分别是旗舰核心Cortex-X2、高性能核心Cortex-A710、高能效核心Cortex-A510 CPU&#xff0c;三款新GPU核心则…

【Unity每日一记】向量操作摄像机的移动(向量加减)

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a;uni…

TCP消息传输可靠性保证

TCP链接与断开 -- 三次握手&四次挥手 三次握手 TCP 提供面向有连接的通信传输。面向有连接是指在数据通信开始之前先做好两端之间的准备工作。 所谓三次握手是指建立一个 TCP 连接时需要客户端和服务器端总共发送三个包以确认连接的建立。在socket编程中&#xff0c;这一…

面试热题(合并K个升序链表)

给定一个链表数组&#xff0c;每个链表都已经按升序排列。 请将所有链表合并到一个升序链表中&#xff0c;返回合并后的链表。 输入&#xff1a;lists [[1,4,5],[1,3,4],[2,6]] 输出&#xff1a;[1,1,2,3,4,4,5,6] 解释&#xff1a;链表数组如下&#xff1a; [1->4->5,1…

【软件工程】面向对象方法-RUP

RUP&#xff08;Rational Unified Process&#xff0c;统一软件开发过程&#xff09;。 RUP特点 以用况驱动的&#xff0c;以体系结构为中心的&#xff0c;迭代增量式开发 用况驱动 用况是能够向用户提供有价值结果的系统中的一种功能用况获取的是功能需求 在系统的生存周期中…

uni-app日期选择器

写个简单的日期选择器&#xff0c;还没搞样式&#xff0c;所以有点丑 大概长这样吧 首先是这个picker选择器&#xff0c;mode选择日期&#xff0c;end是写一个范围前日期&#xff0c;:end就是这个日期是动态变化的&#xff0c;还有change函数 <template><view>&l…

【pinia】Pinia入门和基本使用:

文章目录 一、 什么是pinia二、 创建空Vue项目并安装Pinia1. 创建空Vue项目2. 安装Pinia并注册 三、 实现counter四、 实现getters五、 异步action六、 storeToRefs保持响应式解构七、基本使用&#xff1a;【1】main.js【2】store》index.js【3】member.ts 一、 什么是pinia P…

安达发APS|生产计划排产软件助力加工制造业智能化转型

随着全球经济一体化的不断深入&#xff0c;市场竞争日益激烈&#xff0c;加工制造企业面临着巨大的生存压力。在这种情况下&#xff0c;企业对于生产计划的精细化管理需求日益迫切。为了适应这一市场需求&#xff0c;安达发推出了专门针对加工企业的APS生产计划排产软件&#x…

新一代构建工具 maven-mvnd

新一代构建工具 maven-mvnd mvnd的前世今生下载安装 mvndIDEA集成 mvnd的前世今生 maven 作为一代经典的构建工具&#xff0c;流行了很多年&#xff0c;知道现在依然是大部分Java项目的构建工具的首选&#xff1b;但随着项目复杂度提高&#xff0c;代码量及依赖库的增多使得ma…

简单易懂的 Postman Runner 参数自增教程

目录 什么是 Postman Runner&#xff1f; Postman Runner 如何实现参数自增&#xff1f; 步骤一&#xff1a;设置全局参数 步骤二&#xff1a;将全局参数带入请求参数 步骤三&#xff1a;实现参数自增 资料获取方法 什么是 Postman Runner&#xff1f; Postman Runner 是…

Python爬虫(1)一次性搞定Selenium(新版)8种find_element元素定位方式

selenium中有8种不错的元素定位方式&#xff0c;每个方式和应用场景都不一样&#xff0c;需要根据自己的使用情况来进行修改 8种find_element元素定位方式 1.id定位2.CSS定位3.XPATH定位4.name定位5.class_name定位6.Link_Text定位7.PARTIAL_LINK_TEXT定位8.TAG_NAME定位总结 …