当前位置: 首页 > news >正文

【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'))

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

相关文章:

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

Windows 安装 TensorFlow、CUDA Toolkit、cuDNN 整体流程概述TensorFlow 与 CUDA ToolkitTensorFlow 是一个基于数据流图的深度学习框架CUDA 充分利用 NIVIDIA GPU 的计算能力CUDA Toolkit cuDNN 安装详细流程整理流程一:安装 CUDA Toolkit步骤一:获取CU…...

基于身份的安全威胁正在迅速增长

根据端点安全和威胁情报供应商 CrowdStrike 发布的一份报告,目前最危险的网络安全威胁是能够访问给定系统合法身份信息的攻击者。 根据该报告,交互式入侵(该公司将其定义为攻击者积极工作以在受害者系统上实现某种非法目的的入侵)…...

解决ElementUI动态表单校验验证不通过

这里记录一下&#xff0c;写项目时遇到的一个问题&#xff1a;就是动态渲染的表单项&#xff0c;加验证规则后一直不通过&#xff01;&#xff01;&#xff01; 原代码 html部分&#xff1a; <el-form-itemv-for"(teaclass,index) in addFom.classIds":label&quo…...

深眸科技|发现AI+3D视觉的价值,技术升级加速视觉应用产品国产替代

随着中国工业化进程的不断深入和智能制造浪潮的影响&#xff0c;工业生产对于机器视觉技术的需求不断攀升&#xff0c;其应用范围覆盖了工业领域的众多行业&#xff0c;包括3C电子、汽车、半导体、新能源、物流等。 据GGII发布的最新数据显示&#xff0c;近年来我国机器视觉市…...

云计算-知识点大纲

前言&#xff1a;云计算的基本概念学习&#xff0c;基础知识大纲梳理。 目录 云计算的概念 云计算的特征 部署模式 服务模式 云计算的发展 云计算的核心技术 虚拟化技术 常见的虚拟化技术 服务器虚拟化 裸金属型技术 服务器虚拟化技术的特点 存储虚拟化 CPU 内存…...

设计模式(2)工厂方法模式

一、 1、介绍&#xff1a;定义一个用于创建对象的接口&#xff0c;让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。简单工厂模式的最大优点在于工厂类中包含了必要的逻辑判断&#xff0c;根据客户端的选择条件动态实例化相关的类&#xff0c;对于客户端来说…...

如何创建51单片机KEIL工程

如何创建51单片机KEIL工程步骤&#xff1a; &#xff08;1&#xff09;打开keil软件&#xff0c;点击工具栏-Project&#xff0c;选择创建新的工程&#xff1b; &#xff08;2&#xff09;然后给工程命名&#xff0c;文章以project为例&#xff0c;然后点击保存 &#xff08…...

openGauss学习笔记-34 openGauss 高级数据管理-SCHEMA

文章目录 openGauss学习笔记-34 openGauss 高级数据管理-SCHEMA34.1 语法格式34.2 参数说明34.3 示例 openGauss学习笔记-34 openGauss 高级数据管理-SCHEMA SCHEMA又称作模式。通过管理SCHEMA&#xff0c;允许多个用户使用同一数据库而不相互干扰&#xff0c;可以将数据库对象…...

虚拟世界探索:科技之下的未来可能性

随着科技的飞速发展&#xff0c;人们对于虚拟世界的憧憬和探索也日益加深。虚拟世界&#xff0c;那是一个超越现实的概念&#xff0c;一个充满想象力和创造力的领域。然而&#xff0c;虚拟世界究竟有可能实现吗&#xff1f;这是一个引人深思的问题。 虚拟世界&#xff0c;首先让…...

OSPF技术入门(第三十四课)

1 OSPF的介绍 OSPF是一种链路状态路由协议,主要用于IP网络中的路由选择。它是一种开放协议,能够在不同的网络设备之间进行通信。OSPF利用链路状态数据库来描述网络拓扑结构,并通过Dijkstra算法计算出最短路径。它支持按照精确度划分的路由优先级,以及多个相等的路径,并能自…...

春秋云镜 CVE-2022-0948

春秋云镜 CVE-2022-0948 WordPress plugin Order Listener for WooCommerce SQLI 靶标介绍 WordPress 插件 Order Listener for WooCommerce 3.2.2 之前版本存在 SQL注入漏洞。 启动场景 漏洞利用 EXP curl http://example.com/?rest_route/olistener/new --data {"…...

【资讯速递】AI与人类思维的融合;OpenAI在中国申请注册“GPT-5”商标;移动大模型主要面向to B 智能算力是未来方向

2023年8月11日 星期五 癸卯年六月廿五 第000001号 欢迎来到爱书不爱输的程序猿的博客, 本博客致力于知识分享&#xff0c;与更多的人进行学习交流 本文收录于IT资讯速递专栏,本专栏主要用于发布各种IT资讯&#xff0c;为大家可以省时省力的就能阅读和了解到行业的一些新资讯 资…...

TDesign中后台管理系统-用户登录

目录 1 创建用户表2 开发后端接口3 测试接口4 修改登录页面调用后端接口最终效果总结 中后台系统第一个要实现的功能就是登录了&#xff0c;我们通常的逻辑是让用户在登录页面输入用户名和密码&#xff0c;调用后端接口去验证用户的合法性&#xff0c;然后根据接口返回的结果进…...

RN 使用react-navigation写可以滚动的横向导航条(expo项目)

装包&#xff1a; yarn add react-navigation/material-top-tabs react-native-tab-view npx expo install react-native-pager-view import React from react import { View, Text, ScrollView, SafeAreaView } from react-native import { Icon } from ../../../../../compo…...

单例模式写法的总结(保证线程安全)

首先&#xff0c;单例模式分为饿汉模式和懒汉模式 单例模式有什么用呢? 可以保证在程序运行过程中&#xff0c;一个类只有一个实例&#xff0c;而且该实例易于供外界访问&#xff0c;从而方便的控制了实例个数&#xff0c;并节约系统资源。 例如&#xff1a;DataSource&#x…...

SQL Server 查询数据并汇总相关技巧 23.08.08

GROUPING 是一个聚合函数,它产生一个附加的列&#xff0c;当用 CUBE 或 ROLLUP 运算符添加行时&#xff0c;附加的列输出值为1&#xff0c;当所添加的行不是由 CUBE 或 ROLLUP 产生时&#xff0c;附加列值为0。 仅在与包含 CUBE 或 ROLLUP 运算符的 GROUP BY 子句相联系的选择…...

第一章 SpringBoot 介绍-最小配置

1. spring-boot web应用的最小配置 1.1 pom配置两个依赖 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.3.4.RELEASE</version></parent><depende…...

10-1_Qt 5.9 C++开发指南_Data Visualization实现数据三维显示

Data Visualization 是 Qt 提供的用于数据三维显示的模块。在 Qt 5.7 以前只有商业版才有此模块&#xff0c;而从Qt5.7 开始此模块在社区版本里也可以免费使用了。Data Visualization 用于数据的三维显示&#xff0c;包括三维柱状图、三维空间散点、三维曲面等。Data Visualiza…...

[保研/考研机试] KY87 鸡兔同笼 北京大学复试上机题 C++实现

描述 一个笼子里面关了鸡和兔子&#xff08;鸡有2只脚&#xff0c;兔子有4只脚&#xff0c;没有例外&#xff09;。已经知道了笼子里面脚的总数a&#xff0c;问笼子里面至少有多少只动物&#xff0c;至多有多少只动物。 输入描述&#xff1a; 每组测试数据占1行&#xff0c;…...

Jmeter快捷方式和应用图标设置

很多人在安装Jmeter,安装到本机却没有icon&#xff0c;每次使用的时候&#xff0c;每次打开应用都要找目录&#xff0c;不太方便。 【解决问题】 使用bin路径下的一个.bat文件&#xff0c;创建快捷方式。 【操作步骤】 Step1、将Jmeter 安装bin路径下的jmeter.bat 发送快捷方…...

如何高效永久保存微信聊天记录:WeChatMsg数据导出与智能分析终极指南

如何高效永久保存微信聊天记录&#xff1a;WeChatMsg数据导出与智能分析终极指南 【免费下载链接】WeChatMsg 提取微信聊天记录&#xff0c;将其导出成HTML、Word、CSV文档永久保存&#xff0c;对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Tre…...

Python高频交易引擎性能压测全记录:从50μs到8μs的7大关键优化步骤

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Python高频交易引擎性能压测全记录&#xff1a;从50μs到8μs的7大关键优化步骤 在实盘环境模拟中&#xff0c;我们基于 ccxt asyncio 构建的订单路由引擎初始平均延迟为 50.3μs&#xff08;P99&…...

5大核心功能深度解析:英雄联盟智能助手如何提升你的游戏体验

5大核心功能深度解析&#xff1a;英雄联盟智能助手如何提升你的游戏体验 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power &#x1f680;. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 在英雄联盟的激烈对局…...

手把手教你用COMSOL和ANSYS Maxwell交叉验证直线电机仿真结果

多物理场仿真验证实战&#xff1a;COMSOL与ANSYS Maxwell直线电机交叉验证方法论 引言 在工程仿真领域&#xff0c;结果的可靠性往往比仿真本身更为关键。想象一下&#xff0c;当你花费数周时间完成一套复杂的电磁场仿真&#xff0c;正准备将结果写入论文或用于产品设计决策时&…...

C语言day3

变量1.变量中的值&#xff0c;可以发生变化的原因。是因为在定义变量的时候&#xff0c;系统会给变量开辟内存空间。2.初始化 含义&#xff1a;在变量内存空间开辟的同时&#xff0c;装入初始值。变量定义后&#xff0c;如果没有给初值的&#xff0c;变量里就存储了随机值。变量…...

从RNN到Mamba:选择性状态空间如何让‘老古董’技术在LLM时代重生

从RNN到Mamba&#xff1a;选择性状态空间如何让"老古董"技术在LLM时代重生 当Transformer架构在自然语言处理领域大放异彩时&#xff0c;一个有趣的现象正在发生&#xff1a;那些被认为"过时"的循环神经网络(RNN)技术路线&#xff0c;正通过选择性状态空间…...

别再傻傻分不清了!医院里EMR、HIS、PACS这些系统到底谁管谁?一张图给你讲明白

医院信息系统生态图鉴&#xff1a;EMR、HIS、PACS如何各司其职 走进任何一家现代化医院&#xff0c;你都会听到这样的对话&#xff1a;"PACS调不出增强CT影像""HIS里查不到昨天的检验报告""EMR病程记录无法保存"。这些英文缩写系统就像医院里的隐…...

Cursor Pro破解终极指南:3步实现永久免费使用AI编程助手

Cursor Pro破解终极指南&#xff1a;3步实现永久免费使用AI编程助手 【免费下载链接】cursor-free-vip [Support 0.45]&#xff08;Multi Language 多语言&#xff09;自动注册 Cursor Ai &#xff0c;自动重置机器ID &#xff0c; 免费升级使用Pro 功能: Youve reached your t…...

告别硬编码!用C++函数指针优雅实现游戏角色‘自杀’CALL(附完整代码)

告别硬编码&#xff01;用C函数指针优雅实现游戏角色‘自杀’CALL&#xff08;附完整代码&#xff09; 在游戏逆向工程领域&#xff0c;直接操作内存和硬编码地址的传统做法就像在钢丝上跳舞——虽然能完成任务&#xff0c;但稍有不慎就会导致崩溃或安全风险。本文将带你探索一…...

深度学习必读三书:从理论到实战全指南

1. 深度学习从业者的三本必读书籍作为一名在深度学习领域摸爬滚打多年的从业者&#xff0c;我深知选择合适的学习资料有多么重要。市面上关于深度学习的书籍琳琅满目&#xff0c;但真正能让你从入门到精通的经典之作却屈指可数。今天我要分享的这三本书&#xff0c;是我书架上的…...