第36步 深度学习图像识别:TensorFlow-gpu环境配置

news2024/9/29 5:26:58

基于WIN10的64位系统演示

一、写在前面

从这一期开始分享基于深度学习图像识别的学习笔记和代码,相比于之前的ML分类模型,图像识别的门槛会更高,包括硬件方面、代码复杂度和基础理论知识等。同样,首先把必要的深度学习框架(类似做ML分类,要依赖sklearn包)安装好,然后就无脑撸代码。

深度学习框架提供了丰富的工具和库,以支持深度学习模型的开发和训练。目前深度学习的几个主要框架:

(1)TensorFlow(谷歌开发):TensorFlow是一个广泛使用的开源深度学习框架,提供了丰富的工具和库,可用于构建各种类型的神经网络模型。它拥有强大的计算图和自动求导功能,并提供了高级抽象层,如Keras,使得模型的开发和训练变得更加简单。

(2)PyTorch(Facebook开发):PyTorch是另一个广受欢迎的开源深度学习框架,它采用动态图的方式进行计算,使得模型的构建和调试更加灵活和直观。PyTorch提供了丰富的神经网络模块和优化算法,并且在研究领域得到广泛应用。

(3)Keras:Keras是一个高级神经网络API,它能够以TensorFlow、PyTorch等作为后端框架进行计算。Keras的设计理念是用户友好和模块化,使得模型的构建和训练变得简单快捷。

这里我使用的是TensorFlow + Keras

二、TensorFlow-gpu环境配置

1. Anaconda安装

跟之前的教程一样的操作,这里放一个传送门即可,大家自行穿越。

2.Cuda和Cudnn的安装

要在TensorFlow中使用GPU,需要安装CUDA和cuDNN。听说过比特币挖矿机不?其实就是依赖显卡中的GPU。TensorFlow也有CPU版本,但是运行速度慢,不建议装。

CUDANVIDIA开发的一种并行计算平台和API。它允许开发人员使用NVIDIA的GPU进行通用计算。在我们的情况下,TensorFlow可以利用CUDA来有效地在GPU上执行深度学习计算。

cuDNN是CUDA深度神经网络库,是NVIDIA提供的一种GPU-accelerated库,用于深度学习。它包含一些针对深度神经网络的高性能原语(如卷积,池化等)。TensorFlow利用cuDNN来优化在GPU上执行的一些操作,从而提高计算效率。

请注意!!!这里需要特别注意硬件和软件的匹配问题!!!

(1)你的电脑显卡是否支持CUDA

(a)计算机右键->设备管理器->显示适配器,出来的就是你的显卡型号,比如我的是NVIDIA GeForce GTX 970显卡(献丑了,用了7年)

(b)上英伟达官网(传送门),看看你的显卡是不是在里面,是就可以用,第二列是计算力,比如我的是5.2,辣鸡了。

 

(2)查看显卡的Driver Version,用于选择适合的CUDA版本。

(a)打开终端,输入命令:

cd C:\Program Files\NVIDIA Corporation\NVSMI
nvidia-smi

可以看到Driver Version为516.40,这里我装了CUDA了,所以显示出版本号。

(b)根据Driver Version为516.40,对照下表,确定你的电脑硬件支持的最高CUDA版本,网址如下:传送门

可以看到哈,最高可以安装的是CUDA 11.8.x版本。

然后在这个网址,下载合适的CUDA安装即可,默认路径安装就好。网址如下:传送门

(3)根据CUDA版本选择TensorFlow版本和cuDNN版本。

(a)不同版本的TensorFlow需要不同版本的CUDA和cuDNN,这些信息可以在TensorFlow的官方网站上找到,网址如下:传送门

这就有点尴尬,CUDA最高只到11.2版本,那么我的11.7版本咋办,经过我测试,我这么配置:TensorFlow-2.6,CUDA 11.7,cuDNN 8.1可行。此外,TensorFlow-2.x自带Keras,不用再另外安装。

(b)安装cuDNN

打开Anconda终端,输入代码:

conda install cudnn=8.1

回车安装。

血泪史:当初我没选择版本,直接conda install cudnn,二话不说,干到了最新版本的cuDNN,然后悲剧了。

3.TensorFlow-gpu的安装

(1)创建新的环境

打开Anaconda Prompt,键入以下命令以创建一个新的环境,例如我们创建一个名为"tf2.6"的环境,同时指定Python版本为3.9(你可以根据需要选择其他版本):

conda create -n tf2.6 python=3.9

(2)激活新环境

创建新环境后,你需要激活这个环境,命令如下:

conda activate tf2.6

(3)安装TensorFlow-gpu

在新的环境中,你可以通过以下命令安装TensorFlow-gpu:

conda install tensorflow-gpu==2.6.0

这将自动为你安装最新版本的TensorFlow-gpu的2.6版本和所有必要的依赖项。

(3)验证TensorFlow-gpu

要验证TensorFlow-gpu是否安装成功,你可以打开Python并尝试导入tensorflow模块,然后检查其版本:

python #进入python程序
import tensorflow as tf #导入tensorflow
print(tf.__version__) #输出tensorflow的版本号

恭喜你,安装成功了!!!

4.如果安装失败

大概率是显卡、Anaconda、python、Cuda、Cudnn、Tensorflow-gpu/cpu以及Keras之间的爱恨情仇(版本)的问题,慢慢排查,慢慢尝试,总会成功的,毕竟我搞了好几天才行。

三、写在最后

我没说错吧,相比于单纯的ML,装个Anaconda和sklearn包就可以运行,深度学习的环境配置起来更复杂,不过琢磨几天一般也能搞定。最难的是,你得有一块好显卡,A100就算了,来个4090吧。

哈哈哈,开玩笑,按需配置。希望大家配置环境都顺利,下期有缘再见哈!

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

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

相关文章

Nginx 轻松搞定跨域问题

当你遇到跨域问题,不要立刻就选择复制去尝试,请详细看完这篇文章再处理,我相信它能帮到你。 分析前准备: 前端网站地址:http://localhost:8080 服务端网址:http://localhost:59200 首先保证服务端是没有…

微软将GitHub Copilot 与 Visual Studio 深度整合有助于便捷开发

近日对于很多的开发者来说将迎来一个好消息,据悉微软目前正在改善Visual Studio的开发体验,并将GitHub Copilot更深度融合入Visual Studio 中,以提升“AI 写代码”的准确性。 值得注意的是,在Copilot 1.84 版本之前,…

亚马逊养号系统之亚马逊批量养号如何操作?

亚马逊新注册的买家号都是需要先养一段时间才可以的,如果想要同时养大量的买家号那么需要借助软件进行辅助操作才行。 亚马逊鲲鹏系统可以批量养亚马逊买家号,养号方法有两种,一种是AI智能一键养号,一种是设置关键词搜索浏览后进行…

编译 Keras 模型

本篇文章译自英文文档 Compile Keras Models 作者是 Yuwei Hu 更多 TVM 中文文档可访问 →TVM 中文站。 本文介绍如何用 Relay 部署 Keras 模型。 首先安装 Keras 和 TensorFlow,可通过 pip 快速安装: pip install -U keras --user pip install -U …

代码随想录算法训练营第五十五天|392.判断子序列|115.不同的子序列

LeetCode392.判断子序列 动态规划五部曲: 1,确定dp数组(dp table)以及下标的含义:dp[i][j] 表示以下标i-1为结尾的字符串s,和以下标j-1为结尾的字符串t,相同子序列的长度为dp[i][j]。注意这里…

postman中级:导入文件数据,批量化参数

建议阅读对象:已掌握postman的基本使用(参见:postman入门-主界面认识,模拟请求) 本地安装的版本:Postman for Windows Version 10.14.9 1.创建csv文件 或 txt文件 文件数据格式: 第一行写下参…

python生成excel文件的三种方式

在我们做平常工作中都会遇到操作excel,那么今天写一篇,如何通过python操作excel。当然python操作excel的库有很多,比如pandas,xlwt/xlrd,openpyxl等,每个库都有不同的区别,具体的区别&#xff0…

day19--栈

用两个栈实现队列 栈:先进后出;队列:先进先出>因此两个栈即可模拟队列 class Solution { public:void push(int node) {//进队stack1.push(node);//进栈}int pop() {//出队int t;if(stack2.empty()){//栈2空while(!stack1.empty()){//栈1…

vue table页展示

<template><el-container><el-header><el-tabsv-model"groupId"tab-click"tabChange"class"w-full pt-11 ml-5"><el-tab-panelabel"登记进度"name"0"></el-tab-pane><el-tab-panela…

MarkDown使用教程

MarkDown使用教程 1.标题 #: 一级标题 ##: 二级标题 ###: 三级标题 一共分为六级 2.字体 斜体文本 斜体文本 粗体文本 粗体文本 粗斜体文本 粗斜体文本 3.列表 无序号的使用*、、- 作为列表的标记&#xff0c;这些标记后面添加一个空格 第一项第二项第三项 第一项第二项…

ArcGIS如何统计面内点的数量

本文来源&#xff1a;GIS科研实验室公众号 1 数据来介绍 本次教程使用的数据为&#xff1a;各小区的点坐标&#xff08;来源房天下&#xff0c;坐标为CGCS2000&#xff09;&#xff1b;基础教育设施、商业服务设施、金融保险设施、医疗卫生设施的POI坐标&#xff08;来源高德…

java:找不到符号 符号:变量:log get set

问题&#xff1a;java&#xff1a;找不到符号&#xff1a;变量&#xff1a;log get set解决方法&#xff1a;在idea中&#xff0c;点击file-Settings&#xff0c;打开配置页面&#xff0c;如图红框位置&#xff0c;输入&#xff1a; -Djps.track.ap.dependenciesfalse

pyecharts案例四——动态GDP柱状图绘制

思路 for循环每一年的数据&#xff0c;基于每一年的数据&#xff0c;创建每一年的Bar对象&#xff0c;并且将该对象添加到时间线timeline中&#xff0c;最后设置自动播放并绘图 实现代码 from pyecharts.charts import Bar, Timeline from pyecharts.options import * from …

(7)自动调优

文章目录 前言 1 在自动调优模式下飞行前的设置 2 如何调用自动调优 3 在位置保持下调用自动调优 4 如果自动调优失败 5 补充说明 6 常见的问题 7 Dataflash日志记录 8 地面控制站消息 前言 AutoTune 试图自动调优稳定P&#xff0c;速率P和 D&#xff0c;以及最大旋转…

交流(直流)电流采集方案

芯片原理图 注意途中的绿色部分&#xff0c;说明此芯片可以采集交流或者直流 内部霍尔工作原理图 通过曲线可以确定再0A时输出电压为2.5v 只有随着电流的变化是大于2.5v或者小于2.5v&#xff08;交流负方向&#xff0c;或者直流负方向&#xff09; 下面是一个插排的拆解视频截…

9. ThreadLocal

9.1 ThreadLocal简介 9.1.1 面试题 ● ThreadLocal中ThreadLocalMap的数据结构和关系 ● ThreadLocal的key是弱引用&#xff0c;这是为什么&#xff1f; ● ThreadLocal内存泄漏问题你知道吗&#xff1f; ● ThreadLocal中最后为什么要加remove方法&#xff1f; 9.1.2 是什么&a…

KaiwuDB 受邀亮相山东省数字化转型论坛

4月21日&#xff0c;第十五届信博会暨中国&#xff08;济南&#xff09;数字经济高端峰会成功举办。KaiwuDB 受邀出席峰会重要论坛—山东省数字化转型论坛&#xff0c;并发表《工业物联网时代&#xff0c;数据库赋能企业数字化转型落地实践》主题演讲&#xff0c;与来自国内的 …

Java动态代理:优化静态代理模式的灵活解决方案

文章目录 代理模式定义具体实现分析优缺点 优化使用动态代理解决优化相关知识动态代理种类场景应用 代理模式 定义 代理模式&#xff0c;为其他对象提供一种代理以控制对这个对象的访问 具体实现 代理模式的具体实现描述可以分为以下几个步骤&#xff1a; 创建抽象对象接…

什么是Vue的JSX语法?如何使用JSX语法?

什么是Vue的JSX语法&#xff1f;如何使用JSX语法&#xff1f; 在Vue中&#xff0c;我们通常使用模板语法来编写组件的模板。但是&#xff0c;有些开发者更喜欢使用类似于React的JSX语法来编写组件。Vue也支持使用JSX语法来编写组件&#xff0c;本文将介绍什么是Vue的JSX语法以…

企业级信息系统开发讲课笔记4.7 Spring Boot整合JPA

文章目录 零、学习目标一、Spring Data JPA概述1、Spring Data JPA简介2、Spring Data JPA基本使用3、使用Spring Data JPA进行数据操作的多种实现方式4、自定义Repository接口中的Transactional注解5、变更操作&#xff0c;要配合使用Query与Modify注解 二、Spring Boot整合JP…