yolov4训练数据: cuda和cudnn的安装

news2024/11/24 20:48:23

近期再搞openvino+Yolov4目标检测,记录一下cuda和cudnn的安装笔记。

mirrors / alexeyab / darknet · GitCode

1.cuda的安装

cuDNN Archive | NVIDIA Developer

wget https://developer.download.nvidia.com/compute/cuda/10.2/Prod/local_installers/cuda_10.2.89_440.33.01_linux.run
sudo sh cuda_10.2.89_440.33.01_linux.run

执行上面的命令即可安装成功;

允许nvcc -V可以查看是否安装成功;

之前我的版本是cuda11.8

至于为什么降低版本?

因为在darknet train训练数据出现如下错误:

 这里出现CUDA Error: no kernel image is available for execution on the device;

排查各种原因后,进行各种尝试后还是报此错,最终降低版本解决此问题;

第一步排查:显卡对应的算力是否对应(网上大多数都是解释是算力与显卡不匹配造成的)

训练显示可知  GTX 950M对应的算力是50,因此darknet的配置文件就选对应的ARCH参数:

也可以通过官网查询:CUDA GPUs - Compute Capability | NVIDIA Developer

 第二步排查cuda的版本对应的算力

 可知cuda11.8是支持5.0的。

第三步是修改cfg配置文件参数:

 修改对应的subdivisions的参数值,但注意subdicisions小于等于batch数值;

查看显卡信息:

发现经过无论怎么尝试都会报错,按道理不应该是版本问题,最终降低了版本就可以了,可能与显卡不匹配吧。

为什么一开始下载的是cuda11.8,就是根据显卡信息cuda version 信息下载的。

所以版本的选择还是多根据自己的显卡进行选择,免得需要重新安装,并不是一味的认为最高的就是最好的。这里11.8应该是指的是最高版本。

这里有个现象:local下面会有两个cuda的文件夹(最开始还以为是我的路径有问题)

 ls -l后 才发现是链接出来的,很是尴尬。

2.cudnn的安装

cuDNN Archive | NVIDIA Developer

根据对应的cuda版本下载对应的版本号,注意此处需要注册账号才可以下载,如下:

安装命令:

cd cudnn-linux-x86_64-8.6.0.163_cuda10-archive/
sudo cp include/cudnn* /usr/local/cuda/include
sudo cp lib/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn*
sudo chmod a+r /usr/local/cuda/lib64/cudnn*

复制到对应的cuda文件夹下即可。

如果不匹配darknet训练的时候会报错:cudnn的库文件错误之类的ERROR。

测试:

①时间

最开始是no GPU的方式训练数据,时间基本上几十小时以上,现在用了GPU,时间节省了大部分时间只要几小时而已,具体根据图像的数量和配置参数来定。

②准确率

GPU训练:

 no GPU训练:

 

同样的训练数据在不同情况下进行训练后,相同的图片的测试结果:

NO GPU: 52% 69% 61%     451ms/248ms/255ms

GPU      :100% 100% 100% 31ms/32ms/32ms

因此,无论是学习还是开发,建议还是都是使用GPU进行数据训练,有无GPU的差别很大. 

参考:

CUDAError:nokernelimageisavailableforexecutiononthedevice-爱码网英伟达显卡不同CUDA支持的计算能力情况及不同算力对应显卡列表_Zency_SUN的博客-CSDN博客_英伟达cuda

linux 卸载cuda_如何卸载CUDA - 全栈程序员必看

Linux安装CUDA_C_oarnge的博客-CSDN博客_linux安装cuda

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

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

相关文章

【SVM时序预测】基于matlab鲸鱼算法优化支持向量机SVM时序数据预测【含Matlab源码 2250期】

⛄一、鲸鱼算法优化支持向量机SVM 1 鲸鱼优化算法 WOA是由Mirjalili和Lewis在2016年提出的一种较为新颖的元启发式群体智能优化算法,该算法模仿座头鲸的“螺旋气泡网”捕食策略,如图1所示。 图1 座头鲸“螺旋起泡网”捕食策略 WOA算法寻优步骤如下。 步…

详解企业财务数字化转型路径|推荐收藏

许多企业在推动各大业务部门进行数字化转型时,往往会忽略财务部门。然而,作为掌握公司核心资源与数据和推动企业信息化建设的部门,财务部门也应成为企业数字化转型的重要突破口。 财务数字化转型是运用信息技术等手段对财务数据进行统计、记录…

【Android App】三维投影OpenGL ES的讲解及着色器实现(附源码和演示 超详细)

需要源码请点赞关注收藏后评论区留言私信~~~ 一、OpenGL ES简介 虽然OpenGL的三维制图功能非常强大,但是它主要为计算机设计的,对于嵌入式设备和移动端设备来说显得比较臃肿,所以业界又设计了专供嵌入式设备的OpenGL ES 它相当于OpenGL的精简…

GPS定位原理

GPS卫星: 卫星定位系统是一种使用卫星对某物进行准确定位的技术,它从最初的定位精度低、不能实时定位、难以提供及时的导航服务,发展到现如今的高精度GPS全球定位系统,实现了在任意时刻、地球上任意一点都可以同时观测到4颗卫星&a…

OS_虚拟内存@请求分页系统@驻留集@内存分配策略

文章目录OS_虚拟内存请求分页系统驻留集内存分配策略请求分页系统页表机制缺页中断机构地址变换机构页框分配驻留集分配策略固定分配可变分配置换策略局部置换全局置换策略组合固定分配局部置换可变分配全局置换可变分配局部置换🎈OS_虚拟内存请求分页系统驻留集内存…

docker中安装并启动rabbitMQ

docker中安装并启动rabbitMQ1、安装rabbitMQ1.1、拉取镜像1.2、启动容器实例1.3、开启web界面管理插件1.4、浏览器访问 rabbitMQ2、解决Docker部署rabbitmq遇到的如下两个问题:2.1、访问交换机时报错,Management API returned status code 5002.2、访问c…

003. 电话号码的字母组合——回溯算法

1.题目链接: 17. 电话号码的字母组合 2.解题思路: 2.1.题目要求: 给定一个仅包含数字 2-9 的字符串 digits ,返回所有它能表示的字母组合。 数字和字母的关系: 例子: 输入:"23" …

测试用例中遇到的常见问题

1、测试用例是什么? 测试用例的设计就是如何覆盖所有软件表现出来的状态,即在满足输入/输出的一组条件下,软件运行时一系列有次序的、受控制的状态变化过程 2、设计用例是否有必要? 将测试内容记录下来,避免了在执行的时候部分测试点被遗…

链式二叉树

链式二叉树一,相关函数接口实现1,前序遍历2,中序遍历3,后序遍历4,节点个数5,叶子结点个数6,树的高度7,第K层结点个数8,查找值为X的结点9,通过前序遍历数组构建…

m基于NSGAII优化算法的微网系统的多目标优化规划matlab仿真

目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 NSGA-II是基于的非支配排序的方法,在NSGA上进行改进,也是多目标进化优化领域一个里程碑式的一个算法。 NSGA-Ⅱ算法是 Srinivas 和 Deb 于 2000 年在 NSGA 的基础上提出的&#xff0c…

社区系统项目复盘-3

文章目录过滤敏感词发布帖子帖子详情添加评论私信列表发送私信统一处理异常统一记录日志基于Springboot的核心功能实现 包括自定义前缀树过滤敏感词;使用异步请求的方式发布帖子;查看帖子详情;添加评论时需要同时增加评论的数据和修改帖子的评…

电源设备设计

目录 一、通信电源概述 (1) (2)通信电源系统组成 (3)通信电源供电方式 集中供电示意图 分散供电示意图 USP供电示意图 二、交流供电系统设计 1、交流供电--市电引入 交流低压供电示意图 2、交流供电--UPS &…

Innodb是如何运转的

Innodb是如何运转的Innodb体系架构后台线程Master ThreadIO ThreadPurge ThreadPage Cleaner Thread内存缓存池LRU ListFree Listunzip_LRUflush list重做日志缓冲(redo log buffer)额外的内存池checkpoint技术Sharp CheckpointFuzzy CheckpointMaster Thread的工作方式Innodb …

SparkMlib 之逻辑回归及其案例

文章目录什么是逻辑回归?逻辑回归的优缺点逻辑回归示例——预测回头客逻辑回归示例——预测西瓜好坏逻辑回归示例——预测垃圾邮件什么是逻辑回归? 逻辑回归是一种流行的预测分类响应的方法。它是预测结果概率的广义线性模型的特例。在逻辑回归中&#…

EasyRecovery2022中文版电脑端数据恢复软件

EasyRecovery2023数据恢复软件是一款文件恢复软件,能够恢复内容类型非常多,包括办公文档、文件夹、电子邮件、照片、音频等一些常用文件类型都是可以进行恢复,操作非常简单,只需要将存储设备连接到电脑上,运行EasyReco…

【全志T113-S3_100ask】16-1 linux系统驱动四线电阻屏(tpadc、tslib)

【全志T113-S3_100ask】16-1 linux系统使用TPADC驱动四线电阻屏(rtp、tslib)(一)背景(二)焊接鬼才(三)解析input上报事件(四)C语言解析input上报事件&#xf…

大数据技术——Flume简介安装配置使用案例

文章目录1. Flume 概述1.1 Flume简介1.2 Flume的特点1.3 Flume的基础架构2. Flume安装配置2.1 下载地址2.2 安装部署3. Flume 使用案例3.1 实时监控单个追加文件3.2 实时监控目录下多个新文件3.3 实时监控目录下的多个追加文件1. Flume 概述 1.1 Flume简介 Flume是一种可配置、…

【Linux】Linux的环境变量(PATH、env、子进程继承环境变量等)

文章目录环境变量1、从一个小案例认识环境变量PATH2、常用的环境变量相关指令与系统调用3、子进程如何继承环境变量的?4、测试其它环境变量环境变量 1、从一个小案例认识环境变量PATH 我们在shell中通过file查看文件信息,看到我们常使用的指令都是可执…

C++ 类的静态成员详解

目录 前言 一、类的静态成员 1.static关键字 2.静态成员变量 3.静态成员函数 二、程序样例 1.程序演示 2.程序截图 总结 前言 本文记录C中 static 修饰类成员成为静态成员,其中包括静态成员类别、作用和程序演示。 嫌文字啰嗦的可直接跳到最后的总结。 一、类的静…

特征提取 - 骨架、中轴和距离变换

目录 1. 介绍 骨架 skeleton 中轴变换 Medial axis transformation 距离变换 distance transform 2. 距离变换的代码实现 distanceTransform 函数介绍 normalize 函数介绍 取局部最大值 完整代码 3. comparation 1. 介绍 骨架 skeleton 骨架的定义:就是…