GiantPandaCV

其他

GPT4 VS Claude In MLIR

请解释一下MLIR中的BufferizationGPT4:在这里插入图片描述Claude:在这里插入图片描述在这里插入图片描述GPT4的回答宏观一些,Claude的回答更具体一些,都有优点。Q17:
2023年4月22日
其他

一文理解“上下文学习”----大语言模型突现能力

预测错误的样本都包含哪些类型。https://ai.stanford.edu/blog/in-context-learning/这里我们选取了前10个最常见的错误类型,其中图标中的
2023年2月16日
其他

DeepLSD:基于深度图像梯度的线段检测和细化

%。注意,优化并没有给DeepLSD带来多大提升,这是因为它的原始预测线已经是亚像素精确的,并且优化受到DF和AF分辨率的限制。表3
2023年1月6日
其他

Diffusion Model的演进 NeurIPS 2022最佳论文:Imagen

paper的入围名单,以往NeurIPS往往偏好理论分析的论文,而对一些看起来很有趣效果很惊艳的工作貌似不怎么感冒。而意料之外,但又在情理之中地,Imagen入围了这次outstanding
2022年12月24日
其他

【BBuf的CUDA笔记】二,解析 OneFlow BatchNorm 相关算子实现

:https://docs.nvidia.com/deeplearning/cudnn/api/index.html#cudnnBatchNormalizationForwardTrainingEx
2022年12月22日
其他

【BBuf 的CUDA笔记】一,解析OneFlow Element-Wise 算子实现

https://developer.nvidia.com/blog/cuda-pro-tip-increase-performance-with-vectorized-memory-access/
2022年12月11日
其他

一文弄懂 Diffusion Model

的形式可以根据贝叶斯公式推导得到(推导过程详见参考资料[4]第12页):也是一个高斯分布。其方差从公式上看是个常量,所有时间步的方差值都是可以提前计算得到的:计算伪代码如下:betas
2022年11月26日
其他

基于 Flowflops 详解深度学习网络的 FLOPs 和 MACs 计算方案

(https://github.com/Lyken17/pytorch-OpCounter/blob/master/benchmark/README.md),翻译如下:MACs,
2022年11月15日
其他

CeiT:训练更快的多层特征抽取ViT

【GiantPandaCV导语】来自商汤和南洋理工的工作,也是使用卷积来增强模型提出low-level特征的能力,增强模型获取局部性的能力,核心贡献是LCA模块,可以用于捕获多层特征表示。相比DeiT,训练速度更快。引言针对先前Transformer架构需要大量额外数据或者额外的监督(Deit),才能获得与卷积神经网络结构相当的性能,为了克服这种缺陷,提出结合CNN来弥补Transformer的缺陷,提出了CeiT:(1)设计Image-to-Tokens模块来从low-level特征中得到embedding。(2)将Transformer中的Feed
2022年1月13日
其他

CoAtNet: 90.88% Paperwithcode榜单第一,层层深入考虑模型设计

out参考https://arxiv.org/pdf/2106.04803.pdfhttps://github.com/chinhsuanwu/coatnet-pytorchEND
2022年1月11日
其他

用Welford算法实现LN的方差更新

当数据比较大的时候,两遍循环耗时也比较多Naive方法我们还知道方差和均值的一个关系式子相比Two-pass方法,这种方法仅仅只需要遍历一遍数据。我们只需要在外面统计两个变量,sum
2021年9月13日
其他

EagleEye:一种用模型剪枝的快速衡量子网络性能的方法

[GiantPandaCV导语]:模型剪枝算法核心在于找到“不重要”的参数并且实现裁剪。为寻找到较优的剪枝策略,我们往往需要尝试多种剪枝策略和剪枝策略性能评估。通常剪枝策略评估方法是将剪枝后的模型训练到收敛或者训练规定好数量epoch后进行性能比较。不管是人工调试剪枝策略还是自动搜索剪枝策略,都需要多次评估剪枝策略。剪枝策略的评估效率一定程度上影响了整体压缩效率。因此,本文提出了一种能够快速衡量剪枝后模型性能的方法,经实验能够对MobilenetV1减少50%的FLOPs情况下,仍能保证在Imagenet数据集上Top1精度达到70.9%。论文链接:https://arxiv.org/abs/2007.02491论文repo:https://github.com/anonymous47823493/EagleEye引言随着AI技术的发展,人们对于AI的需求也越发多样化。在手机端、嵌入式设备上部署模型的需求已经十分普遍。一般移动端、嵌入式设备无法满足神经网络的计算需求。因此,我们一般需要利用模型压缩技术,尽量不影响模型性能的前提下,减少模型的参数量和计算量,使其满足硬件的限制。将剪枝后模型训练至收敛后,评估网络性能。将剪枝后模型训练规定数量epoch后,评估网络性能。直接对剪枝后的模型评估性能当需要进行多次迭代尝试时,前两种方法所需要的时间成本都很较大,第三种办法常常面临不准确的问题。因此,EagleEye提出一种快速并且准确衡量子网络性能的方法,加快剪枝的过程。EagleEye动机传统模型剪枝的三步流程是:模型预训练、模型剪枝和finetuning。为什么会需要finetuning这个环节呢?因为剪枝后模型精度下降比较明显,finetuning能够有效提升剪枝后模型精度。EagleEye论文中,对这一现象提出了两个问题:裁剪的权重通常被认为是“不重要”的权重,为什么模型精度还会有如此大的下降?未进行finetuning的模型精度和finetuning收敛后的模型精度是否成存在正相关?针对这两个问题,EagleNet论文中进行了研究和实验。如下图,右图主要展示了在finetuning过程中模型权重的变化情况,其中x轴表示卷积核的L1范数大小,y轴表示卷积核数量,z轴表示不同epoch下权重分布情况。在finetuning过程中,权重分布只发生了一点偏移,但是finetuning前后模型性能发生巨大变化。在左图中,我们可以看出finetuning前后的模型性能分布差别较大,finetuning前后模型的精度没有较强的正相关那么问题的答案是什么呢?EagleNet论文认为是网络中的BN层对于模型的精度评估有较强的影响。在没有进行finetuning的模型,模型的BN层参数继承于原模型,和当前模型的权重参数并不match,影响了模型的精度,并且导致finetuning前后模型精度不成正相关的问题在finetuning的过程,模型的精度逐渐在上升,是因为其参数在逐渐被优化,BN层的参数也在逐渐“适应”新的网络结构。但是这种方法并不高效,因此论文中引出Adaptive
2021年4月27日
其他

onnx2pytorch和onnx-simplifier新版介绍

debug=False)这行代码里面的debug设置False重新运行模型即可定位到转换失败的OP,然后你可以在工程提出issue或者自己解决然后给本工程PR。0x3.6
2021年3月1日
其他

ONNX 再探

OP在Pytorch和ONNX实现时的不一致导致ONNX模型变得很复杂,这种问题感觉是基于ONNX支持模型部署时的常见问题,虽然onnx-simplifier已经解决了一些问题,但也不能够完全解决。
2021年2月16日
其他

ONNX初探

接着,程序使用到了check_and_update_input_shapes接口,这个接口的代码示例如下,它可以用来判断输入的格式是否正确以及输入模型是否存在所有的指定输入节点。
2021年1月23日
其他

解析 Vision Transformer

dim=1)知道这个操作,我们也就能明白为什么前面的pos_embedding的第一维也要加1了,后续将pos_embedding也加入到x
2021年1月6日
其他

解析Transformer模型

❝GiantPandaCV导语:这篇文章为大家介绍了一下Transformer模型,Transformer模型原本是NLP中的一个Idea,后来也被引入到计算机视觉中,例如前面介绍过的DETR就是将目标检测算法和Transformer进行结合,另外基于Transformer的魔改工作最近也层出不穷,感兴趣的同学可以了解一下。❞要读DETR论文视频解读的同学可以点下方链接:CV和NLP的统一,DETR
2020年10月7日
其他

如何让你的YOLOV3模型更小更快?

fp.close()所以这个工程对我们来说是非常容易上手使用的,特别是关注公众号时间稍长的读者都知道我们针对U版的YOLOV3写了一个非常不错的PDF,地址如下:从零开始学习YOLOv3教程资源分享
2020年7月2日
其他

CV和NLP的统一,DETR 目标检测框架论文解读

等原创或者翻译视频,欢迎来B站Gank,B站内搜GiantPandaCV就可以了。对公众号某些原创文章不理解也可以留言,我们也会考虑在视频中进行讲解和答疑哦。欢迎关注GiantPandaCV,
2020年6月2日
其他

在小目标检测上另辟蹊径的SNIP

但是从Table1的实验结果看出,这个模型的效果更差了,猜测原因是因为忽略这些训练数据(大概占比30%)所带来的的数据损失对模型的影响更大,具体的检测结果如Figure5(2)所示。「MST」
2020年5月10日
其他

从零开始学习YOLOv3教程资源分享

《从零开始学习YOLOv3》教程是首发于GiantPandaCV公众号的一个完整的系列,针对的是Github上ultralytics版本的yolov3进行的讲解,地址为:https://github.com/ultralytics/yolov3每一篇单独的文章都首发于GiantPandaCV公众号,这个系列完结后提供了pdf版方便大家学习,整理成独家资源《从零开始学习YOLOv3》教程。从零开始学习YOLOv3教程封面GiantPandaCV公众号简介GiantPandaCV是由专注于技术的一群95后创建,专注于机器学习、深度学习、计算机视觉、图像处理等领域。每天更新一到两篇相关推文,希望在传播知识、分享知识的同时能够启发你
2020年4月3日
其他

目标检测算法之CVPR 2018 Cascade R-CNN

Loss这种Trick在比赛中比较常用,就是说按照数据集的评价指标来自定义Loss(一般是把和指标相关的那一项加在原始的Loss后面)往往可以取得更好的效果。Figure3(d)表示Cascade
2020年3月24日
其他

【CV中的特征金字塔】二,Feature Pyramid Network

connection带来的增益,上表中的实验中能得到几个结论:通过(a)和(b)比较,说明随着网络深入,小目标检测效果会变差,大目标检测效果会变好。通过(d)和(e)比较,说明lateral
2020年3月1日
其他

【CV中的特征金字塔】一,工程价值极大的ASFF

BaseLine,我相信有不少小伙伴和我一样感兴趣。这个可以去源码一探究竟了。这是近几个月最喜欢的一篇论文了,不仅仅是因为它的精度非常强,而且从数学角度来简洁的说明这个方法的有效性也是棒的。7.
2020年3月1日
其他

【从零开始学习YOLOv3】7. 教你在YOLOv3模型中添加Attention机制

前言:【从零开始学习YOLOv3】系列越写越多,本来安排的内容比较少,但是在阅读代码的过程中慢慢发掘了一些新的亮点,所以不断加入到这个系列中。之前都在读YOLOv3中的代码,已经学习了cfg文件、模型构建等内容。本文在之前的基础上,对模型的代码进行修改,将之前Attention系列中的SE模块和CBAM模块集成到YOLOv3中。1.
2020年1月23日
其他

【从零开始学习YOLOv3】6. 模型构建中的YOLOLayer

前言:上次讲了YOLOv3中的模型构建,从头到尾理了一遍从cfg读取到模型整个构建的过程。其中模型构建中最重要的YOLOLayer还没有梳理,本文将从代码的角度理解YOLOLayer的构建与实现。1.
2020年1月22日
其他

【从零开始学习YOLOv3】5. 网络模型的构建

前言:之前几篇讲了cfg文件的理解、数据集的构建、数据加载机制和超参数进化机制,本文将讲解YOLOv3如何从cfg文件构造模型。本文涉及到一个比较有用的部分就是bias的设置,可以提升mAP、F1、P、R等指标,还能让训练过程更加平滑。1.
2020年1月20日
其他

【从零开始学习YOLOv3】4. YOLOv3中的参数进化

前言:YOLOv3代码中也提供了参数进化(搜索),可以为对应的数据集进化一套合适的超参数。本文建档分析一下有关这部分的操作方法以及其参数的具体进化方法。1.
2020年1月19日
其他

【从零开始学习YOLOv3】3. YOLOv3的数据加载机制和增强方法

前言:本文主要讲YOLOv3中数据加载部分,主要解析的代码在utils/datasets.py文件中。通过对数据组织、加载、处理部分代码进行解读,能帮助我们更快地理解YOLOv3所要求的数据输出要求,也将有利于对之后训练部分代码进行理解。1.
2020年1月18日
其他

【从零开始学习YOLOv3】2. YOLOv3中的代码配置和数据集构建

更新cfg文件,修改类别相关信息打开cfg文件夹下的yolov3.cfg文件,大体而言,cfg文件记录的是整个网络的结构,是核心部分,具体内容讲解请参考之前的文章:【从零开始学习YOLOv3】1.
2020年1月17日
其他

【从零开始学习YOLOv3】1. YOLOv3的cfg文件解析与总结

RANDOM。#steps#比较好理解,按照steps来改变学习率。steps=400000,450000scales=.1,.1#在达到40000、45000的时候将学习率乘以对应的scale2.
2020年1月16日
其他

深度学习算法优化系列八 | VGG,ResNet,DenseNe模型剪枝代码实战

newmodeltest(model)到这里VGG16就被剪枝完了,剪枝完成后我们还需要对这个新模型进行Retrain,仍然是使用main.py即可,参数改一下,命令如下:python
2020年1月9日
其他

【CV中的Attention机制】ECCV 2018 Convolutional Block Attention Module

前言这是【CV中的Attention机制】系列的第三篇文章。目前cv领域借鉴了nlp领域的attention机制以后生产出了很多有用的基于attention机制的论文,attention机制也是在2019年论文中非常火。这篇cbam虽然是在2018年提出的,但是其影响力比较深远,在很多领域都用到了该模块,所以一起来看一下这个模块有什么独到之处,并学着实现它。1.
2020年1月8日
其他

【cv中的Attention机制】最简单最易实现的SE模块

y.expand_as(x)虽然核心就是以上的内容,不过不能简单地结束,我们需要看一下以下几个点:作为一个重要的attention机制的文章,这篇文章如何描述attention,related
2020年1月5日
其他

深度学习算法优化系列七 | ICCV 2017的一篇模型剪枝论文,也是2019年众多开源剪枝项目的理论基础

networks"这项工作通过将稀疏正则化强加到训练目标函数中,具体来讲就是采用group
2020年1月3日
其他

深度学习算法优化系列一 | ICLR 2017《Pruning Filters for Efficient ConvNets》

maps重要,对第二个层的剪枝应该由shortcut层的剪枝结果决定。为了决定那些恒等特征映射图被剪掉,我们对shortcut卷积层(1x1卷积核)上采用相同的选择标准,即residual
2019年12月20日
其他

OpenCV图像处理专栏六 | 来自何凯明博士的暗通道去雾算法(CVPR 2009最佳论文)

2009的最佳论文。这篇论文的灵感来自于作者两个个观察,第一个是在3D游戏中的雾使得作者坚信人眼有特殊的东西去感知雾,而不仅仅是靠对比度。第二个是作者阅读了之前的一篇去雾方面的论文《Single
2019年12月11日
其他

OpenCV图像处理专栏三 | 灰度世界算法原理和实现

Kries对角模型,对于图像中的每个像素C,调整其分量R,G,B分量:,,算法优缺点此算法简单快速,但是当图像场景颜色并不丰富时,尤其诗出现大量单色物体时,该算法会失效。源码实现Mat
2019年12月7日
其他

目标检测算法之YOLO系列算法的Anchor聚类代码实战

前言之前已经讲了一些目标检测原理性的东西了,今天讲一个偏工程一点的东西,就是如何在使用YOLO算法的时候针对自己的数据集获得合适的Anchor?原理Anchor如何获得?如何获得Anchor的算法在前面讲解YOLOv2原理的时候已经说清楚了,推文地址如下:https://mp.weixin.qq.com/s/4PPhCpdna4AWgbEWhunNTQ
2019年12月4日
其他

目标检测算法之YOLOv2

前言昨天介绍了YOLO系列的第一个算法YOLOv1,并详细分析了YOLOv1的网络结构以及损失函数等。今天我们将来分析一下YOLO目标检测算法系列的YOLOv2和YOLO9000。YOLOv2原理YOLOv1作为One-Stage目标检测算法的开山之作,速度快是它最大的优势。但我们知道,YOLOv1的定位不够准,并且召回率低。为了提升定位准确度,提高召回率,YOLOv2在YOLOv1的基础上进行了改进。具体的改进方法如图Fig1所示:可以看到YOLOv2通过增加一些Trick使得v1的map值从63.4提高到了78.6,说明了YOLOv2改进方法的有效性。接下来我们就分析一下这些改进方法。批量归一化这个应该不用多说了,YOLOv2在每个卷积层后面增加了VB层,去掉全连接的dropout。使用BN策略将map值提高了2%。高分辨率当前大多数目标检测网络都喜欢使用主流分类网络如VGG,ResNet来做Backbone,而这些网络大多是在ImageNet上训练的,而分辨率的大小必然会影响到模型在测试集上的表现。所以,YOLOv2将输入的分辨率提升到,同时,为了使网络适应高分辨率,YOLOv2先在ImageNet上以的分辨率对网络进行10个epoch的微调,让网络适应高分辨率的输入。通过使用高分辨率的输入,YOLOv2将map值提高了约4%。基于卷积的Anchor机制YOLOv1利用全连接层直接对边界框进行预测,导致丢失较多空间信息,定位不准。YOLOv2去掉了YOLOv1中的全连接层,使用Anchor
2019年11月23日