
深度学习500问
文章平均质量分 92
只有不断的思考与探索工程与理论的底层才能更好的解决实际的应用需求,欢迎各位与博主一起研究深度学习中一些潜在解答的问题
万里鹏程转瞬至
一名热爱深度学习算法实践的算法工程师,工作日长期活动在线,有项目研发技术问题均可私聊。
展开
-
一文了解22-24年的7篇知识蒸馏相关论文、实现代码及其有益效果
2024年,SDD指出困难样本中存在类间相似情况,提出基于SPP得到21个分块然后对比局部块与全局块的结果差异区分差异化设置loss权重,其效果比Logit Standardization要好;2024年,Logit Standardization提出了直接基于logit值计算KD loss的偏差问题,将标准化添加到KD中,属于对logit值蒸馏方法的改进,并在各种现有的知识蒸馏方法应用Standardization中,取得了有效增益。可以与SDD方法共同补充到各种基于逻辑值的蒸馏方法中。原创 2025-02-01 22:45:37 · 1591 阅读 · 0 评论 -
yolo系列模型的知识蒸馏效果探索
得出以下结论:1、基于知识蒸馏得到学生模型没有经迁移学习后得到的模型精度高的现象,这表明`只有在迁移学习与直接训练时精度相同,才优先考虑知识蒸馏`;2、发现可以发现未得到有效训练的模型,再次进行知识蒸馏时,可以有显著涨点。基于该经验,`对于提到知识蒸馏大幅度提升模型效果,可能要论证一下原始的学生模型是否得到收敛。同时,要对比模型精度提升,是否由模型二次训练带来的迭代数变多导致的提升`;3、发现基于对coco预训练后的迁移权重,再次进行知识蒸馏时,可以发现基本上没有有效作用。这表明`知识蒸馏中,原创 2025-01-20 00:23:04 · 1419 阅读 · 0 评论 -
知识蒸馏中有哪些经验| 目标检测 |mobile-yolov5-pruning-distillation项目中剪枝知识分析
项目时间:2022年mobile-yolov5-pruning-distillation是一个以yolov5改进为主的开源项目,主要包含3中改进方向:更改backbone、模型剪枝、知识蒸馏。这里主要研究其知识蒸馏部分,根据其分享的实验数据,获取对目标检测中模型剪枝的认知。希望阅读本博文的读者,能给项目一个satr。该项目中关于知识蒸馏首先介绍了基本分类情况,关于实验主要是分享了三种蒸馏策略下的模型效果。蒸馏是希望将T模型学习到的知识迁移到S模型中。原创 2024-11-29 23:45:00 · 863 阅读 · 0 评论 -
模型训练过程的显存占用优化
在冻结模型部分参数时,理论上被冻结的参数不需要梯度,应该可以降低训练过程的显存占用。然而,在博主的实际测试中,冻结模型参数并没有显著降低模型参数占用。为此对训练提醒代码进行优化,意图实现模型显存占用的优化。通过对训练过程中的激活值与梯度值的优化,在针对冻结95%的训练场景,模型训练速度可以加速20%,模型显存占用降低到原来的22%(拟定torch.cuda环境占用显存为1.4g)后续的显存占用,均基于nvitop命令实现。原创 2024-11-17 23:18:36 · 272 阅读 · 0 评论 -
模型训练过程的显存占用实测
在这里,基于模型1与模型2初始化的显存差异,可以确认resnet101的显存占用为0.3887-0.2207=0.1679G=167.9M ,根据参数量40.731M推算理论显存占用应当为162.924M。基于模型1与模型2初始化的显存差异,可以确认resnet50的显存占用为0.2441-0.1680=0.0761G=76.1M ,根据参数量22.618M推算理论显存占用应当为90.472M。Step2:开辟一块新的存储空间,将FP32精度的模型权重转换为FP16精度的模型权重。原创 2024-11-17 22:23:44 · 1239 阅读 · 0 评论 -
FasterNet中Pconv的实现、效果与作用分析
发表时间:2023年3月7日论文地址:https://arxiv.org/abs/2303.03667项目地址:https://github.com/JierunChen/FasterNetFasterNet-t0在GPU、CPU和ARM处理器上分别比MobileViT-XXS快2.8×、3.3×和2.4×,而准确率要高2.9%。原创 2024-11-09 22:52:50 · 1026 阅读 · 0 评论 -
多模态模型中的动态分辨率总结
在最近的多模态模型中,均表明动态分辨率策略是提升模型性能的要点(),动态分辨率可以使模型能针对不同的数据场景,与固定分辨率相对立,避免了将高清数据resize到低分辨率,从而丢失大量信息,导致在特定任务下效果下降(如InfoVQA、HallusionBench和OCRBench等任务,具体与数据任务相关)。为此对InternVL 1.5、LLaVA-OneVision、ORYX MLLM、qwen2-vl等论文中提到到动态分辨率规则进行对比分析。原创 2024-11-06 21:45:21 · 2112 阅读 · 0 评论 -
模型剪枝实战|基于torch-pruning库代码对yolov8进行剪枝
torch-pruning库是一个开源的模型剪枝库,yolov8是是一个2年前较为先进的目标检测模型。在torch-pruning库中有很多模型剪枝案例,本文以yolov8剪枝代码为案例进行分析,代码路径在torch-pruning项目下examples\yolov8\yolov8_pruning.py。本博文基于官方代码对coco128数据进行剪枝尝试,发现剪枝后的map有6个点的下降,这主要是coco128数据不够,同时官方的剪枝代码训练参数不够灵活。最终提出了修改意见,也对代码中关键部分进行分析。原创 2024-07-27 12:25:33 · 3434 阅读 · 9 评论 -
模型剪枝中有哪些经验 | yolov5prune项目中模型剪枝经验分析
项目地址:https://github.com/midasklr/yolov5prune项目时间:2022年1月yolov5prune项目虽然是一个2年前的项目,但其是一个比较良好的剪枝案例。从中可以学习到模型剪枝相关的必要知识,为此对其信息及相关代码进行总结性分析,若要使用该项目则需要自行阅读项目md文档。根据项目分析,得出以下经验信息:1、进行稀疏化训练后,模型精度会有所下降,但稀疏化训练后剪枝模型(withou finetrun)精度下降不大,再次finetrun后精度会恢复;原创 2024-07-22 03:15:00 · 1419 阅读 · 2 评论 -
模型剪枝中的预训练权重真的有用么?重新思考模型剪枝的价值二
根据RETHINKING THE VALUE OF NETWORK PRUNING论文提供的数据初步整理出了模型剪枝的信息,但不够精练,故而在此深入分析。主要解决以下问题:1、模型剪枝真的有用么? 2、什么样的方案模型剪枝效果好?3、模型剪枝对性能影响大么?通过分析,得出结论,剪枝是有用的;自动结构化剪枝效果是综合效果最优的;对于任意规模的问题训练处的模型,剪枝50%基本上不会影响精度。原创 2024-07-13 23:23:34 · 945 阅读 · 0 评论 -
图像超分辨率重建相关概念、评价指标、数据集、模型
超分辨率(Super-Resolution),简称超分(SR)。是指利用光学及其相关光学知识,根据已知图像信息恢复图像细节和其他数据信息的过程,简单来说就是增大图像的分辨率,使图像更加“清晰”,尽可能保证图像质量不下降。超分辨率的方法包括传统方法和深度学习的方法,有关超分辨率方法分类如下图所示。深度学习方法在性能上远远领先于传统方法,有着更好的图像超分辨率表现。知乎用户 阿布的足迹 https://zhuanlan.zhihu.com/p/558813267从单一低分辨率图像中恢复高分辨率图像。原创 2024-05-20 00:52:19 · 9122 阅读 · 2 评论 -
模型剪枝中的预训练权重真的有用么?重新思考模型剪枝的价值
过度参数化是深度神经网络中一个被广泛存在的情况,这导致了高计算成本和高推理内存占用。在低资源环境下,网络剪枝被广泛用于降低深度模型的推理成本。典型的网络剪枝过程包括三个阶段: 1)训练一个大型的、过参数化的模型(有时有预训练后的模型),2)根据一定的标准对训练后的大型模型进行剪枝,3)对剪枝后的模型进行微调,以恢复失去的性能。网络剪枝方法的一个主要分支是个体权重剪枝(非结构化剪枝),该方法基于权重对结果的贡献进行剪枝(如L1、L2范数等)。然而,这些。原创 2024-04-14 10:57:48 · 1321 阅读 · 0 评论 -
如何实现sam(Segment Anything Model)|fastsam模型
通过本博文的查阅与分析,实现fastsam是较为简便的,且fastsam的性能可以随着全景实例分割模型的发展而进一步提升,同时也说明了fastsam中prompt的实现。而在sam中,各种实现较为生涩难懂,主要说明sam的模型结构,基本原理,数据生成范式。sam的亮点在于基于少量的语义分割标签,迭代出了一个1.1B 标签超大型数据集,其不断扩展标注数据量的思想是值得学习的;而在fastsam中则是对SAT重新定义得出SAT,基于对全景实例分割模型的后处理实现了类似sam的性能。原创 2024-03-13 22:48:16 · 3488 阅读 · 0 评论 -
如何选择出最适合的backbone模型?图像分类模型性能大摸底
到2023年图像分类backbone模型已经拓展到了几十个系列,而有的新算法还在采样vgg、resnet做backbone,比如2022年提出的GDIP-YOLO还在用VGG16做IA参数预测,那是在浪费计算资源并限制了模型性能的提升,应该将目光放到现在的最新模型中。以PaddleClas所支持的模型为基准对现行图像分类模型进行进行一个摸底,具体分为移动端模型、桌面端模型、服务器级模型。以在imagenet数据集上的精度为准,精度在80%附近的只考虑移动端模型,精度在85%附近考虑服务器级模型,精度超过85原创 2023-12-22 22:25:30 · 2408 阅读 · 0 评论 -
语义分割中的一些模型的分类汇总
语义分割是深度学习中的一个重要应用领域。自Unet提出到现在已经过去了8年,期间有很多创新式的语义分割模型。简单的总结了Unet++、Unet3+、HRNet、LinkNet、PSPNet、DeepLabv3、多尺度attention、HarDNet、SegFormer、SegNeXt等10个语义分割模型的基本特性。原创 2023-03-17 20:10:09 · 6321 阅读 · 0 评论 -
MoblieNetV1、V2、V3、ViT四种Moblie模型的分析对比
从MoblieNetV1、MoblieNetV2、MoblieNetV3到MoblieNetVit,模型系列经过了4次的迭代发展,但不离本质就是对conv的近似替代。先对conv的功能进行定义和拆分,然后对每一个子功能进行实现。试图以一个低参数高flop的block来替换掉原来的cnn层;在MoblieNet中,都是使用conv进行下采样,并没有使用池化层。MoblieNetV1提出了conv可以拆分为深度卷积和点卷积的组合,用深度分离卷积来近似标准卷积,虽然有一定的精度损失(越一个点),但能极大的降低原创 2023-07-04 22:27:10 · 4128 阅读 · 1 评论 -
卷积神经网络中池化层的详细介绍
自从2021年Transformer被引入到视觉模型后,卷积神经网络基本上要末路了,虽然此后也有ConvNeXt、SegNeXt成功挑战过Transformer的地位,但也无力挽回卷积神经网络的大势已去。ConvNeXt使用了一些列的训练技巧(AdamW 优化器、Mixup、Cutmix、RandAugment、Random Erasing等数据增强技)和随机深度和标签平滑等正则化方案,也不过是勉强将 ResNet-50 模型的性能从 76.1% 提高到了 78.8%。原创 2023-06-20 21:50:56 · 7828 阅读 · 1 评论 -
深度学习常用的backbone有哪些
深度学习中常用的backbone有resnet系列(resnet的各种变体)、NAS网络系列(RegNet)、Mobilenet系列、Darknet系列、HRNet系列、Transformer系列和ConvNet。原创 2022-09-28 11:09:27 · 12765 阅读 · 2 评论 -
深度学习中的激活函数有哪些?
深度学习中的激活函数有Sigmoid、Softmax、Tanh、ReLU系列(ReLU、Leaky ReLU、Randomized LeakyReLU、PReLU、ELU、Softplus)、Maxout、Softsign(对称函数)、GELUs(dropout于relu的结合)、Swish、Mish等。使用激活函数只有一个目的:为多层神经网络模型提供非线性。因为,没有激活函数时,多层神经网络的多个矩阵连乘可以化简为单层神经网络的矩阵乘法。...原创 2022-08-31 23:30:00 · 1826 阅读 · 3 评论 -
深度学习视觉领域中的attention机制的汇总解读(self-attention、交叉self-attention、ISSA、通道注意、空间注意、位置注意、Efficient Attention等)
self-attention来自nlp的研究中,在深度学习视觉领域有不少新的attention版本,为了解各种attention机制。博主汇集了6篇视觉领域中attention相关的论文,分别涉及DAnet(位置注意+通道注意)、CBAM(通道注意+空间注意)、Attention U-Net(注意Gate)、SAGAN(self-attention)、CCNet(交叉self-attention)、ISSA(Long-range self-Attention + Short-range self-Atten原创 2022-08-26 10:45:57 · 4483 阅读 · 0 评论 -
深度学习中有哪些较为有效的数据增广方式?
在图像分类任务中,图像数据的增广是一种常用的正则化方法,常用于数据量不足或者模型参数较多的场景。在本章节中,我们将对除 ImageNet 分类任务标准数据增广外的8种数据增广方式进行简单的介绍和对比,用户也可以将这些增广方法应用到自己的任务中,以获得模型精度的提升。这8种数据增广方式在ImageNet上的精度指标如下所示。...转载 2022-08-15 20:21:32 · 4355 阅读 · 0 评论 -
深度学习中有哪些常见的训练技巧
自深度学习发展以来,就有很多关于优化器的研究者工作,优化器的目的是为了让损失函数尽可能的小,从而找到合适的参数来完成某项任务。目前业界主要用到的优化器有SGD、RMSProp、Adam、AdaDelt等,其中由于带momentum的SGD优化器广泛应用于学术界和工业界,所以我们发布的模型也大都使用该优化器来实现损失函数的梯度下降。带momentum的SGD优化器有两个劣势,其一是收敛速度慢,其二是初始学习率的设置需要依靠大量的经验,然而如果初始学习率设置得当并且迭代轮数充足,该优化器也会在众多的优化器中脱颖转载 2022-08-15 14:47:53 · 3124 阅读 · 0 评论 -
该如何训练好深度学习模型?
如做图像分类时,resnet系列、densenet系列、efficientnet系统、hrnet系列都可以测试一下。但是,并非所有的工作都能用到预训练模型,有的时候完全需要我们。原创 2022-08-04 17:39:02 · 3589 阅读 · 0 评论 -
理论问题与工程问题的差异在哪里?
理论问题与工程问题的差异有哪些,这是一个高深的问题,博主的见解不一定对,仅供参考。博主在还是硕士时,沉寂于水论文的庸俗之道中,也曾经有过很多惊艳的“创新”想法,结果上网一搜别人早就发了论文。整体来说,博主水论文是一直是围绕着理论问题在开展工作;后来博主面向工作时,则一直面向工程问题开展工作。因此,对理论问题与工程问题颇有思考,故写下这篇浅薄的博文。博主这里讨论的范围仅限于深度学习领域,其他一概不论。......原创 2022-08-01 16:34:08 · 1813 阅读 · 0 评论 -
深度学习可以求解特定函数的参数么?
深度学习作为当下最为热门的技术,可以求解很多产业问题,如情感分析、故障预测、人脸识别、股票趋势预测,气象预测等等。这些应用展示了深度学习强大的能力,那么可以将深度学习技术应用到特定函数的参数求解上么?先上答案,不可以。深度学习技术无法应用到特定函数的参数求解问题上,因为深度学习虽然可以拟合任意函数的,但是却无法给出具体的函数形式。就如resnet、densenet一样,虽然知道他们很好的解决的imagenet数据集的分类问题,但却无法给出具体的函数的形式。...原创 2022-07-30 09:28:23 · 583 阅读 · 4 评论 -
深度学习中单个数字可以做多分类么?
单个数字做不了多分类,本质原因是单个数字只能描述一种属性,一种属性最多只能判断两种类别。所以,单个数字只能做二分类。如果能在一个数字内解析出多种属性,比如说嵌入,那么就可以对单个数字做多分类。但是由于嵌入的方式忽略数值本身,那也就不可能解析数字内有的属性。亦或者,是人工对数字特征进行解析,除特定数的余数是多少,前n位的值是多少,后n位的值是多少。比如输入n个数据,可以做k(k>=2)个类别的分类。这里k可以大于n,因为通过数据之间的线性变化与排列组合,可以形成新的属性。......原创 2022-07-18 00:05:36 · 583 阅读 · 0 评论