- 博客(266)
- 资源 (1)
- 收藏
- 关注
原创 【深度学习代码缝合教程】二:适用于新手小白的超详细模块+模块=新模块的代码缝合
参考B站教学视频:上一篇写了如何把模块放进自己的主干网络进行模块的融合,那么如果想要把模块A+模块B进行融合然后形成一个新模块C要如何做呢?
2024-06-04 15:56:50
990
原创 【神经网络基础辨析】什么是神经网络的主干(backbone)、颈部(neck)和头部(head)网络
分层结构的设计使得神经网络具有灵活性和可扩展性,可以根据不同的任务和数据集进行调整和修改。通常,骨干网络是由预训练模型提供的,而颈部网络和头部网络则可以根据具体的任务进行调整和定制。
2024-04-23 13:21:40
1666
原创 【新手适用】手把手教你从零开始实现一个基于Pytorch的卷积神经网络CNN三: 如何验证和测试模型
新建一个test.py文件,导入所需的包,并且定义测试数据集和dataloader。定义所需的设备。
2024-04-02 14:00:57
620
原创 【目标检测基础篇】目标检测评价指标:mAP计算的超详细举例分析以及coco数据集标准详解(AP/AP50/APsmall.....))
使用yolov5来进行预测,图片的标注为左图所示,yolov5预测的结果如右图所示,可以看到模型预测的有错误:没有预测到窗户里的人,错把一只小狗预测成了泰迪。图片中有5个目标,但是模型只检测出一个目标(1个红色框),没有其他任何的检测框,所以TP=1,FP=0,故P = 1,因此P高并不能说明模型检测效果好。假设模型一次给出了50个预测框,包括了图中的5个目标,故TP=5,由于没有漏检目标,故FN=0,因此recall=1,故R高也不能说明模型预测的好。:针对小目标,目标像素面积<32平方。
2024-03-20 12:35:25
3046
1
原创 最详细最清晰的epoch、batchsize和iteration概念辨析
参考博文和图片来源 : Epoch vs Batch Size vs Iterations梯度下降算法是一种用于机器学习的迭代优化算法,用于寻找最佳结果(损失函数曲线的最小值)。该算法是迭代的(iterative),意味着我们需要多次进行多次计算才能得到最优的结果。梯度下降法有一个参数叫做学习率(learning rate)。如上图(左所示),一开始成本/损失函数(cost function)上的point下降的较快,说明学习率较大,步长大,随着该point的下降变慢,学习率逐渐减小,步长变慢。当数据太大的
2024-03-19 13:35:55
6964
原创 【目标检测经典算法】R-CNN、Fast R-CNN和Faster R-CNN详解系列三:Faster R-CNN图文详解
在图像上预设好的不同大小,不同长宽比的参照框。论文中设定每个区域可以生成k个anchor box。可以看到。
2024-03-18 14:51:32
1292
原创 【目标检测经典算法】R-CNN、Fast R-CNN和Faster R-CNN详解系列二:Fast R-CNN图文详解
论文中从2000个候选框中选择64个候选框进行训练使用,其中如果与真实目标边界框的IOU值>0.5,则被认定为正样本,负样本则是与真实候选框的IOU值最大的且在(0.1 , 0.5]范围内的。
2024-03-13 14:40:40
1820
1
原创 【目标检测经典算法】R-CNN、Fast R-CNN和Faster R-CNN详解系列一:R-CNN图文详解
是一种常用于目标检测的候选区域生成方法。在传统的目标检测算法中,需要对图像中的每个可能包含目标的区域进行检测,但这样做会导致计算量巨大,尤其是在图像具有大量区域时。Selective Search的目标是通过一种高效的方式生成一组可能包含目标的区域,以减少后续目标检测算法的计算复杂度。Selective Search算法的核心思想是通过结合不同的图像特征(如颜色、纹理、大小等)来生成候选区域。具体来说,
2024-03-13 11:59:00
1181
原创 【新手适用】手把手教你从零开始实现一个基于Pytorch的卷积神经网络CNN一: 创建model模块和加载数据集
前向传播函数需要传入self和输入的变量,一般写为x,即。在函数内把之前定义好的层按顺序调用,每一层在计算后会返回结果;我们需要一个变量进行保存,即,在最后将最后一步的计算结果返回。当网络中不存在跳跃连接或密集连接等分支结构的情况下,可以直接用x作为中间变量。依次调用前面定义的网络层修改需要变化的张量维度。
2024-03-12 14:31:57
1339
原创 【开放集检测】OpenGAN: Open-Set Recognition via Open Data Generation 论文阅读
利用一些例外(异常)数据作为开放集,训练一个闭集VS开放集的二分类检测器使用GAN网络无监督学习闭集数据分布,使用该判别器作为开放集的似然函数作为开放集使用的异常数据无法穷尽现实世界的所有可能的未知值GAN网络训练过程不稳定解决: 提出OpenGAN使用对抗合成的假数据填充可用的真实开放集训练数据在闭集k-ways的特征基础上建立判别器使用GAN网络生成fake data,训练一个判别 close data 和 fake data 的二分类判别器;在训练时使用一些真实世界中的。
2023-12-22 10:39:53
2075
原创 【异常检测】论文阅读:CSI: Novelty Detection via Contrastive Learning on Distributionally Shifted Instances
主题:基于对比学习模型SimCLR在开放集检测上进行应用B:=xii1BB−i。
2023-12-13 11:50:09
349
原创 SimCLR损失函数详解
可以增加负样本的数量,在计算概率的时候,计算公式的分母中就包含了负样本的计算。有一批batchsize为N的样本,论文中N=8192,下图以N=2为例;其余任意两两图片之间的组合组成的图片对即为负样本。更大的训练批量和训练轮数,可以提供更多的负样本,促进模型收敛。最后,计算每个Batch里面的所有Pair(共有N个图片对,),所以1个Batch 一共有 N*2 个增强样本图片。对于一个batch中,由同一张图片数据增强过的两张图片(对一个batch中的每个样本都进行2次随机的。张图片的相似性求对数的和。
2023-12-13 11:07:57
979
原创 使用自监督对比学习模型SimCLR完成图像分类任务:pytorch代码详解
网络特征提取采用resnet50,将输入层进行更改,并去掉池化层及全连接层。之后将特征图平坦化,并依次进行全连接、批次标准化、relu激活、全连接,得到输出特征。使用无监督学习网络的特征提取层及参数,之后由一个全连接层得到分类输出。最小化正样本之间的相似性与负样本之间的相似性之间的差异,从而使得正样本更接近,负样本更远离。在计算机视觉任务中,常用的评估指标之一是top-k准确率,其中k表示预测结果的排名。
2023-12-12 13:55:57
2881
4
原创 【开放集检测OSR】《OPEN-SET RECOGNITION: A GOOD CLOSED-SET CLASSIFIER IS ALL YOU NEED?》详解
得到结论:模型做出“属于非以上类”决策的能力高度取决于在闭集分类中的准确性使用方法:通过提高闭集精读来提高OSR性能提出框架:SSB(Semantic Shift Benchmark)当我们说模型只是在对“未见过”的数据中进行低级特征的分布式转移时,意味着模型可能没有真正理解新类别的高级语义特征,而是依赖于在训练中学到的一些通用低级特征来进行分类。在这种情况下,模型可能会将新类别的图像与训练数据中的某些低级特征进行关联,而不是基于真正的高级语义理解。
2023-12-10 09:38:18
1186
原创 英语论文写作常用词汇积累
baseline:比较算法好坏中作为“参照物”而存在,在比较中作为基线;目的是比较提出算法的性能或者用以彰显所提出的算法的优势;benchmark:评价算法好坏的一种规则和标准。是目前的模型能做到的比较好的效果;SOTA(state-of-the-art):业界顶尖水平;SOTA,全称「state-of-the-art」,用于描述机器学习中取得某个任务上当前最优效果的模型。former 前者- latter后者。
2023-12-10 09:29:53
170
原创 【开放集检测OSR】RPL(Reciprocal Point Learning)、ARPL和ARPL+CS 概念辨析
在开放集检测中,RPL(Reciprocal Point Learning)方法。RPL方法基于以下原则:开放集样本与已知类别之间的差异性较大,因此可以通过寻找一个特殊点来表示这种差异性。
2023-12-07 20:25:44
439
原创 【开放集检测OSR】open-set recognition(OSR)开集识别概念辨析
然而,尽管这两个子任务的基准传统不同,但它们实际上都在处理相同的语义转换检测问题(y变化的检测,作者这里还是认为ood的重点是检测y的变化)。一般的正常图像是这个高斯分布中随机采样出来的一个点,而一些噪声图像等非正常图像,它所对应的位置就很可能远离这个高斯分布,或者说计算出来的概率十分低。而"谁谁谁的似然"中的谁谁谁只能是参数,比如说,参数等于某个值时的似然是多少。OSR识别是OOD的子集问题,OSR主要侧重于解决语义偏移的问题,而且可以识别出未来会出现的一些新类别,OOD会有语义偏移或者分布偏移等等。
2023-12-07 16:22:30
918
原创 【开放集检测OSR】开放集检测和闭集检测的区别和联系:从模型角度进行理解
定义一个分类器:测试时:用于测试模型性能的图像也都属于已知类别CCC分类器为每个输入示例x返回一个关于已知类别的概率分布p(y∣x)p(y|x)p(y∣x),意味着对于给定的输入示例x,分类器会生成一个概率分布,其中每个类别y都对应一个概率值。这个概率值表示分类器对于该输入示例属于每个已知类别的置信度或可能性。具体而言,对于每个已知类别c∈Cc ∈ Cc∈C,分类器会计算条件概率p(y=c∣x)p(y=c|x)p(y=c∣x),表示在给定输入示例x的条件下,该示例属于类别c的概率。这样,对于每个输入示例x,
2023-12-07 14:29:50
681
转载 Fine-grained和Coarse-grained解析,什么是细粒度图像分类
fine-grained:细粒度fine-grained classification:细粒度的图像分类。粗粒度:分辨是猫还是狗细粒度:分辨狗这个类别下,这张图是1.吉娃娃还是2.萨摩耶……n.哈巴狗;Fine-grained classification往往需要professional expert去标注数据,这使得数据更加昂贵。
2023-12-06 19:24:28
441
原创 论文中的baseline、benchmark、SOTA(state-of-the-art)释义解释
SOTA(state-of-the-art):业界顶尖水平;SOTA,全称「state-of-the-art」,用于描述机器学习中取得某个任务上当前最优效果的模型。baseline:比较算法好坏中作为“参照物”而存在,在比较中作为基线;目的是比较提出算法的性能或者用以彰显所提出的算法的优势;benchmark:评价算法好坏的一种规则和标准。是目前的模型能做到的比较好的效果;
2023-12-06 18:28:44
3407
原创 【刘二大人】pytorch深度学习实践(三):如何实现线性模型的反向传播+代码实现详解(Tensor、backward函数)
y′w∗xy' =w*xy′w∗xlossy′−y2x∗w−y2lossy′−y2x∗w−y2这段代码是在构建如下的计算图,前向传播并且求出loss值此处的lll是一个张量(因为w是一个张量),所以后续需要lll的值时要使用liteml.item()litem的方法进行取值。
2023-12-06 09:58:56
522
原创 Vision Transformer
把class token从最终结果[197,768]中切片拿出来,对其进行linear全连接(简单理解),如果需要类别概率的话,可以再接一个softmax。在代码实现中,直接通过一个卷积层来实现以ViT一 B/16为例,使用卷积核大小为16x16,stride为16, 卷积核个数为768;对于标准的Transformer模块,要求输入的是token (向量)序列,即二维矩阵[num_token,token_dim];以及Position Embedding。借用我导的图片来总结一下。
2023-12-04 10:20:20
164
原创 适合小白的超详细yolov8环境配置+实例运行教程,从零开始教你如何使用yolov8训练自己的数据集(Windows+conda+pycharm)
yolov8源码下载地址:GitHub - ultralytics/ultralytics: NEW - YOLOv8 🚀 in PyTorch > ONNX > OpenVINO > CoreML > TFLiteyolov8使用文档: Home - Ultralytics YOLOv8 Docs教学视频参考: 包会!YOLOv8训练自己的数据集_哔哩哔哩_bilibili先用conda prompt创建一个虚拟环境,我的叫yolov8, python版本用3.10源码地址:GitHub - ul
2023-11-21 08:14:27
111048
164
原创 [解决] 问题:ImportError: cannot import name ‘Callable‘ from ‘collections‘
我在运行yolov8的代码时,出现了。
2023-11-20 10:13:00
8124
9
原创 注意力机制(Attention)、自注意力机制(Self Attention)和多头注意力(Multi-head Self Attention)机制详解
简单理解:多组自注意力机制并行运行,最后把结果拼接起来。
2023-11-13 19:33:57
7255
1
原创 Transformer详解一:transformer的由来和先导知识
感谢我的互联网导师:水论文的程序猿参考资料和图片来源:Transformer、GPT、BERT,预训练语言模型的前世今生(目录)预训练语言模型的前世今生 - 从Word Embedding到BERTB站教学视频:预训练语言模型(Transformer、BERT)的前世今生通过 ImageNet 数据集我们训练出一个模型 A,由于上面提到 CNN 的浅层学到的特征通用性特别强,我们可以对模型 A 做出一部分改进得到模型 B(两种方法):独热编码无法计算词语之间的相似度(余弦相似度),比如fruit为[1
2023-11-13 19:09:11
399
原创 ViT模型中的tokens和patches概念辨析
在ViT模型中,“tokens”(令牌)和"patches"(图像块)是两个相关但不同的概念。令牌(Tokens):在ViT中,令牌是指将输入图像分割成固定大小的图块,并将每个图块映射为一个向量表示。这些向量表示即为令牌。每个令牌代表图像中的一个局部区域,可以看作是图像的抽象表示。通过将图像分割成令牌序列,并将其输入到Transformer模型中,ViT能够利用自注意力机制来建模图像中的全局关系。图像块(Patches):图像块是指将输入图像分割成固定大小的小块。
2023-11-06 18:19:25
2732
原创 【刘二大人】pytorch深度学习实践(二):梯度下降算法详解和代码实现(梯度下降、随机梯度下降、小批量梯度下降的对比)
现在多使用小批量随机梯度下降算法来进行梯度的更新。
2023-10-27 11:37:38
2561
原创 【刘二大人】pytorch深度学习实践(一):线性模型y=w*x和y=w*x+b的代码和绘图实现
使用线性模型y = w*x计算模型的损失值并且使用matplotlib给出cost function图像。使用线性模型y = w*x+b给出cost function图像,使用3d图来绘制图像。记录日志,防止训练过程中程序异常停止时丢失训练数据。为什么要打印过程信息?
2023-10-25 12:15:35
265
原创 自监督学习模型发展综述:Inst Disc、Inva Sread、MOCO、SimCLR、BYOL
代理任务:个体判别,每一张图片都是自己的类,每一张图片都尽可能和其他图片分开。对比学习:需要有正负样本,让正负样尽可能的分开,负样本越多对比学习效果更好。
2023-09-19 09:33:49
736
原创 自监督学习之对比学习:MoCo模型超级详解解读+总结
动量对比学习方法做无监督表征学习。使用动量的方式更新编码器,使用队列的方法存储memory bank这个字典,从而获得一个又大又一致的字典。
2023-09-19 09:31:19
4874
1
原创 python小白之matplotlib使用实战项目:随机漫步
每次行走都是完全随机的、没有明确的方向,结果是由一系列随机决策决定的。你可以将随机漫步看作蚂蚁在晕头转向的情况下,每次都沿随机的方向前行所经过的路径。
2023-08-12 18:45:01
769
原创 python之matplotlib入门初体验:使用Matplotlib进行简单的图形绘制
传递参数c,设置c的内容。使用RGB自定义颜色,传递一个元组,其中包含三个0~1的小数值,分别表示红色、绿色和蓝色。
2023-08-12 17:16:53
385
原创 在pycharm中使用Git上传代码到Gitee/GitHub(适合新手小白的超级详细步骤讲解)
因为Gitee和GitHub使用方法差不多,所以本文以将代码上传到Gitee为例,GitHub操作类似。
2023-08-11 12:27:15
7014
原创 Python小白入门:文件、异常处理和json格式存储数据
如果try 代码块中的代码导致了错误,Python将查找与之匹配的except 代码块并运行其中的代码。使用try-except 代码块时,即便出现异常,程序也将继续运行:显示你编写的友好的错误消息,而不是令用户迷惑的traceback。在本例中,try 代码块中的代码引发了ZeroDivisionError 异常,因此Python查找指出了该怎么办的except 代码块,并运行其中的代码。以附加模式打开文件时,Python不会在返回文件对象前清空文件的内容,而是将写入文件的行添加到文件末尾。
2023-08-10 18:53:42
1217
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人