草庐IT

CTC-Loss

全部标签

损失函数——对数损失(Logarithmic Loss,Log Loss)

对数损失(LogarithmicLoss,LogLoss)是一种用于衡量分类模型的损失函数。它通常用于二元分类问题,但也可以用于多元分类问题。在二元分类问题中,LogLoss基于预测概率和实际标签的对数误差来计算损失。对于一个样本 i,假设它的实际标签是 yi​(取值为0或1),模型预测的概率为 y​^i​(0≤ y^i​​ ≤1),则它的对数损失为: 其中,N 是样本总数。可以看出,当预测的概率接近于实际标签时,对数损失接近于0,而当预测的概率偏离实际标签时,对数损失会增加。对于多元分类问题,LogLoss的定义稍有不同。假设有 K 个类别,样本 i 的实际标签是yi,j​(取值为0或1,表

loss.backward()处遇到“RuntimeError: Found dtype Double but expected Float”

错误信息类型错误,计算loss值的函数传入的参数类型不统一。解决方法查看上文loss计算代码部分的参数类型,如loss=f.mse_loss(out,label),检查out和label的类型都是torch.float类型即可。使用label.dtype查看tensor的类型。具体流程报错定位在这一行寻思着是否是loss类型的问题,于是我就添加loss=loss.to(torch.float32)但是还是报错在此处,于是开始考虑是否是上文loss计算代码部分的参数类型有问题添加这两行,再次运行,sucess,完美

深度学习——损伤函数(dice_loss)

'dice_loss'代表的是一种常用于图像分割任务的损失函数,DiceLoss。该损失函数基于Dice系数(DiceCoefficient)进行定义,可以用于评估预测分割图像与真实分割图像之间的相似度。在二分类问题中,Dice系数的计算公式为:Dice=2*(|X∩Y|)/(|X|+|Y|)其中,X表示预测分割图像中为正的像素集合,Y表示真实分割图像中为正的像素集合,|X|和|Y|分别表示像素集合的大小,|X∩Y|表示两个像素集合的交集大小。DiceLoss的定义基于Dice系数的倒数,即:DiceLoss=1-Dice因此,当Dice系数越大,DiceLoss越小,表示预测分割图像与真实分

Wise-IoU: Bounding Box Regression Loss with Dynamic Focusing Mechanism

Wise-IoU:BoundingBoxRegressionLosswithDynamicFocusingMechanism一、引言二、实现细节三、实验一、引言本文通过估计锚框的离群度定义一个动态聚焦机制(FM)f(β),β=LIoULIoU\frac{L_{IoU}}{L_{IoU}}LIoU​LIoU​​。FM通过将小梯度增益分配到具有小β的高质量锚框,使锚框回归能够专注于普通质量的锚框。同时,该机制将小梯度增益分配给β较大的低质量锚箱,有效削弱了低质量样例对锚框回归的危害。作者将这种操作称之为明智的IOU(WIoU)。二、实现细节由于训练数据不可避免地包含低质量的例子,距离、横纵比等几何

Paper Reading - Loss系列 - Focal Loss for Dense Object Detection

确实发现大神的文章都比较简单明了实用-ICCV2017计算机视觉-Paper&Code-知乎Abstracthttps://arxiv.org/abs/1708.02002https://arxiv.org/abs/1708.02002总结主要为以下几点OHEM算法虽然增加了错分类样本的数量,但是直接把容易样本扔掉了,可会导致过杀率上升,作者同时也做了对比实验,AP有3.+的提升FocalLoss可以通过减少易分类样本的权重,使得模型在训练时更专注于难分类的样本下面这张图展示了FocalLoss取不同的gama时的损失函数下降。Algorithm文章对最基本的对交叉熵进行改进,作为本文实验的b

Pytorch3d中的倒角损失函数Chamfer Distance Loss的用法(pytorch3d.loss.chamfer_distance)

API文档在这里源码在这里之前看到的一个干货满满的Pytorch3D安装指导与简单例子的帖子在这里 官方tutorials中提到的用法在下面这个代码块里面,前面后面东西都挺多的就把和chamfer_distance相关的摘到了这里frompytorch3d.opsimportsample_points_from_meshesfrompytorch3d.lossimport(chamfer_distance,mesh_edge_loss,mesh_laplacian_smoothing,mesh_normal_consistency,)#Wesample5kpointsfromthesurfac

YOLOv5s训练结果result.txt绘制loss/mAP等曲线对比图

YOLOv5s训练结果result.txt绘制loss/mAP等曲线对比图引用代码'''我的训练完是csv格式,另存为txt格式即可画loss图的代码,前提是results.txt文档中只能是数字,先删除掉txt中的字符我的第1列是epoch是0,1,2,...的格式,删掉逗号第2、3、4列分别是box、objectness、classification的loss值'''importosimportnumpyasnpimportmatplotlib.pyplotaspltimportpylabasplfrommpl_toolkits.axes_grid1.inset_locatorimport

yolo系列算法训练时loss出现nan值,解决办法(GTX16xx系列显卡的问题)

1.首先这个问题时由于GTX16xx系列显卡导致的,只要是使用GTX16xx系列显卡跑yolo系列算法的时候基本上都会遇到这个问题,真是搞得我头大,当我第一次遇到这个问题的时候,我只是简单地认为是学习率过大导致梯度爆炸,但是后来我上网查资料才发现问题出现在我的显卡上面,我的是GTX1650(还能再战),GTX16xx系列显卡在cuda使用较新版本时会出现该问题。导致了PyTorch里面一些CUDA代码有些问题,就是fp16(float16)数据类型在卷积等一些运算的时候会出现nan值。导致了训练时候出现了nan值。2.解决方法解决方法一:我在网上查询资料发现,这个问题用CPU跑的时候不会出现问

深度学习:根据 loss曲线,对模型调参

深度学习模型调参笔记trainloss下降,valloss下降,说明网络仍在学习;奈斯,继续训练trainloss下降,valloss上升,说明网络开始过拟合了;赶紧停止,然后数据增强、正则trainloss不变,valloss不变,说明学习遇到瓶颈;调小学习率或批量数目trainloss不变,valloss下降,说明数据集100%有问题;检查数据集标注有没有问题trainloss上升,valloss上升,说明网络结构设计不当,训练超参数设置不当,数据集经过清洗等问题。loss震荡?轻微震荡一般是正常的,在一定范围内,一般来说BatchSize越大,其确定的下降方向越准,引起训练震荡越小,如果