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

Tensorflow-GPU工具包了解和详细安装方法

目录

基础知识信息了解

显卡算力

CUDA兼容

Tensorflow gpu安装

CUDA/cuDNN匹配和下载

查看Conda driver的版本

下载CUDA工具包

查看对应cuDNN版本

下载cuDNN加速库

CUDA/cuDNN安装

CUDA安装方法

cuDNN加速库安装

配置CUDA/cuDNN环境变量

配置环境变量

核验是否安装成功

Tensorflow-gpu安装

命令安装

报错处理

核验安装结果


直通车:人工智能发展历程和工具搭建学习-CSDN博客

        通过之前的文章学习,我们已经安装好了Anaconda和Tensorflow2.4,但是在后期的学习中,会涉及到神经网络的学习等数据量较大的操作,普通的tensorflow-cpu版本处理速度较慢,所以我们再安装一个更加强大的tensorflow-gpu版本,它可以调用conda的接口实现gpu运算的平台,利用显卡帮助我们运算程序,以提高后期学习中的程序处理速度,提高学习效率。

基础知识信息了解

显卡算力

        在这个之前,我们首先要确保自己的电脑是英伟达显卡,并且运算能力在3.5以上,大家可以根据下面的网址查看自己电脑显卡的运算能力,然后还需要下载conda工具包和对应的gpu加速库cuDNN。

直通车:CUDA GPUs - Compute Capability | NVIDIA Developer

        后期安装CUDA通过deviceQuery.exe也可以看到当前显卡的算力。

CUDA兼容

        这里CUDA12.1是支持的最高版本的CUDA,可以向下兼容,且可以安装多个版本的CUDA,你可以通过更改环境变量来更改为你需要用到的CUDA版本。

Tensorflow gpu安装

CUDA/cuDNN匹配和下载

查看Conda driver的版本

        我们打开命令行窗口cmd,输入nvidia-smi,这里显示的是显卡的版本信息,这里显示的是conda driver的版本信息。

下载CUDA工具包

        直通车:CUDA Toolkit Archive | NVIDIA Developer

        我们去conda下载官网,下载CUDA工具包。根据刚刚我们查到的CUDA版本信息,此处我的CUDA版本为12.x,根据CUDA可以向下兼容的特性,我们可以对应下载CUDA11.4的工具包。

        在这个界面,由于我的电脑是Windows11 64位,所以我选择的是这些选项,大家要根据自己的电脑系统类型选择合适的版本进行下载。

查看对应cuDNN版本

下面查找对应的cuDNN版本,可以在Tensorflows官网中查看tensorflow-gpu跟cuda cudnn的版本对应信息.

在 Windows 环境中从源代码构建  |  TensorFlow

下载cuDNN加速库

        接下来我们打开cuDNN下载地址:

直通车:https://developer.nvidia.com/rdp/cudnn-archive

        由于我们CUDA是11的版本 对应的是cuDNN8的版本,这些版本的对应,小伙伴们一定要注意!现在我们打开cuDNN下载官网,在这里,根据刚刚查看到的cuda版本,选择适当的cuDNN版本,我刚下载的是CUDA11.4的版本,也就是CUDA11.x的版本,所以我选择的是cuDNN8.x的版本,这里我下载版本为8.2.1,然后选择windows x86的选项进行下载。

        注意:在这里点击下载的时候会跳转到注册登录页面,由于在这里我已经登录,所以没有跳转,等待安装包下载完成,我们就准备好了Tensorflow-gpu所需要的工具包,这就是已经下载好的工具包。

        如果各位小伙伴在这里遇到问题无法解决,可以在评论区进行求助。

CUDA/cuDNN安装

CUDA安装方法

        接下来我们开始安装CUDA,双击打开下载的安装包,并等待进度条加载完毕。

        点击同意并继续选择自定义,然后点击下一步。在这个界面显示的是将要安装的组件名称、版本号和电脑中该组件的版本号,当前版本号为空,则说明电脑中没有该组件。

        我们取消NVIDIA GeForce Experience这一项,然后点击下一步。这里的安装路径一般选择默认就好,也可以更改,但是文件目录一定要记清楚,后面配置环境的时候会用到

然后点击下一步,点击next,等待安装完成。

然后点击下一步,这里显示的是已经安装的所有组件的状态,然后点击关闭。

cuDNN加速库安装

        下面开始安装Gpu加速库cuDNN,将文件解压,解压完成以后,我们打开会得到如下三个目录。

        然后我们打开刚刚安装好的CUDA的根目录,然后把codnn里边并目录下的所有文件复制到CUDA的bin目录如下。

        将include里边的所有文件复制到CUDA的include文件下,lib文件夹也是如此。这样我们便完成了CUDA和cuDNN的安装。

配置CUDA/cuDNN环境变量

配置环境变量

        下面开始设置系统环境变量,右键点击此电脑,选择属性打开高级系统,设置环境变量,在系统变量里面找到path,点击编辑。我们可以看到CUDA的两个文件已经存在,点击新建浏览,找到CUDA目录。

将其上移,与其他两个环境变量一起,这样就完成了环境变量的设置。

核验是否安装成功

        可以通过nvcc -V命令查看是否配置CUDA成功

        输入nvidia-smi命令,返回GPU型号则安装成功

         同时也可以通过在CUDA执行bandwidthTest.exe和deviceQuery.exe和核验,返回PASS则表明GPU安装成功

Tensorflow-gpu安装

        接下来我们开始安装tensorflow-gpu,安装过程可以参考上篇文章tensnflow2.4的安装,这里我就不再详述。不同之处,就是我们创建并激活另一个独立环境tensorflow-gpu选择适当的版本号,小伙伴们可以根据自己的安装环境选择对应的版本安装,第二步是安装相关软件,在第三步的时候安装tensorflow-gpu,命令为pip install tensorflow-gpu==对应版本号安装完成以后就完成了tensorflow-gpu的安装。

直通车:人工智能发展历程和工具搭建学习-CSDN博客

命令安装

创建独立环境并激活

conda create -n tensorflow-gpu python==3.8conda activate tensorflow-gpu

安装相关软件包

​
# conda install numpy matplotlib PIL scikit-learn pandas 于下行命令等价pip install numpy matplotlib Pillow scikit-learn pandas -i Simple Index

安装Tensorflow-gpu

​
pip install tensorflow-gpu==2.6.0 -i Simple Index

报错处理

        ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts. matplotlib 3.7.5 requires numpy<2,>=1.20, but you have numpy 1.19.5 which is incompatible. pandas 2.0.3 requires numpy>=1.20.3; python_version < "3.10", but you have numpy 1.19.5 which is incompatible.

pip uninstall numpypip install numpy==1.19.5

        TypeError: Descriptors cannot be created directly. If this call came from a _pb2.py file, your generated code is out of date and must be regenerated with protoc >= 3.19.0. If you cannot immediately regenerate your protos, some other possible workarounds are: 1. Downgrade the protobuf package to 3.20.x or lower. 2. Set PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python (but this will use pure-Python parsing and will be much slower).

pip uninstall protobuf pip install protobuf==3.20.0

校验安装结果

        最后我们测试一下是否安装成功,打开命令行窗口,激活我们刚才创建的独立环境。输入python,打开python交互模式,输入import tensorflow as tf,输入我们的测试语句tf.test.is_gpu_available(),它的输出结果为true,显示我们安装成功。

python
import tensorflow as tftf.test.is_gpu_available()exit()

相关文章:

Tensorflow-GPU工具包了解和详细安装方法

目录 基础知识信息了解 显卡算力 CUDA兼容 Tensorflow gpu安装 CUDA/cuDNN匹配和下载 查看Conda driver的版本 下载CUDA工具包 查看对应cuDNN版本 下载cuDNN加速库 CUDA/cuDNN安装 CUDA安装方法 cuDNN加速库安装 配置CUDA/cuDNN环境变量 配置环境变量 核验是否安…...

【python】OpenCV GUI——Trackbar(14.2)

学习来自 OpenCV基础&#xff08;12&#xff09;OpenCV GUI中的鼠标和滑动条 文章目录 GUI 滑条介绍cv2.createTrackbar 介绍牛刀小试 GUI 滑条介绍 GUI滑动条是一种直观且快速的调节控件&#xff0c;主要用于改变一个数值或相对值。以下是关于GUI滑动条的详细介绍&#xff1a…...

Qt自定义日志输出

Qt自定义日志输出 简略版&#xff1a; #include <QApplication> #include <QDebug> #include <QDateTime> #include <QFileInfo> // 将日志类型转换为字符串 QString typeToString(QtMsgType type) {switch (type) {case QtDebugMsg: return "D…...

[C++] vector list 等容器的迭代器失效问题

标题&#xff1a;[C] 容器的迭代器失效问题 水墨不写bug 正文开始&#xff1a; 什么是迭代器&#xff1f; 迭代器是STL提供的六大组件之一&#xff0c;它允许我们访问容器&#xff08;如vector、list、set等&#xff09;中的元素&#xff0c;同时提供一个遍历容器的方法。然而…...

Java——变量作用域和生命周期

一、作用域 1、作用域简介 在Java中&#xff0c;作用域&#xff08;Scope&#xff09;指的是变量、方法和类在代码中的可见性和生命周期。理解作用域有助于编写更清晰、更高效的代码。 2、作用域 块作用域&#xff08;Block Scope&#xff09;&#xff1a; 块作用域是指在…...

WPF界面设计

1、使用C#-WPF实现抽屉效果-炫酷漂亮的侧边栏导航菜单-SplitViewMD主题重绘原生控件的美观效果-提供源码Demo下载 码源地址&#xff1a;https://download.csdn.net/download/Prince999999/89424685 2、使用C#-WPF实现抽屉效果-菜单导航功能实现&#xff0c;常规的管理系统应该…...

【C#】使用JavaScriptSerializer序列化对象

在C#开发语言编程中&#xff0c;通常使用系统内置的JavaScriptSerializer类来序列化对象&#xff0c;以便将其转换为JSON格式的文本存储与后台服务通信, 在这里将为大家详细介绍一下这个过程。 文章目录 反序列化序列化忽略属性 假设处理的数据中有一个对象类, 如下 public cl…...

HTML静态网页成品作业(HTML+CSS)—— 明星吴磊介绍网页(5个页面)

&#x1f389;不定期分享源码&#xff0c;关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 &#x1f3f7;️本套采用HTMLCSS&#xff0c;未使用Javacsript代码&#xff0c;共有5个页面。 二、作品演示 三、代…...

EasyRecovery2024数据恢复神器#电脑必备良品

EasyRecovery数据恢复软件&#xff0c;让你的数据重见天日&#xff01; 大家好&#xff01;今天我要给大家种草一个非常实用的软件——EasyRecovery数据恢复软件&#xff01;你是不是也曾经遇到过不小心删除了重要的文件&#xff0c;或者电脑突然崩溃导致数据丢失的尴尬情况呢&…...

前端HTML相关知识

1.什么是HTML HTML 指的是超文本标记语言 ( HyperText Markup Language )。 超文本:是指页面内可以包含图片、链接、声音,视频等内容 标记:标签(通过标记符号来告诉浏览器网页内容该如何显示) 浏览器根据不同的HTML标签&#xff0c;解析成我们看到的网页 2.HTML的特点 HTML不…...

集合面试题

目录 ①HashMap的理解&#xff1f;以及为什么要把链表转换为红黑树&#xff1f;②HashMap的put&#xff1f;③HashMap的扩容&#xff1f;④加载因子为什么是0.75&#xff1f;⑤modcount的作用&#xff1f;⑥HashMap与HashTable的区别&#xff1f;⑥HashMap中1.7和1.8的区别&am…...

集成学习概述

概述 集成学习(Ensemble learning)就是将多个机器学习模型组合起来&#xff0c;共同工作以达到优化算法的目的。具体来讲&#xff0c;集成学习可以通过多个学习器相结合&#xff0c;来获得比单一学习器更优越的泛化性能。集成学习的一般步骤为&#xff1a;1.生产一组“个体学习…...

记录一次root过程

设备: Redmi k40s 第一步&#xff0c; 解锁BL&#xff08;会重置手机系统&#xff01;&#xff01;&#xff01;所有数据都会没有&#xff01;&#xff01;&#xff01;&#xff09; 由于更新了澎湃OS系统, 解锁BL很麻烦, 需要社区5级以上还要答题。 但是&#xff0c;这个手机…...

函数(上)(C语言)

函数(上&#xff09; 一. 函数的概念二. 函数的使用1. 库函数和自定义函数(1) 库函数(2) 自定义函数的形式 2. 形参和实参3. return语句4. 数组做函数参数 一. 函数的概念 数学中我们其实就见过函数的概念&#xff0c;比如&#xff1a;一次函数ykxb&#xff0c;k和b都是常数&a…...

ARM-V9 RME(Realm Management Extension)系统架构之系统安全能力的侧信道抵御

安全之安全(security)博客目录导读 目录 一、系统PMU计数器 二、使用信号和功耗操作进行的故障攻击 一、系统PMU计数器 性能监测单元 (PMU) 计数器可能成为泄露机密信息的侧信道,如访问模式或受RME安全保障保护的安全状态下的执行控制流。以下规则补充了《Arm CoreSight™…...

Java高级技术探索:深入理解JVM内存分区与GC机制

文章目录 引言JVM内存分区概览垃圾回收机制&#xff08;GC&#xff09;GC算法基础常见垃圾回收器ParNew /Serial old 收集器运行示意图 优化实践结语 引言 Java作为一门广泛应用于企业级开发的编程语言&#xff0c;其背后的Java虚拟机&#xff08;JVM&#xff09;扮演着至关重…...

新视野大学英语2 词组 6.15

do you feel as confused and manipulated as i do with this question 你是否和我一样&#xff0c;对这个问题感到困惑和被操控 manipulated&#xff1a;被操控 defy common sense and contradict each other 违背常识且相互矛盾 defy&#xff1a;违背 contradict&#xf…...

【JavaScript】MDN

一、初识 1.1 基础 1.1.1 语言速成课 1.1.1.1 变量 ​ 变量是存储值的容器。首先用let关键字声明一个变量&#xff0c;后面跟着你给变量的名字 ​ 变量命名区分大小写 ​ 分号在JavaScript中是用来分隔语句的&#xff0c;但是如果语句后面有一个换行符(或者在{block}中只…...

Qt/C++中的异步编程

Qt/C++中的异步编程 1 介绍2 含义2.1 QtConcurrent2.2 std::future2.3 Qml中的Promise3 使用场景4 代码示例5 注意事项5.1异常处理5.2 线程安全5.3 性能优化5.4 线程间通信5.5 避免死锁1 介绍 异步编程是现代应用程序开发中不可或缺的一部分。它允许程序在执行耗时任务时保持响…...

解决javadoc一直找不到路径的问题

解决javadoc一直找不到路径的问题 出现以上问题就是我们在下载jdk的时候一些运行程序安装在C:\Program Files\Common Files\Oracle\Java\javapath下&#xff1a; 一开始是没有javadoc.exe文件的&#xff0c;我们只需要从jdk的bin目录下找到复制到这个里面&#xff0c;就可以使用…...

Docker 运行 Kafka 带 SASL 认证教程

Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明&#xff1a;server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...

渲染学进阶内容——模型

最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...

跨链模式:多链互操作架构与性能扩展方案

跨链模式&#xff1a;多链互操作架构与性能扩展方案 ——构建下一代区块链互联网的技术基石 一、跨链架构的核心范式演进 1. 分层协议栈&#xff1a;模块化解耦设计 现代跨链系统采用分层协议栈实现灵活扩展&#xff08;H2Cross架构&#xff09;&#xff1a; 适配层&#xf…...

Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理

引言 Bitmap&#xff08;位图&#xff09;是Android应用内存占用的“头号杀手”。一张1080P&#xff08;1920x1080&#xff09;的图片以ARGB_8888格式加载时&#xff0c;内存占用高达8MB&#xff08;192010804字节&#xff09;。据统计&#xff0c;超过60%的应用OOM崩溃与Bitm…...

python执行测试用例,allure报乱码且未成功生成报告

allure执行测试用例时显示乱码&#xff1a;‘allure’ &#xfffd;&#xfffd;&#xfffd;&#xfffd;&#xfffd;ڲ&#xfffd;&#xfffd;&#xfffd;&#xfffd;ⲿ&#xfffd;&#xfffd;&#xfffd;Ҳ&#xfffd;&#xfffd;&#xfffd;ǿ&#xfffd;&am…...

Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决

Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决 问题背景 在一个基于 Spring Cloud Gateway WebFlux 构建的微服务项目中&#xff0c;新增了一个本地验证码接口 /code&#xff0c;使用函数式路由&#xff08;RouterFunction&#xff09;和 Hutool 的 Circle…...

Typeerror: cannot read properties of undefined (reading ‘XXX‘)

最近需要在离线机器上运行软件&#xff0c;所以得把软件用docker打包起来&#xff0c;大部分功能都没问题&#xff0c;出了一个奇怪的事情。同样的代码&#xff0c;在本机上用vscode可以运行起来&#xff0c;但是打包之后在docker里出现了问题。使用的是dialog组件&#xff0c;…...

JVM 内存结构 详解

内存结构 运行时数据区&#xff1a; Java虚拟机在运行Java程序过程中管理的内存区域。 程序计数器&#xff1a; ​ 线程私有&#xff0c;程序控制流的指示器&#xff0c;分支、循环、跳转、异常处理、线程恢复等基础功能都依赖这个计数器完成。 ​ 每个线程都有一个程序计数…...

音视频——I2S 协议详解

I2S 协议详解 I2S (Inter-IC Sound) 协议是一种串行总线协议&#xff0c;专门用于在数字音频设备之间传输数字音频数据。它由飞利浦&#xff08;Philips&#xff09;公司开发&#xff0c;以其简单、高效和广泛的兼容性而闻名。 1. 信号线 I2S 协议通常使用三根或四根信号线&a…...

安全突围:重塑内生安全体系:齐向东在2025年BCS大会的演讲

文章目录 前言第一部分&#xff1a;体系力量是突围之钥第一重困境是体系思想落地不畅。第二重困境是大小体系融合瓶颈。第三重困境是“小体系”运营梗阻。 第二部分&#xff1a;体系矛盾是突围之障一是数据孤岛的障碍。二是投入不足的障碍。三是新旧兼容难的障碍。 第三部分&am…...