《南溪的目标检测学习笔记》——训练pytorch模型遇到显存不足的情况怎么办

songyuc songyuc     2023-01-27     682

关键词:

1 前言

在目标检测中,可能会遇到显存不足的情况,我们在这里记录一下解决方案;

2 如何判断真正是出现显存(不是“软件误报”)

当前需要分配的显存在200MiB以下
例如:

RuntimeError: CUDA out of memory. Tried to allocate 60.00 MiB (小于200MiB) (GPU 0; 10.76 GiB total capacity; 8.71 GiB already allocated; 59.00 MiB free; 8.81 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

否则就是“软件误报”引起的OOM错误,则重新运行程序,错误可能就会消失;

3 如何减少PyTorch模型需要的显存

3.1 减小batch_size的数量

最小的数量可以设置为2;

《南溪的目标检测学习笔记》——coco数据集的学习笔记(代码片段)

1COCO数据集COCO数据集下载链接:COCO_download1.1数据概览类别数量:80类Datasetnumberofimagestrain118287val5000目标数量Val集目标数:36781(整个val集包含的实例数量)1.2文件结构说明train2017:训练集图像文件夹。val2017:验证集图像文件夹。... 查看详情

《南溪的目标检测学习笔记》——基础算子的学习笔记

1卷积层2池化层关于池化层的基本实现,请参考《22池化层【动手学深度学习v2】》; 查看详情

《南溪的目标检测学习笔记》——模型预处理的学习笔记

1介绍在目标检测任务中,模型预处理分为两个步骤:图像预处理:基于图像处理算法数值预处理:基于机器学习理论关于图像预处理,请参考《南溪的目标检测学习笔记》——图像预处理的学习笔记 查看详情

《南溪的目标检测学习笔记》——数据集制作

1数据集的格式——simcv格式在定义数据集的格式的时候,我们可以参考COCO格式和VoTT格式;使用中文进行标注;2训练和验证数据集的划分比例数据集的划分比例为train:val=9:1,(对应test_size=0.1);... 查看详情

《南溪的目标检测学习笔记》——深度学习的假设

1拟态假设1.1视觉神经元假设——Convolution卷积是最常见的视觉神经假设;Convolution的操作也模拟了视神经感受野的特点; 查看详情

《南溪的目标检测学习笔记》——图像增广的学习笔记

1介绍图像增广的根本目的是增加信息量、使模型获得高层语义信息,获得对问题有着更深的理解,从而提升准确率,(在客观上,因为丰富了信息量,所以也同时具有防止过拟合的作用)。常见的图像... 查看详情

《南溪的目标检测学习笔记》——图像增广的学习笔记

1介绍图像增广的根本目的是增加信息量、使模型获得高层语义信息,获得对问题有着更深的理解,从而提升准确率,(在客观上,因为丰富了信息量,所以也同时具有防止过拟合的作用)。常见的图像... 查看详情

《南溪的目标检测学习笔记》——特征融合的学习笔记

1介绍在本文中,我们将介绍各种特征融合法方法,这里的特征融合指两种不同视角的特征进行融合~1AddFuse——“最简单的融合方法,直接相加”AddFuse是最简单的色融合方法,直接将两种特征相加就行了,... 查看详情

《南溪的目标检测学习笔记》——目标检测的评价指标(map)

1介绍在本文中我们将介绍目标检测任务中的mAP~2COCO-mAP在介绍mAP时,我们选择的是COCO-mAP,这是现在最为流行的指标;关于COCO-mAP的形象解释,请参考视频《霹雳吧啦Wz——目标检测mAP计算以及coco评价标准》在具体... 查看详情

《南溪的目标检测学习笔记》——特征归一化(mead&std)(代码片段)

keywords:FeatureNormalization,特征归一化1介绍在这篇博文中,我们将介绍特征归一化(FeatureNormalization)方法;特征归一化FN一般用于图像预处理中,使用T.Normalize(mean,std)来实现;所以在进行归一化操作时,... 查看详情

《南溪的目标检测学习笔记》——验证模式下出现“processfinishedwithexitcode137(interruptedbysignal9:sigkill)“的问题

1问题描述在验证模式下运行代码的时候,出现这样的错误:Processfinishedwithexitcode137(interruptedbysignal9:SIGKILL)根据网上的资料,这应该是内存溢出引起的问题;2引发原因2.1验证样本粒子数设置过大当验证样本粒子数... 查看详情

夏侯南溪搭建目标检测模型——数据读取篇(代码片段)

1介绍在PyTorch中定义自己的数据集类,需要继承父类Dataset,自定义的Dataset类需要实现以下三个函数:init():用来实现初始化的操作;len():用来返回数据集的样本数目;getitem():tosupporttheindexingsuchth... 查看详情

睿智的目标检测65——pytorch搭建detr目标检测平台(代码片段)

睿智的目标检测65——Pytorch搭建DETR目标检测平台学习前言源码下载DETR实现思路一、整体结构解析二、网络结构解析1、主干网络Backbone介绍a、什么是残差网络b、什么是ResNet50模型c、位置编码2、编码网络Encoder网络介绍a、Transformer... 查看详情

保研笔记八——yolov5项目复习(代码片段)

学习转载自:睿智的目标检测56——Pytorch搭建YoloV5目标检测平台_Bubbliiiing的博客-CSDN博客_睿智yolo Pytorch搭建自己的YoloV5目标检测平台(Bubbliiiing源码详解训练预测)-主干网络介绍_哔哩哔哩_bilibili还有一些视频的学习... 查看详情

5.使用pytorch预先训练的模型执行目标检测(代码片段)

5.使用PyTorch预先训练的网络执行目标检测这篇博客将介绍如何使用PyTorch预训练的网络执行目标检测,这些网络是开创性的、最先进的图像分类网络,包括使用ResNet的更快R-CNN、使用MobileNet的更快R-CNN和RetinaNet。具有ResNet50... 查看详情

pytorch学习笔记:pytorch进阶训练技巧(代码片段)

PyTorch实战:PyTorch进阶训练技巧往期学习资料推荐:1.Pytorch实战笔记_GoAI的博客-CSDN博客2.Pytorch入门教程_GoAI的博客-CSDN博客本系列目录:PyTorch学习笔记(一):PyTorch环境安装PyTorch学习笔记(二)... 查看详情

pytorch学习笔记8.实现线性回归模型

PyTorch学习笔记8.实现线性回归模型一、回归的概念1.概念2.目标3.应用4.训练线性回归的步骤二、数据集1.构造数据集2.把数据集转为pytorch使用的张量三、模型1.模型定义2.损失函数3.优化器四、使用模型1.训练2.测试3.预测4.可视化五... 查看详情

睿智的目标检测53——pytorch搭建yolox目标检测平台(代码片段)

睿智的目标检测53——Pytorch搭建YoloX目标检测平台学习前言源码下载YoloX改进的部分(不完全)YoloX实现思路一、整体结构解析二、网络结构解析1、主干网络CSPDarknet介绍2、构建FPN特征金字塔进行加强特征提取3、利用YoloHea... 查看详情