- 博客(77)
- 收藏
- 关注
原创 8.30美团技术岗算法第三题
本文探讨了计算有序数组所有子数组权值之和的问题,权值定义为使子数组成为连续序列所需插入的最少元素数。最初采用暴力法(O(n³))和动态规划法(O(n²))均因效率不足被淘汰。最终采用数学分解方法,将问题拆解为计算每个元素作为最大值/最小值的贡献,利用单调栈实现O(n)时间复杂度。关键突破在于将权值公式分解为最大值贡献、最小值贡献、长度贡献和常数贡献四部分,并推导出相应的数学公式(如子数组总数公式n(n+1)/2和总长度公式n(n+1)(n+2)/6),显著提升了计算效率。
2025-09-18 22:38:16
680
原创 Java.io.BufferedReader
BufferedReader是Java中高效的字符缓冲输入流类,通过内置缓冲区(默认8192字符)减少IO操作次数,提升读取性能。它提供readLine()等便捷方法,适用于文本文件、控制台输入等场景。使用时需注意:必须关闭流以避免资源泄露(推荐try-with-resources语法),且仅适用于文本数据(非二进制文件)。当数据超过缓冲区大小时,会自动分批次读取,不影响整体读取能力。通常配合FileReader使用,后者负责将文件字节转为字符流。
2025-09-18 22:31:14
544
原创 2025算法八股——深度学习——MHA MQA GQA
摘要:MHA、MQA和GQA是注意力机制的三种变体。MHA通过独立多头计算增强表达能力,但计算开销大;MQA共享键值参数降低计算成本,但表达能力受限;GQA采取分组折中方案,在计算效率和模型性能间取得平衡。MQA通过共享键值参数和广播机制显著减少计算量,提升硬件利用率,适用于推理场景。三种方法各有优劣,选择取决于具体任务需求。
2025-09-15 20:24:15
338
原创 静态语言与动态语言
编程语言可分为静态语言和动态语言,核心区别在于类型检查时机和类型可变性。静态语言(如Java、C++)在编译时确定类型,需显式声明且不可变更,类型错误在编译阶段发现,适合大型项目和高性能场景。动态语言(如Python、JavaScript)在运行时确定类型,无需显式声明且可动态变更,类型错误在运行时暴露,适合快速开发和小型项目。两者与是否编译无关,Python有隐性字节码编译,Java编译为字节码而非机器码,C/C++直接编译为机器码。脚本语言通常用于自动化任务,强调轻量便捷。
2025-09-15 17:05:09
621
原创 2024理想算法岗笔试笔记
本文摘要涵盖三个技术主题:1)指令微调(InstructionTuning)是将基础大语言模型(LLM)通过"指令-响应"数据训练,使其更精准理解人类需求的关键优化步骤;2)0/1损失函数由于非凸、非连续特性,无法使用梯度下降优化,且不区分预测置信度差异;3)相关技术内容来自CSDN博客系列"2025算法八股",涉及大模型开发、机器学习和深度学习优化器等领域。
2025-09-07 16:51:52
248
原创 2025算法八股——深度学习——优化器小结
要理解深度学习中的优化器,核心是从 “如何高效更新模型参数以最小化损失” 这一问题出发,按 “基础→改进→融合” 的逻辑梳理。以下从最简单的优化器开始,逐步深入复杂方案,每个优化器均包含,帮助清晰理解演进脉络。
2025-09-07 16:51:10
972
1
原创 2025算法八股——机器学习——SVM损失函数
0/1 损失是 “理想但不可用” 的损失函数 —— 其非凸、非连续的特性导致无法高效优化,且不区分置信度的设计与 SVM “最大化间隔” 的目标完全冲突。而 Hinge 等替代损失函数,通过凸性 + 连续性解决了优化难题,通过 **“低置信度惩罚”** 精准匹配了 SVM 的间隔目标,最终成为 SVM 的核心损失函数。这一选择本质是 “任务目标(最大化间隔)” 与 “优化可行性” 权衡后的最优结果。
2025-09-07 16:19:46
875
1
原创 2025算法八股——大模型开发——Agent相关
本文探讨了大语言模型(LLM)语境下的智能体(Agent)概念及其核心工作机制。智能体是基于LLM构建的自主系统,具备感知环境、规划决策、执行行动和反馈调整四项关键能力,能完成复杂的多步骤任务。文章重点解析了"思考-行动-观察"循环这一核心工作流程:思考环节负责任务拆解和规划,行动环节执行具体操作,观察环节收集反馈信息,三者协同实现任务闭环。同时澄清了该循环与DeepSeek"深度思考"的区别:前者是涉及内外交互的系统框架,后者仅指模型内部的单次推理能力。智能体通过这
2025-09-07 15:54:08
844
原创 2025算法八股——大模型开发——指令微调
指令微调是连接 “通用预训练模型” 与 “实用化应用” 的关键桥梁 —— 它通过 “指令 - 响应” 数据的监督学习,让模型从 “被动续写” 转变为 “主动响应人类需求”,是目前大语言模型落地(如企业定制化模型、垂直领域 AI 助手)的核心技术之一。没有指令微调,预训练模型的强大能力难以转化为对人类有用的实际价值。
2025-09-07 15:22:27
814
原创 8.28字节面试测试题分享
这篇文章介绍了如何用Java实现扑克牌的排序功能。程序定义了一个PokerCard类,包含花色枚举和牌面值属性,通过自定义比较器实现排序规则:大王>小王>其他牌(按黑桃>红桃>梅花>方块的花色顺序,以及A>K>Q>J>10>...>2的牌面顺序)。程序支持从文件或控制台输入n张牌,处理后按从大到小的顺序输出。关键点包括枚举类的使用、自定义比较器的实现以及Collections.sort()方法的应用。该示例展示了Java集合框架中比较器接口和
2025-09-05 15:27:31
320
原创 8.30美团技术岗算法第二题
Fisher线性判别器(Fisher Linear Discriminant, FLD)是经典的线性分类方法,通过寻找最优投影方向实现数据分类。其核心思想是最大化类间差异、最小化类内差异,将高维数据投影到一维空间进行分类。FLD具有计算简单、理论清晰的优点,适合高维小样本场景,但仅支持二分类且对异常值敏感。文章详细推导了FLD的数学原理,包括类内散度矩阵和类间散度矩阵的计算,并给出了完整的分类流程。同时对比了FLD与其他线性分类器的差异,介绍了其扩展应用和局限性。最后提供了基于NumPy的FLD实现代码,包
2025-09-02 20:23:59
591
原创 8.30美团技术岗算法第一题
本文对比了BufferedReader+StringTokenizer与Scanner在Java中的输入处理差异,并实现了一个高效的大数运算算法。BufferedReader按行读取需手动分割数据,而Scanner支持直接读取单个数据类型。文中提出的算法使用BigInteger处理大数运算,通过记忆化存储和循环优化来提升性能。对于1-4-2-1的循环模式,采用特殊处理以减少计算量。主程序通过BufferedReader读取输入,调用优化后的solve方法计算结果。该方案适用于需要处理大数和大量运算的场景,能
2025-09-02 18:51:21
216
原创 Java数据结构速成【1】
本文系统介绍了Java中常见的数据结构及其应用场景。主要内容包括:数组(Array)和动态数组(ArrayList)的基本操作和内存特性;链表(LinkedList)的单双向实现及增删改查方法;哈希表(HashMap)的键值对存储机制;栈(Stack/Deque)和队列(Queue)的LIFO/FIFO特性实现;二叉树的结构定义和遍历方式(DFS/BFS)。文章还详细对比了Collection接口及其子接口(List、Set、Queue、Deque)的方法差异,并分析了ArrayDeque作为双端队列同时支
2025-08-26 19:16:12
920
原创 C语言数组名与sizeof的深层关联
摘要:数组名直接关联数组类型及其内存块,sizeof(arr)输出总字节数源于其设计逻辑。sizeof计算操作数类型的内存占用,而数组类型包含元素类型和个数信息。int arr[5]的类型是int[5],sizeof(arr)计算5×sizeof(int)=20字节。数组名代表整个数组而非指针,sizeof(指针)仅计算指针本身大小(4/8字节)。这一机制体现了数组名与数组类型的直接绑定关系。(150字)
2025-08-26 19:10:20
342
原创 c语言中的数组可以用int a[3]来创建。写一次int就可以了,而java中要声明两次int类型像这样:int[] arr = new int[3];
C 语言是系统级过程式语言,设计核心是 “直接映射内存”,数组本质是 “一块连续内存的别名”,语法上 “一次int在int a[3]中,int(元素类型)和[3](长度)共同构成数组的 “完整类型”(即int[3]),变量a是指向这块内存首地址的指针常量。整个声明是 “类型 + 变量 + 内存属性” 的一体化设计:写一次int,就同时确定了 “数组里存什么类型的数据”,再通过[3]
2025-08-26 13:26:30
446
原创 如果有一个大型纯python项目,用conda管理所有包和用docker管理运行环境,有何区别?
Conda和Docker在Python项目中各有侧重:Conda专注于解决Python包依赖和版本隔离问题,适用于开发环境管理;Docker则提供系统级隔离,确保从开发到部署的全环境一致性。两者的核心区别在于隔离级别、依赖管理范围和可移植性。实际项目中常配合使用:开发阶段用Conda管理Python依赖,部署时通过Docker打包完整环境,实现"开发即生产"的目标。根据需求选择工具:仅需Python环境管理用Conda,需全栈一致性保障则用Docker,大型项目往往二者协同使用。
2025-08-25 02:43:09
685
原创 VideoMAE论文笔记
文章提出了一种名为VideoMaskAutoEncoder(VideoMAE)的自监督视频预训练方法,旨在为视频人物提供更有效的视频表示。该方法受到ImageMAE的启发,采用了极高比例的视频管掩码策略,以解决视频数据中的时间冗余和时间相关性挑战。VideoMAE通过高比例掩码和下采样剪辑来应对时间冗余,通过管道掩码策略来打破帧间内容的直接对应关系,从而防止信息泄露。此外,VideoMAE采用了非对称编码器-解码器设计,以优化计算效率。实验结果表明,VideoMAE在多个视频数据集上取得了优异的性能,证明了
2025-05-22 19:05:39
1148
1
原创 Representation Flow for Action Recognition论文笔记
在本文中,我们提出了一种受光流算法启发的卷积层来学习运动表示。我们的表示流层是一个完全可微的层,旨在捕获卷积神经网络中任何特征通道的“流”以进行动作识别。它用于迭代流优化的参数以端到端的方式与其他 CNN 模型参数一起学习,最大化动作识别性能。此外,我们通过堆叠多个表示流层来新引入的学习“流流(flow of flow)”表示的概念。我们进行了广泛的实验评估,证实了它在计算速度和性能方面优于传统的光流的识别模型的优势。该代码是公开的。1。
2025-04-23 17:07:26
1108
1
原创 Streaming Dense Video Captioning
我们的结果表明,我们的流模型比最先进的模型显着改进,后者不可避免地使用更少的帧或更少的特征,最多 11.0CIDEr 点。给出一个任意长度的视频,最先进的模型要么以大跨步[11,30,48]对非常少的帧(例如,6帧/帧)进行采样(即,时间下采样),要么对所有帧[51,59,65]保持每帧一个特征(即,空间下采样)。给出一个任意长度的视频,最先进的模型要么以大跨步[11,30,48]对非常少的帧(例如,6帧/帧)进行采样(即,时间下采样),要么对所有帧[51,59,65]保持每帧一个特征(即,空间下采样)。
2025-01-01 14:57:11
1110
原创 nn.MultiheadAttention返回的注意力权重和标准的计算注意力权重的区别
原因是nn.MultiheadAttention中对QKV有各自的投射层改变了向量,现在将投射向量全改成单位矩阵,偏置全置为0,代码如下。显然不对,问题出在哪?
2024-11-25 22:36:05
609
原创 Conditional DETR论文笔记
最近开发的DETR方法将变压器编码器和解码器架构应用于目标检测,取得了良好的性能。在本文中,我们解决了关键问题,训练收敛缓慢,并提出了一种条件交叉注意机制来实现快速DETR训练。我们的方法的动机是 DETR 中的交叉注意力高度依赖于内容嵌入来定位四肢并预测框,这增加了对高质量内容嵌入的需求,从而增加了训练难度。我们的方法名为条件 DETR,从解码器嵌入(decoder embedding)中学习条件空间查询(a conditional spatial query),用于解码器多头交叉注意力。
2024-10-29 19:54:57
1483
5
原创 Anchor DETR论文笔记
在本文中,我们提出了一种新的基于变压器的目标检测查询设计。在之前的基于变压器的检测器中,对象查询是一组学习嵌入。然而,每个学习嵌入没有明确的物理意义,我们无法解释它将关注的地方。很难优化,因为每个对象查询的预测槽没有特定的模式。换句话说,每个对象查询不会关注特定区域。为了解决这些问题,在我们的查询设计中,对象查询基于锚点,这已经广泛用于基于 CNN 的检测器。因此,每个对象查询都关注锚点附近的对象。此外,我们的查询设计可以在一个位置预测多个对象以解决困难:“一个区域、多个对象。
2024-10-21 20:55:00
1359
2
原创 DAB-DETR: DYNAMIC ANCHOR BOXES ARE BETTER QUERIES FOR DETR论文笔记
在本文中,我们提出了一种新的查询公式,使用动态锚框进行DETR (DEtection TRansformer),并对查询在DETR中的作用进行了更深入的理解。这个新公式直接使用框坐标作为 Transformer 解码器中的查询,并逐层动态更新它们。使用框坐标不仅有助于使用显式位置先验来改进查询到特征的相似性并消除 DETR 中缓慢的训练收敛问题,还允许我们使用框宽度和高度信息调制位置注意力图。这样的设计清楚地表明,DETR 中的查询可以实现为级联方式逐层执行软 ROI 池化。
2024-10-15 20:55:22
1477
1
原创 Deformable Transformer论文笔记(2)
在编码器中,我们从 ResNet (He et al., 2016) 中阶段 C3 到 C5 的输出特征图中提取多尺度特征图 {xl}l=1->L-1 (L = 4)(各层特征最终再由 1 × 1 卷积转换),其中 Cl 的分辨率比输入图像低 2^l倍。对于每个查询像素,参考点本身。在交叉注意模块中,对象查询从特征图中提取特征,其中 键元素是来自编码器的输出特征图。由于我们提出的可变形注意模块被设计为将卷积特征映射处理为键元素,我们只将每个交叉注意模块替换为多尺度可变形注意模块,同时保持自我注意模块不变。
2024-10-08 21:07:40
1094
原创 Deformable Transformer论文笔记(1)
DETR最近被提出以消除对目标检测中许多手工设计的组件的需求,同时表现出良好的性能。然而,由于Transformer注意模块在处理图像特征映射方面的局限性,它收敛速度慢,特征空间分辨率有限。为了缓解这些问题,我们提出了 Deformable DETR,其注意力模块只关注参考点周围的一小部分的关键采样点。可变形 DETR 可以比 DETR(尤其是在小物体上)获得更好的性能,训练时间减少了 10 倍。在 COCO 基准上的广泛实验证明了我们方法的有效性。
2024-10-07 20:56:56
2879
原创 DINO: DETR with Improved DeNoising Anchor Boxes for End-to-End Object Detection论文笔记
我们提出了DINO (DETR with improved deNoising anchOr box),这是一种最先进的端到端对象检测器。DINO通过使用对比方法进行去噪训练、使用混合query选择方法进行anchor初始化,和两次前向的box预测方案,提高了以前类似DETR的模型性能和效率。DINO在COCO上使用ResNet-50骨干网和多尺度特征在12个epoch后达到了49.4AP在24个epoch达到了51.3AP,比之前的最佳类DETR模型DN-DETR分别提高了+6.0AP和+2.7AP。
2024-10-07 20:44:14
1804
1
原创 Efficient DETR: Improving End-to-End Object Detector with Dense Prior
原文链接原文笔记WhatWhyChallengeHowWe define the object container as a container of structured information, which includes different kinds of object features. Object queries and reference points both belong to the object container, since the object queries and the
2024-09-26 16:53:00
1034
1
原创 《Pyramid Vision Transformer》论文笔记
尽管卷积神经网络 (CNN) 在计算机视觉中取得了巨大成功,但这项工作研究了一种更简单、无卷积的骨干网络,可用于许多密集预测任务。与最近提出的专门为图像分类设计的Vision Transformer (ViT) 不同,我们引入了金字塔视觉转换器 (PVT),它克服了将 Transformer 移植到各种密集预测任务的困难。与现有技术相比,PVT有几个优点。(1) 与通常产生低分辨率输出并产生高计算和内存成本的 ViT 不同,PVT 不仅可以在图像的密集分区上进行训练以实现高输出分辨率,
2024-09-19 20:55:53
1616
3
原创 RuntimeError: Expected to have finished reduction in the prior iteration...引起原因及解决办法
这个报错的意思是说,希望在新的一轮迭代之前完成减少操作,(我理解就是一次forward处理一个batch的数据对模型参数进行梯度下降反向传播更新参数)然后造成这种问题的原因是因为模型中有的参数在产生损失的过程中完全没发挥作用(也就是没经过前向传播,无法通过pytorch的图网络结构计算更新的参数)寻找哪些需要计算梯度但是没有梯度的模块(众所周知,一般直接调用的封装好的模块的requires_grad都是True,自己设置的层的requires_gard需要指定为True),打印出来。不行,必须自己弄明白!
2024-09-06 16:34:30
1270
原创 CCFF:RT-DETR中的CCFF结构代码详解(Pytorch)
基于上述分析,我们重新思考编码器的结构,提出了一种有效的混合编码器,由基于注意力的尺度内特征交互(AIFI)和基于 CNN 的跨尺度特征融合(CCFF)两个模块组成。然而,由于缺乏语义概念以及重复和与高级特征交互混淆的风险,低级特征的尺度内交互是不必要的。CCFF是作者提出的一种类似于特征金字塔的特征融合模块,S3,S4,S5是backbone的后三层,作者在论文中证明了只对S5进行尺度内交互,而不对更低级别的特征进行尺度内交互,并对次做法的合理性进行了证明,再次不多赘述。省略一部分位置编码的代码。
2024-08-12 20:57:00
3454
1
原创 《RT-DETR》论文笔记
YOLO系列因其速度和准确性之间的合理权衡而成为实时目标检测最流行的框架。然而,我们观察到 YOLO 的速度和准确性受到 NMS 的负面影响。最近,端到端基于变压器的检测器 (DETR) 提供了一种消除 NMS 的替代方案。然而,高计算成本限制了它们的实用性,阻碍了它们充分利用排除NMS的优势。在本文中,我们提出了实时检测转换器(RT-DETR),据我们所知,这是解决上述困境的第一个实时端到端对象检测器。我们分两步。
2024-08-08 20:48:56
3232
1
原创 《RWKV》论文笔记
这些通常涉及复杂的顺序数据处理任务比如自然语言理解任务,会话AI,时间序列分析,和间接顺序格式,如图像和图表(Brown等人,2020;到目前为止,我们将我们的模型扩展到多达 14 亿个参数,是迄今为止训练的最大密集 RNN,发现 RWKV 的性能与类似大小的 Transformer 相当,这表明未来的工作可以利用这种架构来创建更有效的模型。在该架构中,计算中涉及的所有线性投影向量(R, K, V,通道混合中的R ', K ')都是通过当前时间步输入和前一个时间步输入之间的线性插值产生的,促进令牌移位。
2024-07-09 20:50:43
1874
1
原创 AFT:Attention Free Transformer论文笔记
其中 W Q i ∈ R^d×dk , W K i ∈ R^d×dk , W V i ∈ R^d×dv 是头部 i 的线性变换,σ 是默认设置为 sof tmax 函数的非线性(应用于矩阵的每一行)。dk, dv 分别是键和值的维度。我们表明,AFT 提供了具有竞争力的性能,通常匹配或击败标准 Transformer 和其他变体(的准确度),同时提供了出色的效率。我们还对 AFT 的几种设计选择进行了广泛的消融研究,并讨论了它的独特属性,例如与 Transformer的兼容性、稀疏性和输入大小的可变性。
2024-07-09 17:04:58
2196
原创 《ClipCap》论文笔记(下)
可以看出,我们生成的标题是有意义的,并且成功地描述了两个数据集的图像。可以看出,我们的概念字幕模型可以很好地推广到任意看不见的图像,因为它是在相当大的和多样化的图像集上训练的。例如,我们的方法识别木勺或蜡烛比图 3 中的 Oscar 更好的蛋糕,因为 CLIP 是在一组不同的图像上进行预训练的。与Li等人[19]类似,我们使用常用指标BLEU[27]、METEOR[10]、CIDEr[37]和SPICE[3]在COCO数据集上验证我们的结果,以及使用CIDEr和SPICE的nocaps数据集。
2024-07-04 20:06:41
1583
1
原创 《ClipCap》论文笔记(上)
mapper/mapper输出的带prefix的序列 就是做一个CLIP和GPT2的桥梁,如果是训练时不冻结decoder则decoeder和mapper都适应clip,效果自然好,这会儿用mlp或者tansformer结构的mapper都可以,但是作者又通过实验证明:我们得出结论,当采用语言模型的微调时,转换器体系结构的表达能力是不必要的。;如果decoder冻结,mapper就完全当一个转接器做一个承上启下的作用,这时候就更建议用能力更强的Transformer结构的mapper。
2024-07-04 14:28:31
1750
1
原创 (Python)可变类型&不可变类型;引用传递&值传递;浅拷贝&深拷贝
可以看到修改i的值不会造成数组a的值的修改,而修改j的值会造成数组b的值的修改,这是为什么呢?
2024-06-18 19:59:20
796
原创 《KAN》论文笔记
受 Kolmogorov-Arnold 表示定理的启发,我们提出了 KolmogorovArnold Networks (KANs) 作为多层感知器 (MLP) 的有前途的替代方案。虽然 MLP 在节点(“神经元”)上具有固定激活函数,但 KAN 在边上(“权重”)具有可学习的激活函数。KAN 根本没有线性权重——每个权重参数都被参数化为样条的单变量函数所取代。我们表明,这种看似简单的变化使得 KAN 在准确性和可解释性方面优于 MLP。对于准确性,在数据拟合和 PDE 求解中,较小。
2024-05-28 14:19:18
2111
3
原创 Vision Mamba代码笔记
事实上Vision Mamba重写了这个Mamba类,可以看到里边是由bimamba_type这个参数的(这其实也是Vision Mamba的主要贡献),执行如下代码。值得说明的一点是,如果你之前在跑其他的mamba,环境拿过来是不能直接直接用的,因为标准的Mamba类是没有bimamba_type这个参数的,所以,需要去Vim代码官网去找到mamba-1p1p1包,下载之后放自己项目里。按照官方readme.md配置,如果有问题照着下面这个链接改。我手敲的带中文注释的链接。
2024-05-20 21:56:33
11426
22
原创 《KAN》的四个问题(转自b站耿直哥)
x和y经过直线求和再二次函数对应x加y的平方,而二者直接二次函数激活对应x方和y方,过反斜杠直线相当于求差,简直就是所见即所得,这带来了两大好处,正着用算法可以实现数据内在模式的探索和发现,反着用能把世界模型和学科知识嵌入网络结构,让Sora这样的模型长上翅膀,实现对物理世界的真实模拟。除此之外他还提出了新的网络结构自适应算法:在初始网络上通过稀疏化,剪枝,设定特定的激活函数,训练放射参数,符号化等步骤进行优化,大大提升了网络的可解释性让神经网络这个黑河训练的老大难问题得到了极大的缓解。
2024-05-20 15:58:59
1056
原创 《TAM》论文笔记(上)
由于相机运动、速度变化和不同活动等因素,视频数据具有复杂的时间动态。为了有效地捕捉这种多样化的运动模式,本文提出了一种新的时间自适应模块(TAM),根据自己的特征图生成视频特定的时间核。TAM提出了一种独特的两级自适应建模方案,将动态核解耦为位置敏感重要性图和位置不变聚合权重。重要性图是在局部时间窗口中学习的,以捕获短期信息,而聚合权重是从全局视图生成的,重点是长期结构。
2024-05-09 23:36:06
1699
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人