pytorch
文章平均质量分 88
夫唯不争,故无尤也
嵌入式,C语言
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Transformer 原理系列(第二章)—— 一文彻底搞懂 Scaled Dot-Product Attention
本文深入解析Transformer中的缩放点积注意力机制(Scaled Dot-Product Attention)。首先通过例句说明模型如何判断"谁应该被关注",指出注意力机制需要让每个token自动选择相关token。文章详细介绍了Q(Query)、K(Key)、V(Value)三个核心角色及其作用,阐述了从计算原始相关性分数、缩放处理避免数值爆炸,到Softmax归一化为权重分布,最后加权求和V值输出的完整流程。通过与传统RNN/CNN对比,突出了自注意力机制在建立长距离依赖、并行原创 2025-12-01 21:56:49 · 683 阅读 · 0 评论 -
Transformer 原理系列(第一章)—— 从序列相关性出发,理解注意力机制的本质
本文从序列数据的本质出发,系统梳理了序列建模的发展历程。首先指出序列数据的核心特征是样本间的依赖关系,传统方法如ARIMA、RNN/LSTM和CNN都是通过不同形式的加权求和来建模这种关系,但都存在局限性。文章重点阐述了注意力机制的突破性意义:通过动态计算样本间的语义相关性(向量相似度)来确定权重,使模型能够全局捕捉任意位置样本间的关系。最后介绍了Transformer的核心组件Q/K/V矩阵,它们将相关性计算、权重归一化和信息聚合三个步骤系统化,解决了传统模型在长距离依赖、动态权重和并行计算方面的痛点,原创 2025-12-01 21:42:10 · 894 阅读 · 0 评论 -
Pytorch中图像进行归一化处理
本文介绍了在PyTorch中对三通道图片进行归一化的标准方法。主要包含两种实现方式:一是使用torchvision.transforms.Normalize进行批量归一化,二是手动实现归一化公式。文章强调输入图像需先转换为0-1范围,并详细说明了如何调整mean和std张量形状以实现正确广播。此外,还提供了计算整个数据集均值和标准差的方法,以及不同维度下计算统计量的示例。这些操作能保持原始张量形状不变,适用于模型推理场景。原创 2025-11-27 15:00:59 · 323 阅读 · 0 评论 -
矩阵乘法、向量内积(点积)、向量外积原理及Pytorch代码实现
本文系统介绍了线性代数中矩阵乘法、向量内积和外积的核心原理与PyTorch实现。矩阵乘法表示线性变换的复合,内积衡量向量相似度,外积生成特征组合矩阵。在PyTorch中,矩阵乘法可通过torch.mm、@等实现,内积使用torch.dot,外积通过torch.outer或广播机制计算。文章还对比了不同运算的输入输出特性,为深度学习中的张量操作提供了实用指南。这些基础运算在神经网络、词向量等任务中具有重要应用价值。原创 2025-11-24 16:30:59 · 1711 阅读 · 0 评论 -
梯度累计原理:数学可行性与PyTorch实现
摘要:梯度累计通过多次前向-反向传播将小batch梯度累加,模拟大batch训练效果。数学上可行是因为总梯度等于各batch梯度之和(∂L/∂w=∑∂Li/∂w)。PyTorch的backward()会自动累加梯度到.grad属性,需手动zero_grad清除。流程是:累计N次梯度后执行一次optimizer.step()更新参数。本质是利用梯度可加性,将多个小batch的梯度汇总后统一更新,解决显存不足时batch_size过小的问题。(149字)原创 2025-11-23 20:45:43 · 970 阅读 · 0 评论 -
PyTorch 的维度变形一站式入门
PyTorch维度操作指南摘要 本文系统介绍了PyTorch中的5类维度操作:1)形状变换(reshape/view/squeeze/unsqueeze)改变张量形状但不改变数据;2)广播扩展(expand/expand_as)实现内存高效的维度扩展;3)维度重排(transpose/permute)用于交换维度顺序,是多头注意力的核心操作;4)拼接复制(cat/stack/repeat)实现张量连接与复制;5)高级操作(flatten/unflatten)用于维度展平与重建。原创 2025-11-23 19:12:31 · 1287 阅读 · 0 评论 -
Python广播机制:张量的影分身术
广播机制是深度学习中的关键运算规则,它允许不同形状的张量进行逐元素运算。核心逻辑是:1)从末尾维度对齐;2)维度为1时可扩展;3)不满足规则时报错。典型应用包括标量运算、attention mask扩展和batch操作。广播通过"虚拟扩展"而非真实复制数据,实现高效计算。这种机制使模型代码更简洁高效,是深度学习开发的基础工具。原创 2025-11-21 13:56:03 · 654 阅读 · 0 评论 -
torch.nn.Embedding详解:为什么要用Embedding,Embedding怎么用,Embedding的底层源码
本文深入解析了深度学习中的Embedding技术,主要涵盖三方面内容:首先阐述了Embedding的价值,它能将离散词ID转换为可训练的连续向量,解决传统编码单一性和不可训练的问题;其次介绍了PyTorch中nn.Embedding的使用方法,包括参数设置和输入输出格式转换;最后从源码层面揭示了Embedding的底层实现机制,指出其本质是一个可训练的查找表(vocab_size×embedding_dim矩阵),通过索引查表实现词向量映射,并解释了梯度更新的稀疏特性。文章从原理到实践全面剖析了Embedd原创 2025-11-09 19:28:31 · 962 阅读 · 0 评论 -
PyTorch中张量和模型的核心属性解析
本文介绍了PyTorch中Tensor和nn.Module的核心属性体系。Tensor作为基础数据单元,具有shape、dtype、device、requires_grad等关键属性,控制数据的维度、类型、存储位置和梯度传播行为。nn.Module作为网络层的基础类,包含weight、bias等可训练参数,通过parameters()和state_dict()管理模型参数,并提供了训练/推理模式的切换功能。文章通过代码示例展示了这些属性的具体用法,说明Tensor负责数据流动和梯度计算,Module管理参数原创 2025-11-09 18:45:45 · 800 阅读 · 0 评论 -
深度学习Adam优化器核心概念全解析:参数,梯度,一阶动量,二阶动量
摘要:Adam优化器是PyTorch中结合动量和自适应学习率的优化算法,包含四个核心部分:参数(模型权重)、梯度(损失函数偏导)、一阶动量(梯度指数平均,平滑更新方向)和二阶动量(梯度平方指数平均,自适应调整学习率)。它通过m_t考虑历史梯度趋势,v_t衡量梯度变化幅度,实现稳定高效的参数更新。公式θ_{t+1}=θ_t-η·(m_t/(√v_t+ε))展示了这些组件的协同作用,使Adam兼具Momentum的方向稳定性和RMSProp的自适应学习率特性。原创 2025-11-04 20:20:10 · 822 阅读 · 0 评论 -
分布式训练一站式入门:DP,DDP,DeepSpeed Zero Stage1/2/3(数据并行篇)
本文系统介绍了分布式深度学习的三大并行训练方式:数据并行(DP/DDP)、模型并行和混合并行。重点分析了数据并行的演进过程,从早期DP方法到基于Ring-ALLReduce的DDP方法,再到DeepSpeed ZeRO的三个优化阶段。ZeRO通过逐步分片优化器状态、梯度和模型参数,实现了显存使用的线性扩展,最高可节省16倍显存。其中Stage1仅分片优化器状态,Stage2增加梯度分片,Stage3则实现参数的全分片。文章还对比了各种方法的通信机制和适用场景,为大规模模型训练提供了关键技术参考。原创 2025-11-04 20:10:12 · 993 阅读 · 0 评论 -
详解Pytorch中创建张量的方法
近来在学习学习pytorch框架,遇到各类创建张量的方法,故在此进行记录。原创 2025-03-14 09:36:09 · 855 阅读 · 0 评论
分享