Yolov8模型训练报错:torch.cuda.OutOfMemoryError

最近在使用自己的数据训练Yolov8模型的时候遇到了很多错误,下面将逐一解答。

问题报错

在训练过程中红字报错:torch.cuda.OutOfMemoryError: CUDA out of memory.

后面还会跟着一大段报错:

Tried to allocate XXX MiB (GPU 0; XXX GiB total capacity; XXX GiB already allocated; 0 bytes free; XXX GiB reserved in total by PyTorch)

If reserved memory is >> allocated memory try setting max_split_size_mb to avoid fragmentation.

See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF

报错信息如下图:

报错信息

原因分析

其实这是因为训练时读取的图像数据太大,超出了GPU的显存。

可以看到我这台电脑是GTX2060,显存6G,读取的图像信息已经到了5.17G,无法再进行模型训练。

解决方案

在遇到此类问题时,我们可以调整两个部分的代码。

首先,yolov8的模型训练代码如下:

from core.ultralytics import YOLO
model = YOLO("runs/detect/train_2048_91_200/weights/last.pt")  # 读取断点模型训练

# # Train the model
results = model.train(data="./ultralytics/cfg/datasets/my_img.yaml", epochs=1, imgsz=2048, batch=5, save_period=-1)

1、调整imgsz

此处,我们可以修改:model.train()方法中的,imgsz这个参数。

可以看到博主这边使用的是2024分辨率进行训练,主要原因还是因为项目的图像较大,为5120*5120图像,同时需要做小目标识别。因此设置的比较大。

但是大家可以根据自己的实际情况来调整这个参数的大小,如果本身需要检测的目标比较大,那大家可以尝试将此参数调小一些。

2、调整batch

一般来说显存超了,大多时候会选择调整batch这个参数,虽然调整后会一定程度影响模型的泛化能力,容易导致过拟合,但在现有条件下两害相权取其轻,只能调小这个参数了。

调整batch后

博主这边选择不调整imgsz,原因上面已经说了。

batch调整至4之后,再次训练。

情况如下:

成功训练截图

完美跑通!

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

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

相关文章

Vue23-props配置功能

Vue2&3-props配置功能 Vue2-props配置 功能:接收从其他组件传过来的数据,将数据从静态转为动态注意: 同一层组件不能使用props,必须是父组件传子组件的形式。父组件传数据,子组件接收数据。不能什么数据都接收&a…

EMNLP2023 | LLM作用下的成分句法分析基础研究

深度学习自然语言处理 原创作者:cola 自训练已被证明是一种有效的针对跨域任务的方法。传统的自训练方法依赖于有限且低质量的源语料库。为克服这一限制,本文提出用大型语言模型(LLM)增强自训练,以迭代地生成特定领域的语料库。并针对句法成分…

JavaEE初阶学习:Linux 基本使用和 web 程序部署

1.Linux的基本认识 Linux 是一个操作系统.(搞管理的系统) 和Windows都是同类产品~~ Linux 实际的场景: 1.服务器 2.嵌入式设备 3.移动端(手机)Android 其实就是Linux 1991年,还在读大学的 芬兰人 Linus Benedict Torvalds,搞了一个Linux 这样的系统0.01版,正式发布了~ 后…

Docker学习——⑥

文章目录 1、什么是存储卷?2、为什么需要存储卷?3、存储卷分类4、管理卷 Volume5、绑定卷 bind mount6、临时卷 tmpfs7、综合实战-MySQL 灾难恢复8、常见问题 1、什么是存储卷? 存储卷就是将宿主机的本地文件系统中存在的某个目录直接与容器内部的文件系统上的某一目录建立…

js各种简单事件处理(整理)

**## 获取当天昨天日期** // 当天日期 const today new Date();// 格式化当天日期为 YYYY-MM-DD 格式 const formattedToday today.toISOString().slice(0, 10);// 昨天日期 const yesterday new Date(); yesterday.setDate(yesterday.getDate() - 1);// 格式化昨天日期为 Y…

并查集模版以及两道例题

💯 博客内容:并查集 😀 作  者:陈大大陈 🚀 个人简介:一个正在努力学技术的准C后端工程师,专注基础和实战分享 ,欢迎私信! 💖 欢迎大家:这里是C…

DVWA - 2

文章目录 SQL Injectionlowmediumhigh SQL Injection low 输入 1,可以展示 id 1 的人员信息:输入 1’,有报错信息。可以看出是mysql数据库,‘‘1’’’ 去除两边的引号,再去除1两端的引号,可以看出闭合符…

Thales hsm是什么意思,有什么作用?

Thales HSM是一种硬件安全模块(Hardware Security Module,HSM),是Thales公司开发的一种安全设备,用于保护和管理密码和数字证书。HSM是一种物理设备,通常用于需要高度安全性的环境中,如政府机构、金融机构、大型企业等…

底座(基座)模型是如何训练的?

我们把LLM的基本训练步骤分为两步,预训练和对齐;预训练我们非常熟悉,是bert-finetuning时代的基本原理,只不过LLM一般遵循自回归的逻辑,因此使用GPT模型的预训练方式:CLM(具备因果关系的MLM&…

【Java 进阶篇】Java Filter 过滤器拦截路径配置详解

过滤器(Filter)是 Java Web 应用中一种强大的组件,它可以用于在请求到达目标资源之前或响应返回客户端之前执行一些预处理或后处理操作。其中,过滤器的拦截路径配置是非常重要的,它决定了过滤器会拦截哪些请求。在本文…

Kotlin系列之注解详解

目录 注解:file:JvmName 注解:JvmField 注解:JvmOverloads 注解:JvmStatic 注解:JvmMultifileClass 注解:JvmSynthetic 注解:file:JvmName file:JvmName(“XXX”) 放在类的最顶层&#x…

浏览器添加油猴(tampermonkey)扩展

msedge浏览器为例 1.打开msedge浏览器 2.点击右上角省略号 3.点击扩展 4.点击管理扩展 5.点击获取 Microsoft Edge 扩展 6.搜索 tampermonkey 7.获取自己想要安装的油猴

kubernetes helm

目录 一、helm 二、部署helm 三、封装chart包 四、上传chart到OCI仓库 五、部署wordpress博客系统 六、helm部署storageclass 七、helm部署ingress-nginx 八、helm部署metrics-server 九、kubeapps 一、helm Helm是Kubernetes 应用的包管理工具,主要用来…

经销商管理怎么做?

有人说,谁占据了渠道,谁就拥有了销售的大半个江山。在渠道为王的时代,每个企业都想快速打开市场,以渠道铺设自己的销路,捞取一桶桶金。因此,占领渠道,将渠道管理好是企业,尤其是快消…

K8S概念与架构

K8S概念与架构 一、Kubernetes 概述1、K8S 是什么2、为什么要用 K8S3、k8s介绍二、Kubernetes 集群架构与组件2.1、Master核心组件 2.2、Node核心组件 三、Kubernetes 核心概念3.1、Pod 控制器 一、Kubernetes 概述 1、K8S 是什么 K8S 的全称为 Kubernetes (K12345678S)&…

如何用Excel软件制作最小二乘法①

一、用自带的选项(不推荐),因为感觉只是近似,虽然结果一样 1.在Excel中输入或打开要进行在excel中输入或打开要进行最小二乘法拟合的数据,如图所示。 2.按住“shift”键的同时,用鼠标左键单击以选择数据&a…

linux 显卡驱动 cuda 离线安装

1、 安装显卡驱动: Download NVIDIA, GeForce, Quadro, and Tesla Drivers (1)注意选择对应的cuda版本,和系统版本,并下载 (2)

element-Cascader级联选择器用法?

html <el-form-item label"行业选择" :label-width"formLabelWidth"><div class"m-4"><el-cascader v-model"form.tradeid" :options"options" :props"props" /></div></el-form-ite…

FPGA高端项目:图像缩放+GTX+UDP架构,高速接口以太网视频传输,提供2套工程源码加QT上位机源码和技术支持

目录 1、前言免责声明本项目特点 2、相关方案推荐我这里已有的 GT 高速接口解决方案我这里已有的以太网方案我这里已有的图像处理方案 3、设计思路框架设计框图视频源选择IT6802解码芯片配置及采集动态彩条跨时钟FIFO图像缩放模块详解设计框图代码框图2种插值算法的整合与选择 …

代码随想录算法训练营Day 47 || 198.打家劫舍、213.打家劫舍II、337.打家劫舍 III

198.打家劫舍 力扣题目链接(opens new window) 你是一个专业的小偷&#xff0c;计划偷窃沿街的房屋。每间房内都藏有一定的现金&#xff0c;影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统&#xff0c;如果两间相邻的房屋在同一晚上被小偷闯入&#xff0c;系…
最新文章