
PyTorch
文章平均质量分 92
分享Torch的使用。
阿正的梦工坊
岁月不饶人,我亦未曾饶过岁月
展开
-
register_buffer(‘mask‘, ...)是什么(在PixelCNN中的应用):掩码卷积的具体过程详解
代码详解与例子模拟原创 2025-03-14 16:20:17 · 1075 阅读 · 0 评论 -
探索 PyTorch 中的 ConvTranspose2d 及其转置卷积家族
原理介绍原创 2025-03-13 15:46:10 · 1186 阅读 · 0 评论 -
深入了解 PyTorch 中的 MaxPool2d 及其池化家族函数
函数的原理解析原创 2025-03-13 15:30:16 · 928 阅读 · 0 评论 -
PyTorch 的 unfold 函数:深入解析与在 Vision Transformer (ViT) 中的应用
它在图像处理中特别有用,可以高效地将二维图像分割为多个局部块(Patch),而无需显式循环。原创 2025-03-12 19:46:11 · 844 阅读 · 0 评论 -
解析 PyTorch 中的 torch.multinomial 函数
torch.multinomial 是 PyTorch 中一个用于多项式分布采样的函数。它根据给定的概率分布,从一组离散选项中随机抽取样本。原创 2025-03-02 14:28:26 · 1381 阅读 · 0 评论 -
PyTorch 常见的损失函数:从基础到大模型的应用
揭秘一下 GPT、BERT、LLaMA 等大模型用的是哪些损失函数。原创 2025-02-28 19:05:03 · 1597 阅读 · 0 评论 -
Pytorch为什么 nn.CrossEntropyLoss = LogSoftmax + nn.NLLLoss?
PyTorch 提供两种方式,满足不同需求。原创 2025-02-28 18:53:11 · 1262 阅读 · 0 评论 -
PyTorch 的 nn.NLLLoss:负对数似然损失全解析
在统计学中,似然表示“给定模型参数时,观察到数据的概率”。对数似然(Log Likelihood)是它的对数形式,常用于简化计算。计算正确类别对数概率的负值,最小化它等价于最大化似然原创 2025-02-28 18:46:06 · 1686 阅读 · 0 评论 -
PyTorch 的 nn.BCELoss:为什么需要“手动加 Sigmoid”?
需要在模型输出(logits)上显式地应用 Sigmoid 函数,把它变成概率,然后再传给 nn.BCELoss原创 2025-02-28 18:17:54 · 1208 阅读 · 0 评论 -
PyTorch 损失函数解惑:为什么 nn.CrossEntropyLoss 和 nn.BCELoss 的公式看起来一样?
这不就是同一个公式吗?为什么 PyTorch 要分成两个不同的类呢?今天我们就来解开这个谜团,从数学原理到实现细节,彻底搞清楚它们的联系与区别。原创 2025-02-28 17:06:58 · 960 阅读 · 0 评论 -
PyTorch 中的 nn.ModuleList 是什么?与普通列表有啥区别?
nn.ModuleList 是一个“聪明”的列表,它能让 PyTorch 知道里面装的是模型的子模块,从而正确管理这些子模块的参数和行为。原创 2025-02-28 16:40:25 · 743 阅读 · 0 评论 -
PyTorch 类声明中的 super().__init__()是什么?为什么必须写它?
继承父类功能:确保子类能正确使用 nn.Module 的内置功能,比如参数管理、模块注册。原创 2025-02-28 16:33:35 · 1052 阅读 · 0 评论 -
PyTorch下三角矩阵生成函数torch.tril的深度解析
下三角矩阵(Lower Triangular Matrix)原创 2025-02-23 18:36:31 · 1354 阅读 · 0 评论 -
详解 torch.triu:上三角矩阵的高效构造(中英双语)
torch.triu() constructs upper triangular matrices, setting elements below the specified diagonal to zero.原创 2025-02-23 14:51:25 · 1166 阅读 · 0 评论 -
详解 @符号在 PyTorch 中的矩阵乘法规则
矩阵乘法运算符原创 2025-02-23 07:50:34 · 1461 阅读 · 0 评论 -
详解 einsum(Einstein Summation):高效实现张量运算的利器
用简洁的爱因斯坦求和约定(Einstein Summation Convention)高效地执行张量运算,而不需要显式地调用 matmul、dot 或 transpose 等函数。原创 2025-02-23 07:40:16 · 1043 阅读 · 0 评论 -
深入理解 torch.repeat_interleave():用法、应用场景与优化(中英双语)
repeat_interleave() is a useful function that allows element-wise repetition along a specified dimension原创 2025-02-22 12:58:28 · 1033 阅读 · 0 评论 -
PyTorch gather 方法详解:作用、应用场景与示例解析(中英双语)
torch.gather(input, dim, index) efficiently extracts values from a tensor using an index tensor.原创 2025-02-21 19:20:54 · 1240 阅读 · 0 评论 -
PyTorch torch.logsumexp 详解:数学原理、应用场景与性能优化(中英双语)
Understanding torch.logsumexp: Mathematical Foundation, Use Cases, and Performance Optimization原创 2025-02-21 19:07:08 · 1432 阅读 · 0 评论 -
介绍 C++ 中的智能指针及其应用:以 PyTorch框架自动梯度AutogradMeta为例
std::shared_ptr、std::weak_ptr、std::unique_ptr原创 2025-01-03 15:32:01 · 778 阅读 · 0 评论 -
PyTorch 中 reciprocal(取倒数)函数的深入解析:分析底层实现CPP代码
reciprocal 是 PyTorch 和底层 C++ 实现中广泛使用的数学函数,它计算输入的倒数(reciprocal)原创 2025-01-02 20:20:48 · 1292 阅读 · 0 评论 -
PyTorch 中 coalesce() 函数详解与应用示例
在稀疏张量中,可能存在重复的坐标位置,coalesce()可以将这些重复的坐标进行合并,并对相同索引的值进行累加。原创 2025-01-02 19:29:32 · 1536 阅读 · 0 评论 -
PyTorch 自动混合精度AMP Grad Scaler 源码解析:_unscale_grads_ 与 unscale_ 函数
调用 unscale_ 应在反向传播完成后、优化器更新前进行。原创 2025-01-02 18:51:13 · 1534 阅读 · 0 评论 -
AMP 混合精度训练中的动态缩放机制: grad_scaler.py函数解析( torch._amp_update_scale_)
检测数值不稳定(如 NaN 或 Inf),通过缩小缩放因子提高数值稳定性。当连续多次未出现数值不稳定时,逐步增大缩放因子以充分利用 FP16 的动态范围。原创 2025-01-02 15:39:03 · 1138 阅读 · 0 评论 -
PyTorch源码_amp_foreach_non_finite_check_and_unscale_cpu_kernel 函数解析:自动混合精度AMP的一部分
使用scale factor的倒数对梯度进行反缩放原创 2025-01-02 16:16:08 · 910 阅读 · 0 评论 -
PyTorch AMP 混合精度中grad_scaler.py的scale函数解析
作用是将输出张量按当前缩放因子进行缩放。通过递归函数apply_scale,该函数能够处理嵌套的张量结构原创 2025-01-02 15:49:45 · 1131 阅读 · 0 评论 -
PyTorch到C++再到 CUDA 的调用链(C++ ATen 层) :以torch._amp_update_scale_调用为例
在 PyTorch 框架中,Python 和底层 C++/CUDA 实现之间通过 PyTorch ATen 底层 API 以及pybind11来完成。原创 2025-01-02 15:24:36 · 968 阅读 · 0 评论 -
PyTorch 中的 MSELoss 不支持 bfloat16 类型的张量:RuntimeError: “mse_cpu“ not implemented for ‘BFloat16‘
计算loss的需要把bf16转换为fp32.原创 2024-12-31 23:08:17 · 484 阅读 · 0 评论 -
PyTorch中的autocast:混合精度训练的实现原理
autocast 是 PyTorch 中用于启用自动混合精度的上下文管理器。它可以使代码中的指定部分自动选择合适的浮点数精度(例如 float16 或 bfloat16)原创 2024-12-31 21:11:21 · 1710 阅读 · 0 评论 -
深入解析PyTorch中的PYBIND11_MODULE:功能与实现
通过PYBIND11_MODULE宏,我们可以轻松地将C++实现的函数和类注册到Python中,允许Python用户直接调用这些高效的C++代码。原创 2024-12-31 21:06:17 · 1567 阅读 · 0 评论 -
PyTorch中的__init__.pyi文件:作用与C++实现关系解析
PyTorch的核心计算部分是用C++编写的,而Python接口则通过Pybind进行暴露。__init__.pyi文件和C++实现之间通过Pybind进行连接,确保Python代码能够调用底层的C++实现。原创 2024-12-31 20:56:18 · 1137 阅读 · 0 评论 -
PyTorch 中scatter函数:以Transformers库Top P采样源代码为例
scatter函数是一个非常强大的工具,它主要用于根据给定的索引,将值从一个张量复制到另一个张量中原创 2024-12-27 21:14:35 · 819 阅读 · 0 评论 -
Pytorch详解 train() 和 eval() 模式会影响Layer Norm吗?(中英双语)
Since LayerNorm does not depend on the mean and variance across batches, its behavior is the same during both training and inference原创 2024-12-25 17:52:17 · 1015 阅读 · 0 评论 -
Pytorch详解 train() 和 eval() 模式切换对 BatchNorm 层的影响:中英双语
In evaluation mode, BatchNorm uses the global statistics (mean and variance) computed during training, ensuring stability during inference原创 2024-12-25 17:31:54 · 1031 阅读 · 0 评论 -
PyTorch model.train() 与 model.eval() 的区别及其源码解析:中英双语
model.eval() sets the model to evaluation mode, disabling the Dropout layer and using global statistics for BatchNorm原创 2024-12-25 16:56:51 · 1539 阅读 · 0 评论 -
深入理解 PyTorch 的 view() 函数:以多头注意力机制(Multi-Head Attention)为例 (中英双语)
Multi-Head Attention (MHA) splits the feature dimension of the input into multiple "heads." Each head independently performs attention calculations, and the results are combined at the end.原创 2024-12-25 13:19:37 · 738 阅读 · 0 评论 -
详解 PyTorch中optimizer.zero_grad()的作用及其影响: How optimizer.zero_grad() works under the hood
If your model behaves unpredictably, verify whether zero_grad() is properly called before backpropagation. Missing this step is a common source of training issues.原创 2024-12-13 20:24:17 · 1384 阅读 · 0 评论 -
深入理解torch.optim.Adam的用法及优化流程
更好地理解为什么要使用list(actor_model.parameters())传入优化器以更新多个模型的参数。原创 2024-12-13 13:01:26 · 2634 阅读 · 0 评论 -
PyTorch 中detach的使用:以强化学习中Q-Learning的目标值计算为例
detach是一个非常重要的工具。它常用于目标值(Target Value)的计算,确保目标值的梯度不会反向传播到某些特定的神经网络中。原创 2024-12-13 11:05:30 · 1110 阅读 · 0 评论 -
PyTorch 中detach 和no_grad的应用:以 Llama 3 冻结参数为例
使用detach(),既可以保留原始计算图(用于后续梯度计算),又可以灵活操作冻结的部分张量。原创 2024-12-13 10:39:30 · 943 阅读 · 0 评论