新版本GPU加速的tensorflow库的配置方法

news/2024/5/19 7:21:51/文章来源:https://blog.csdn.net/zhebushibiaoshifu/article/details/129291170

  本文介绍在Anaconda环境中,配置可以用GPU运行的Python新版tensorflow库的方法。

  在上一篇文章Anaconda配置Python新版本tensorflow库(CPU、GPU通用)的方法(https://blog.csdn.net/zhebushibiaoshifu/article/details/129285815)中,我们详细介绍了CPUGPU通用的新版tensorflow库的配置方法;本文就在这一篇文章的基础之上,继续介绍如果希望让GPU参与到计算中,我们该如何进一步配置对应的环境。如果大家此时还没有配置tensorflow库,那么就先将前述这一篇文章的流程完成后,再继续本文的步骤即可。

  前面我们提到,当时虽然已经配置完毕了新版tensorflow库,但是如果运行代码,还是会出现如下图所示的提示信息,即我们还没有配置好GPU运行的环境。

在这里插入图片描述

  其中,如果大家的电脑上是没有GPU,或者就不需要用GPU加以计算,那就不用管这个问题,直接开始编写、运行机器学习的代码就好了;但是对于电脑中有GPU并且也希望让GPU加入运算的用户而言,就需要加以进一步的配置工作。具体流程如下。

1 系统版本要求

  如果需要用本文所述的GPU环境配置方法,需要保证Windows操作系统的版本在19044及以上;如果不满足这一条件,除了升级系统,就只能通过早期版本的tensorflow库来实现GPU运算了。

2 GPU设置

  首先,我们需要打开Anaconda Prompt软件;随后,可以输入如下所示的代码,从而查看我们的GPU状态。

nvidia-smi

  运行上述代码后,如下图所示,即为我们的GPU状态。如果无法出现如下图所示的信息,则很大概率是没有安装驱动(NVIDIA Driver),大家可以到其官方网站中下载。

在这里插入图片描述

  随后,我们即可配置CUDAcuDNN;其中CUDANVIDIA为其生产的GPU所研发的一种并行计算架构,而cuDNN则是NVIDIA专门为深度神经网络运行而提供的一个加速库。这二者目前网上很多教程是通过手动到NVIDIA官方网站上下载、安装的,相对较为麻烦;而这里我们既然已经用了新版本的tensorflow库,那么就可以直接在命令行实现二者的下载与配置。

  我们输入如下所示的代码。

conda install -c conda-forge cudatoolkit=11.2 cudnn=8.1.0

  随后,运行上述代码,如下图所示。

在这里插入图片描述

  随后,输入y,即可确认开始下载、配置CUDAcuDNN。稍等片刻,出现如下图所示的情况,说明二者已经配置完毕。

在这里插入图片描述

  至此,CUDAcuDNN的设置已经完毕。但是,为了让这二者可以正常使用,我们还需要配置系统路径。关于这一步的内容,大家可以直接用管理员身份打开Windows PowerShell软件来进行配置,如下图所示。

在这里插入图片描述

  随后,分别输入并运行以下两句代码。

mkdir -p $CONDA_PREFIX/etc/conda/activate.d
echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CONDA_PREFIX/lib/' > $CONDA_PREFIX/etc/conda/activate.d/env_vars.sh

  运行后如下图所示。

在这里插入图片描述

  至此,就完全完成了GPU方面的配置工作。

3 WSL2配置

  此外,我们还需要配置WSL2WSL是“适用于Linux 的Windows 子系统”,我们需要配置这一环境,为后面的GPU运算提供条件。

  关于WSL2的介绍与手动配置方法,大家可以直接查看其官方网站;我们这里就介绍通过命令行的简单的配置方法。

  首先,依然是在管理员身份打开的Windows PowerShell软件中,我们输入如下所示的代码。

wsl --install

  随后,即可开始安装WSL2;稍等片刻,出现如下图所示的提示,说明WSL2已经配置完毕;此时,需要重启一次电脑。

在这里插入图片描述

4 配置结果验证

  至此,已经完成了GPU运算所需要的全部配置步骤。如果大家是在一个新的虚拟环境中配置的上述内容,就可以按照文章Anaconda为虚拟环境安装第三方库与Spyder等软件的方法(https://blog.csdn.net/zhebushibiaoshifu/article/details/128334627)提到的方法,安装一个Spyder软件,方便后续代码的撰写。

  随后,在编辑器中输入如下的代码。

import tensorflow as tf
print(tf.config.list_physical_devices("GPU"))

  如下图所示。

在这里插入图片描述

  运行上述代码后,如果出现如下图所示的输出结果,就表明程序可以找到电脑中的GPU,即前述全部配置工作是没有问题的;大家就可以开始撰写机器学习的各类代码,并用GPU加速运行了。

在这里插入图片描述

  此外,这里还有一种不推荐的检验方法。大家还可以输入以下的代码。

import tensorflow as tf
tf.test.is_gpu_available() 

  这也是一种检验GPU是否可用的方法,但是如下图所示,这种方法马上就要被淘汰了,因此建议还是用上面提到的方法来测试。如果出现如下图所示的True字样,就说明配置没有问题。

在这里插入图片描述

  至此,大功告成。

欢迎关注:疯狂学习GIS

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

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

相关文章

Torch同时训练多个模型

20230302 引言 在进行具体的研究时,利用Torch进行编程,考虑到是不是能够同时训练两个模型呢?!而且利用其中一个模型的输出来辅助另外一个模型进行学习。这一点,在我看来应该是很简单的,例如GAN网络同时训…

HOT100--(5)最长回文子串

点击查看题目详情 中心扩散法 思路: 遍历字符串,以每个字符为中心点向两边扩散,如果遇到不一样的就跳出循环。以此类推,最后截取最大回文串返回。 细节 字符个数不一定都是奇数。当个数是偶数的是时候,我们可以“忽…

Canal数据同步配置

文章目录Canal数据同步配置0.canal工作原理1.**检查binlog功能是否有开启**2.如果显示状态为OFF表示该功能未开启,开启binlog功能3.**在mysql里面添加以下的相关用户和权限**4.下载安装Canal服务5.修改配置文件6.进入bin目录下启动7.idea中配置Canal数据同步配置 c…

Java接口专题

基本介绍 接口给出一些没有实现的方法,封装到一起,到某个类使用时再根据具体情况把这些方法写出来。 注意:在jdk7之前,接口里所有的方法都是抽象方法。在jdk8之后接口中可以有静态方法,默认方法 interface 接口名{/…

MySQL 数据库创建不了外键约束

在数据库的表里面创建不了外键约束❓❓❓ 没错,以我名侦探 q 的分析(狗屁!!!),真相只有一个❗❗❗ 那就是:你表的存储引擎非 InnoDB,外键约束只有存储引擎是 InnoDB 才…

flutter window安装过程

这里写自定义目录标题#下载相关官网地址:https://flutter.cn/docs/get-started/install/windows 根据官网下载相关包flutter_windows_3.7.5-stable.zip 解压到c盘,在path配置相关解压路径(c:\flutter)。 执行 where flutter dart ,发现没有提…

APP测试面试题汇总(基础篇、进阶篇)

一、基础篇1、请介绍一下,APP测试流程?APP测试流程与web测试流程类似,分为如下七个阶段:1.根据需求说明书编写测试计划;2.制定测试方案,主要是测试任务、测试人员和测试时间的分配;3.测试准备&a…

离散事件动态系统

文章目录离散事件动态系统ppt离散事件系统建模离散事件动态系统的基本组成元素离散事件动态系统仿真具体建模petri建模实例离散事件动态系统 ppt ppt 仿真建模步骤 离散事件系统建模 from:离散事件系统建模 离散事件动态系统的基本组成元素 (1&am…

【备战面试】每日10道面试题打卡-Day2

本篇总结的是Java基础知识相关的面试题,后续也会更新其他相关内容 文章目录1、 和 equals 的区别是什么?2、你重写过 hashcode 和 equals 吗,为什么重写equals时必须重写hashCode方法?3、为什么Java中只有值传递?4、BI…

工业机器人有哪些类型?如何利用工业网关集中监测管理?

工业机器人在制造业中的应用与日俱增,使用工业机器人,不仅提高了设备和场地的利用率,还能保持稳定的产品水平。随着工业机器人的大规模部署,对于数量众多、类型各异、功能不一的机器人的监测、管理和维护,也成为企业面…

如何提高软件测试效率 降低开发成本?

1、单元测试以开发人员为主 测试分工需根据测试人员的特点进行,而单元测试应以开发人员为主,以保障每个单元能够完成设计的功能。集成测试也可以以开发人员为主进行。当软件体系结构完成后,独立测试人员应尽量选择比较熟悉相关领域的人员。​…

Webpack-好文

webpack是一个前端资源加载/打包工具,会根据模块的依赖关系进行静态分析,然后将这些模块按照指定的规则生成对应的静态资源Webpack打包js文件创建一个文件夹,cmd进入到终端,运行npm install -g webpack webpack-cli安装webpack we…

原生微信小程序引入npm和安装Vant Weapp

目录一、引入npm安装Vant Weapp1、引入npm2、安装Vant Weapp3、修改 app.json4、修改 project.config.json二、构建npm一、引入npm安装Vant Weapp 环境:Windows10 开发工具:微信开发者工具 本地环境:已安装过node.js 1、引入npm cmd进入到你…

动态内存基础(一)

动态内存基础 ● 栈内存 堆内存 V.S. – 栈内存的特点:更好的局部性,对象自动销毁 – 堆内存的特点:运行期动态扩展,需要显式释放 ● 在 C 中通常使用 new 与 delete 来构造、销毁对象 int* fun() {int res;return &res; //…

|干货 | 五种常用类型之String字符串详解

一. 背景说明小白:哥,java中String是最常用类型,Redis中也是吗?哥:差不多,我给你稍微讲一下。二. 数据类型依据Redis官网,目前Redis数据类型共计九种。具体整理如下:常用的数据类型有&#xff…

Windows 11 安装 Docker Desktop

Windows 环境安装 WSL2 WSL 简介 WSL 全称是 Windows Subsystem for Linux ,适用于 Linux 的 Windows 子系统,可让开发人员按原样运行 GNU/Linux 环境,包括大多数命令行工具、实用工具和应用程序,且不会产生传统虚拟机或双启动设…

九州云出席全球人工智能开发者先锋大会,圆桌论道开源未来

2月25日-26日,2023年全球人工智能开发者先锋大会(GAIDC)在临港成功召开。本届盛会以“向光而行的开发者”为主题,汇集政府职能部门领导、国内外知名专家学者、具有国际影响力的开源创业者,聚焦前瞻探索、开源开放、人才…

运动控制器PSO视觉飞拍与精准输出的C++开发(二):多轴PSO等距/周期输出

本文主要介绍正运动技术EtherCAT控制器在VS平台采用C语言实现的各种PSO功能。正运动提供多种PSO模式供用户搭配不同的场景使用。 上节讲解了采用TABLE寄存器存储的数据表触发比较,本节主要讲解矢量比较两种模式:等距周期比较输出,固定时间周…

python海龟绘图

一、基础 (一)介绍 海龟绘图(Turtle Graphics):“小海龟”turtle是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x、纵轴为y的坐标系原点,(0,0)位置开始…

JAVA版B2B2C商城源码多商户入驻商城

三勾商城多商户是开发友好的微信小程序商城,框架支持SAAS,支持发布 iOS Android 公众号 H5 各种小程序(微信/支付宝/百度/头条/QQ/钉钉/淘宝)等多个平台,不可多得的二开神器, 为大中小企业提供极致的移…