当前位置: 首页 > 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;就可以使用…...

网络编程(Modbus进阶)

思维导图 Modbus RTU&#xff08;先学一点理论&#xff09; 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议&#xff0c;由 Modicon 公司&#xff08;现施耐德电气&#xff09;于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...

cf2117E

原题链接&#xff1a;https://codeforces.com/contest/2117/problem/E 题目背景&#xff1a; 给定两个数组a,b&#xff0c;可以执行多次以下操作&#xff1a;选择 i (1 < i < n - 1)&#xff0c;并设置 或&#xff0c;也可以在执行上述操作前执行一次删除任意 和 。求…...

【单片机期末】单片机系统设计

主要内容&#xff1a;系统状态机&#xff0c;系统时基&#xff0c;系统需求分析&#xff0c;系统构建&#xff0c;系统状态流图 一、题目要求 二、绘制系统状态流图 题目&#xff1a;根据上述描述绘制系统状态流图&#xff0c;注明状态转移条件及方向。 三、利用定时器产生时…...

DBAPI如何优雅的获取单条数据

API如何优雅的获取单条数据 案例一 对于查询类API&#xff0c;查询的是单条数据&#xff0c;比如根据主键ID查询用户信息&#xff0c;sql如下&#xff1a; select id, name, age from user where id #{id}API默认返回的数据格式是多条的&#xff0c;如下&#xff1a; {&qu…...

2023赣州旅游投资集团

单选题 1.“不登高山&#xff0c;不知天之高也&#xff1b;不临深溪&#xff0c;不知地之厚也。”这句话说明_____。 A、人的意识具有创造性 B、人的认识是独立于实践之外的 C、实践在认识过程中具有决定作用 D、人的一切知识都是从直接经验中获得的 参考答案: C 本题解…...

群晖NAS如何在虚拟机创建飞牛NAS

套件中心下载安装Virtual Machine Manager 创建虚拟机 配置虚拟机 飞牛官网下载 https://iso.liveupdate.fnnas.com/x86_64/trim/fnos-0.9.2-863.iso 群晖NAS如何在虚拟机创建飞牛NAS - 个人信息分享...

日常一水C

多态 言简意赅&#xff1a;就是一个对象面对同一事件时做出的不同反应 而之前的继承中说过&#xff0c;当子类和父类的函数名相同时&#xff0c;会隐藏父类的同名函数转而调用子类的同名函数&#xff0c;如果要调用父类的同名函数&#xff0c;那么就需要对父类进行引用&#…...

零知开源——STM32F103RBT6驱动 ICM20948 九轴传感器及 vofa + 上位机可视化教程

STM32F1 本教程使用零知标准板&#xff08;STM32F103RBT6&#xff09;通过I2C驱动ICM20948九轴传感器&#xff0c;实现姿态解算&#xff0c;并通过串口将数据实时发送至VOFA上位机进行3D可视化。代码基于开源库修改优化&#xff0c;适合嵌入式及物联网开发者。在基础驱动上新增…...

消防一体化安全管控平台:构建消防“一张图”和APP统一管理

在城市的某个角落&#xff0c;一场突如其来的火灾打破了平静。熊熊烈火迅速蔓延&#xff0c;滚滚浓烟弥漫开来&#xff0c;周围群众的生命财产安全受到严重威胁。就在这千钧一发之际&#xff0c;消防救援队伍迅速行动&#xff0c;而豪越科技消防一体化安全管控平台构建的消防“…...

土建施工员考试:建筑施工技术重点知识有哪些?

《管理实务》是土建施工员考试中侧重实操应用与管理能力的科目&#xff0c;核心考查施工组织、质量安全、进度成本等现场管理要点。以下是结合考试大纲与高频考点整理的重点内容&#xff0c;附学习方向和应试技巧&#xff1a; 一、施工组织与进度管理 核心目标&#xff1a; 规…...