深度学习基础
文章平均质量分 92
深度学习基础知识笔记
zyw2002
Talent hits a target no one else can hit; Genius hits a target no one else can see;
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Zero 1/2/3 介绍
微软开发的DeepSpeed库通过ZeRO技术优化大模型训练显存占用。ZeRO采用分片策略,将优化器状态、梯度和模型参数分散到不同GPU上,分为三个阶段:ZeRO-1仅分片优化器状态(显存节省4倍),ZeRO-2增加梯度分片(节省8倍),ZeRO-3进一步分片模型参数(显存随GPU数量线性下降)。ZeRO-2在显存节省和通信效率间取得最佳平衡,推荐作为通用方案;ZeRO-3适用于超大模型但通信开销较高。该技术有效解决了传统分布式训练的显存冗余问题。原创 2026-05-27 17:00:02 · 297 阅读 · 0 评论 -
DDPM / DDIM / Flow Matching 详解
本文系统介绍了三种深度生成模型:DDPM、DDIM和Flow Matching。DDPM通过马尔可夫链实现噪声扩散与去噪过程,采样质量高但速度慢;DDIM采用非马尔可夫过程,支持跳步采样,在50步内即可获得高质量结果;Flow Matching通过连续归一化流直接学习向量场,训练稳定且采样高效。三者各有优势:DDPM理论完备,DDIM兼顾速度与质量,Flow Matching框架统一灵活。这些方法为生成模型提供了不同范式,可根据需求选择适合的建模方式。原创 2026-05-27 15:51:53 · 336 阅读 · 0 评论 -
KV Cache 详解
KV Cache是Transformer解码器在自回归推理中的关键优化技术。它通过缓存历史token的Key和Value矩阵,避免重复计算,将单步复杂度从O(t²)降至O(t)。该技术显著降低推理延迟,但会带来线性增长的显存开销。优化方案包括MQA、GQA、PagedAttention和量化缓存等。KV Cache已成为大模型高性能服务的基础组件,但面临长序列显存消耗和批处理不友好等挑战。原创 2026-05-27 13:29:16 · 420 阅读 · 0 评论 -
VAE/VQ-VAE
VAE(变分自编码器)通过将输入映射为概率分布并约束隐空间为标准正态分布,实现连续隐空间和样本生成,但存在生成结果模糊的问题。VQ-VAE(矢量量化变分自编码器)引入离散码本和自回归先验,通过量化编码器输出为离散向量,结合强大的自回归模型生成更清晰的样本。VAE适合平滑插值和连续数据生成,而VQ-VAE在图像、语音等离散特征明显的任务中表现更优,但训练复杂度更高。两者在隐空间结构、生成质量和应用场景上各有优劣。原创 2026-05-27 01:32:26 · 361 阅读 · 0 评论 -
绝对位置编码和旋转位置编码
本文对比了Transformer中的两种位置编码方法:绝对位置编码(APE)和旋转位置编码(RoPE)。APE通过为每个位置分配固定或可学习的向量,直接加到词嵌入中,但存在外推性差的问题。RoPE则通过旋转Q/K向量的方式,使注意力分数天然编码相对位置关系,更适合长文本处理。文章详细分析了两种方法的实现原理、关键特性和适用场景:APE适合固定长度的非自回归任务,而RoPE在自回归语言模型和长上下文处理中表现更优,尤其与KV缓存机制配合良好。最后指出RoPE通过几何变换编码位置信息的特点使其成为当前主流大模型原创 2026-02-10 15:20:24 · 692 阅读 · 0 评论 -
强化学习基础入门(PPO, GRPO)
近端策略优化(PPO)是OpenAI于2017年提出的强化学习算法,以实现简单、样本效率高、训练稳定著称。PPO通过限制新策略与旧策略的差异,解决策略梯度算法中步长难以选择的问题。其核心创新是裁剪目标函数,利用概率比和优势函数,确保策略更新幅度在可控范围内。PPO训练过程分为采样和优化两阶段,结合价值网络和熵奖励机制,实现稳定高效的策略优化。这一方法有效避免了策略崩溃,成为强化学习领域最受欢迎的算法之一。原创 2025-09-22 20:28:06 · 915 阅读 · 0 评论 -
论文及代码详解——HRNet
让我们看一个融合3-resolution representations的例子,如图3所示。我们从一个高分辨率的卷积流作为第一阶段,逐步将高分辨率到低分辨率的流逐个添加,形成新的阶段,并将多分辨率流并行连接。因此,后一阶段并行流的分辨率由前一阶段的分辨率和一个更低的分辨率组成。我们通过bilinear upsampling对低分辨率表示进行缩放,而不改变高分辨率的通道数,并将四种表示连接起来,然后进行1 × 1卷积来混合这四种表示。定义了一个3x3的卷积,当stride=1时,输出大小不变。原创 2023-08-21 21:56:29 · 3389 阅读 · 0 评论 -
YOLOv8改进——引入可变形卷积DCNv3
本文只讲解在YOLOv8的代码中添加DCNv3的操作流程, 具体的原理参见上述的链接~是pytorch实现的版本,只要基础的pytorch环境安装正确就不会出错。是C++实现版本,必须先在上一步编译成功,或者安装好了轮子,否则会报错。但是在实际的训练过程中,C++版本的运行速度更快,推荐使用C++版本。(具体怎么修改,都可以自己决定,然后通过实验看看效果如何)文件夹,该文件夹下的内容就是实现DCNv3算子的核心代码。中,下图中的列表里添加。原创 2023-08-21 12:45:59 · 30334 阅读 · 121 评论 -
代码详解——可变形卷积(DCNv3)
如下图,首先下载InterImage官方代码,然后在segmentation、detection、classification文件夹下均可以找到ops_dcnv3文件夹,该文件夹下的内容就是实现DCNv3算子的核心代码。modules如下图所示,modules文件夹中的dcnv3.py文件主要定义了DCNv3模块。其中是DCNv3的pytorch实现版本,DCNv3是DCNv3的C++实现版本。functions如下图所示,function文件夹中的文件定义了DCNv3的一些核心操作。原创 2023-08-21 10:35:45 · 22413 阅读 · 17 评论 -
论文详解——《InternImage: Exploring Large-Scale Vision Foundation Models with Deformable Convolutions》
原文翻译摘要与近年来large-scale vision Transformer(ViTs)取得的巨大进展相比,基于卷积神经网络(cnn)的大型模型尚处于早期阶段。本文提出了一种新的large-scale CNN-based foundation model,称为。类似于VIT,该模型可以通过增加参数和训练数据获得增益。与最近的CNN聚焦于large dense kernels不同,原创 2023-08-18 10:02:34 · 9586 阅读 · 0 评论 -
论文及代码详解——可变形卷积(DCNv2)
DCNv2 是在DCNv1的基础上的改进版。理解DCNv2之前,建议先读。原创 2023-08-17 21:33:50 · 18237 阅读 · 2 评论 -
论文及代码详解——可变形卷积(DCNv1)
这四对坐标每个坐标都对应U中的一个像素值, 而我们需要得到(a,b)的像素值, 这里采用双线性差值的方式计算, 因为一方面得到的像素准确, 另一方面可以进行反向传播。DCN的卷积过程和普通卷积一样,如上图所示,假设有个2x2的kernel, 它也是以一个2x2的滑窗的形式(绿色的框)在原始图片上从左到右,从上到下进行滑动。采样点的像素值和上文中提到的可变形卷积中的一样,也是通过双线性插值得到的。它的每roi计算成本可以忽略不计。我们实验了不同数量的这类层,发现3是不同任务的一个很好的权衡,如表1所示。原创 2023-08-17 19:54:53 · 11041 阅读 · 2 评论 -
代码详解——Transformer
对于一个序列,在 time_step 为 t 的时刻,我们的解码输出应该只能依赖于 t 时刻之前的输出,而不能依赖 t 之后的输出。当 Decoder 的输入矩阵和 Mask 矩阵输入矩阵包含 “ I have a cat” (0, 1, 2, 3, 4) 五个单词的表示向量,Mask 是一个 5×5 的矩阵。然后判断是否传入的mask, 如果有mask (mask参数值不为None),则把mask为0的位置,将对应位置的attn的值设为无穷小的负数。可以发现得到的输出和输入的K,Q,V的大小相同。原创 2023-08-13 15:30:42 · 7090 阅读 · 1 评论 -
深度学习的训练、验证、测试的模板代码
从头搭建一个深度学习的模型,基本上都可以从这个框架去套用。包括了最基础的模型的定义、训练、验证和测试。原创 2023-08-02 13:53:53 · 4810 阅读 · 0 评论 -
经典卷积神经网络详解(AlexNet、VGG、NiN、GoogLeNet、ResNet、DenseNet、CSPNet、Darknet、EfficientNet、SqueezeNet..)
经典卷积神经网络详解(AlexNet、VGG、NiN、GoogLeNet、ResNet、DenseNet、CSPNet、Darknet、EfficientNet、SqueezeNet,MobileNet,GhostNet等)原创 2023-03-04 10:21:03 · 24133 阅读 · 4 评论 -
详解注意力机制和Transformer
本文的学习路线:📍 Attention从生物学的角度引入到计算机视角,介绍了什么是Attention ▶️介绍Encoder-Decoder框架 (目前大部分Attention Model都是依附于该框架实现)▶️ 介绍了Attention模型中的基础概念查询、键和值 ▶️ 通过讲解Nadaraya-Watson核回归模型来了解常见的注意力汇聚模型 ▶️ 介绍了Attention Model中两个常用的注意力评分函数 ▶️ 从基础的Attention引入到Self-Attention 和Multihe原创 2023-01-31 20:50:03 · 18969 阅读 · 5 评论 -
深度学习中的卷积操作
本文从信号处理中的`互相关运算`引入`深度学习中的卷积`。 然后介绍了`不同的卷积类型`,以及如何在`pytorch`中使用这些卷积层。原创 2022-12-14 16:26:23 · 4719 阅读 · 7 评论 -
动手学深度学习(2)—— 线性神经网络
而在机器学习领域, 我们通常使用的是高维数据集, 建模时采用线性代数表示法会比较方便。当我们的输入 包含 ddd 个特征时,我们将预测结果 y^\hat{y}y^ (通常使用 “尖角”符号表示 yyy 的估计值)表示为:y^=w1x1+…+wdxd+b.\hat{y}=w_1 x_1+\ldots+w_d x_d+b .y^=w1x1+…+wdxd+b.将所有特征放到向量 x∈Rd\mathbf{x} \in \mathbb{R}^dx∈Rd 中,并将所有权重放到向量w∈Rd\mathbf{原创 2022-12-04 16:36:11 · 622 阅读 · 0 评论 -
动手学深度学习(1)—— 基础知识
机器学习的组件每个数据集由⼀个个样本(example, sample)组成,⼤多时候,它们遵循独⽴同分布(independently and identically distributed, )。样本有时也叫做数据点(data point)或者数据实例(data instance),通常每个样本由⼀组称为特征(features,或协变量(covariates))的属性组成。机器学习模型会根据这些属性进⾏预测。在上⾯的监督学习问题中,要预测的是⼀个特殊的属性,它被称为标签(label,或⽬标(target)原创 2022-12-04 16:32:57 · 2370 阅读 · 1 评论
分享