
python | pytorch小记
文章平均质量分 88
介绍python中pytorch的各种用法函数以及相应的例子!
墨绿色的摆渡人
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
pytorch小记(三十三):PyTorch 使用 TensorBoard 可视化训练过程(含完整示例)
PyTorch使用TensorBoard可视化训练过程(附完整MNIST示例) TensorBoard是深度学习训练中的关键可视化工具。本文介绍如何在PyTorch中使用SummaryWriter记录训练过程,包括: 基本用法:标量(loss/acc)、图像、模型结构图、参数分布直方图 完整MNIST分类示例代码 启动TensorBoard命令:tensorboard --logdir=runs 常用方法速查表(add_scalar/add_images等) 通过几行代码即可实现训练过程可视化,帮助理解模型原创 2025-07-30 18:08:06 · 539 阅读 · 0 评论 -
pytorch小记(三十二):深度解析 PyTorch 的 `torch.remainder`:向下取整余数运算
摘要:PyTorch的torch.remainder函数实现向下取整的余数运算,与Python的%运算符不同,它保证余数与除数同号或为零。其数学定义为a - b * floor(a/b),区别于torch.fmod的截断取整方式。本文通过函数签名、数学原理、对比示例和实际应用场景,详细解析了该函数在周期化数据、环绕索引和模运算中的作用。关键区别在于remainder的余数符号跟随除数,而fmod跟随被除数,两者适用于不同的计算需求。原创 2025-07-17 18:34:09 · 944 阅读 · 1 评论 -
pytorch小记(三十一):深入解析 PyTorch 权重初始化:`xavier_normal_` 与 `constant_`
本文深入解析了PyTorch中两种重要的权重初始化方法:xavier_normal_和constant_。Xavier正态初始化通过平衡输入输出通道数来维持信号方差稳定,适用于大多数网络层;而常数初始化则用于设置偏置或归一化层参数。文章详细介绍了它们的原理、PyTorch接口实现、适用场景及选择建议,帮助开发者根据网络结构特点选择合适的初始化策略,从而提升模型训练的稳定性和收敛效率。合理使用这两种方法能有效避免梯度消失/爆炸等问题,为深度学习模型奠定良好的训练基础。原创 2025-07-17 18:33:58 · 872 阅读 · 0 评论 -
pytorch小记(三十):深度剖析 PyTorch `torch.nn.BCEWithLogitsLoss`
本文深度剖析了PyTorch中的torch.nn.BCEWithLogitsLoss函数,该函数将Sigmoid激活与二元交叉熵损失结合,适用于二分类和多标签任务。文章从数学公式推导、数值稳定性实现、参数说明、内部流程、梯度计算等方面进行详细解析,并提供了使用示例。该损失函数通过等价展开公式避免了数值溢出问题,支持正样本权重和元素级权重设置,可灵活处理类别不平衡情况。理解其实现细节能帮助优化模型性能,特别适合需要直接处理logits输出的场景。原创 2025-07-15 19:48:24 · 1159 阅读 · 0 评论 -
pytorch小记(二十九):深入解析 PyTorch 中的 `torch.clip`(及其别名 `torch.clamp`)
在深度学习任务中,我们经常需要对张量(Tensor)中的数值进行约束,以保证模型训练的稳定性和数值的合理性。PyTorch 提供了 `torch.clip`(以及早期版本中的别名 `torch.clamp`)函数,能够快速将张量中的元素裁剪到指定范围。本文将带你从函数签名、参数说明,到实际示例和应用场景,一步步掌握 `torch.clip` 的用法。原创 2025-07-14 23:19:33 · 559 阅读 · 0 评论 -
pytorch小记(二十八):pytorch中`nn.Sequential` 详解
PyTorch中的nn.Sequential是一个高效便捷的神经网络容器模块,用于线性堆叠多个网络层。它能够自动管理子模块注册、统一训练/推理状态切换,并简化前向传播过程。文章详细介绍了其两种构造方式(直接传入模块实例或使用有序字典命名)、工作原理及适用场景(如简单前馈网络和快速原型搭建)。同时指出了其局限性(不支持分支/跳跃连接)以及与ModuleList、ModuleDict的区别。通过一个卷积分类器实例展示了如何在实际项目中应用nn.Sequential,使其成为构建线性网络结构的理想选择。原创 2025-07-13 18:25:58 · 1029 阅读 · 0 评论 -
pytorch小记(二十七):深入理解 PyTorch 中的 `.contiguous()`:内存布局与数据不变性
在使用 PyTorch 进行深度学习和张量操作时,常常需要对张量进行转置、切片或高级索引等操作,这些操作往往不会真实复制数据,而是通过更改张量的 **stride**(步幅)和偏移量来重用原有内存,这就可能导致张量在内存中变得 **非连续(non-contiguous)**。为了方便后续的 `.view()`、底层 C/CUDA 调用或第三方库的使用,PyTorch 提供了 `.contiguous()` 方法,用来生成一个在内存中真正“连续”的张量副本。原创 2025-07-04 00:18:50 · 914 阅读 · 0 评论 -
pytorch小记(二十六):全面解读 PyTorch 的 `torch.matmul`
在深度学习与张量运算中,**维度管理**是一个常见且容易出错的环节。PyTorch 提供的 `unsqueeze` 操作,可以让你在张量的任意位置**插入一个长度为 1 的新维度**,实现批处理、通道对齐、广播扩展等需求。下面,我们从原理、API、示例到常见替代写法,带你深入理解 `unsqueeze` 的用法与场景。原创 2025-07-04 00:18:42 · 1385 阅读 · 0 评论 -
pytorch小记(二十五):全面解读 PyTorch 的 `unsqueeze`:任意位置插入一个长度为 1 的新维度
在深度学习与张量运算中,**维度管理**是一个常见且容易出错的环节。PyTorch 提供的 `unsqueeze` 操作,可以让你在张量的任意位置**插入一个长度为 1 的新维度**,实现批处理、通道对齐、广播扩展等需求。下面,我们从原理、API、示例到常见替代写法,带你深入理解 `unsqueeze` 的用法与场景。原创 2025-07-02 16:45:09 · 791 阅读 · 0 评论 -
pytorch小记(二十四):全面解读 PyTorch 的 `torch_cluster.fps`:下采样方法
在点云处理与图神经网络中,**Farthest Point Sampling (FPS)** 是一种常见且重要的下采样方法。它能够从大量的原始点云中,挑选出互相间距离最远的一批代表点,从而在保留全局几何结构的同时,大幅减少后续计算量。`torch_cluster` 库中提供了一个高效的 GPU 实现 `fps`,在代码中我们通常这样导入:原创 2025-07-02 16:45:00 · 1078 阅读 · 0 评论 -
pytorch小记(二十三):全面解读 PyTorch 的 `torch.linspace`:等差序列生成与典型应用
在深度学习与科学计算中,我们经常需要在某个区间内生成等间隔的数值序列,比如采样时间轴、插值混合、位置编码、网格采样等场景。PyTorch 为此提供了一个高效便捷的函数——`torch.linspace`。本文将从函数签名、基本用法,到进阶参数和实战案例,详细讲解 `torch.linspace` 的原理与使用技巧,帮助你在项目中灵活运用。原创 2025-05-19 16:12:21 · 1086 阅读 · 0 评论 -
pytorch小记(二十二):全面解读 PyTorch 的 `torch.cumprod`——累积乘积详解与实战示例
在深度学习与科学计算中,往往需要沿某个维度追踪“前面所有元素的乘积”,比如几何序列计算、概率分布构建、模型门控/权重衰减等场景。PyTorch 提供的 `torch.cumprod` 函数可以一行代码搞定这一需求。本文将从函数签名、参数含义、基础用法,到进阶示例、典型应用场景,为你带来最全面的讲解,并附上丰富示例助你快速上手。原创 2025-05-17 18:30:06 · 1088 阅读 · 0 评论 -
pytorch小记(二十一):PyTorch 中的 torch.randn 全面指南
在深度学习中,我们经常需要从标准正态分布($\mathcal{N}(0,1)$)中采样,PyTorch 提供了非常灵活的接口 `torch.randn`。本文将从接口定义、参数详解、常见场景、示例及输出,到关键字参数的设计原理,一一展开。原创 2025-05-17 18:24:56 · 1166 阅读 · 0 评论 -
pytorch小记(二十):深入解析 PyTorch 的 `torch.randn_like`:原理、参数与实战示例
在深度学习模型中,我们经常需要在已有张量的基础上生成与之「同形状」「同设备」「同或不同数据类型」的随机噪声,用于参数扰动、数据增强、扩散模型等场景。PyTorch 为我们提供了一个高效便捷的工具——`torch.randn_like`,它能一步完成上述需求。本文将从函数定义、参数详解、典型应用场景,到进阶用法,全面剖析 `torch.randn_like`,并通过丰富示例帮助你快速上手。原创 2025-05-16 02:51:07 · 993 阅读 · 0 评论 -
pytorch小记(十九):深入理解 PyTorch 的 `torch.randint()` 与 `.long()` 转换
在使用 PyTorch 进行深度学习建模或数据处理时,常常需要生成随机整数张量作为索引、伪标签或其它用途。本文将深入讲解 PyTorch 中的 `torch.randint()` 函数,以及为什么/如何结合 `.long()` 方法将张量转换为 64 位整型(LongTensor)。文末还会给出多种典型场景的实战示例,帮助你在项目中快速上手。原创 2025-05-16 02:50:48 · 995 阅读 · 0 评论 -
pytorch小记(十八):PyTorch 中四大归一化方法终极解析:BatchNorm/LayerNorm/InstanceNorm/GroupNorm
假设你正在训练一个模型,输入特征是身高(1.6m\~1.9m)和体重(50kg\~100kg)。这两个特征量级差异巨大,模型会疯狂关注体重的变化,而忽略身高的细微差异。**归一化(Normalization)** 就像把身高体重缩放到“-1到1”的区间,让模型公平对待每个特征。它的核心作用:1. **加速训练**:避免梯度爆炸/消失 2. **提升稳定性**:降低对参数初始化的敏感度 3. **增强泛化**:缓解过拟合原创 2025-04-10 02:40:00 · 582 阅读 · 0 评论 -
pytorch小记(十七):PyTorch 中的 `expand` 与 `repeat`:详解广播机制与复制行为(附详细示例)
在使用 PyTorch 构建神经网络时,经常会遇到不同维度张量需要对齐的问题,`expand()` 和 `repeat()` 就是两种非常常用的方式来处理张量的形状变化。本博客将详细解释两者的区别、作用、使用规则以及典型的报错原因,配合实际例子,帮助你深入理解广播机制。原创 2025-04-09 20:49:34 · 1655 阅读 · 0 评论 -
pytorch小记(十七):pytorch 中使用CUDA处理数据,pytorch,cuda(持续更新)
python中使用CUDA处理数据,pytorch,cuda(持续更新)前言1.从CPU转移到GPU方法一:tensor.to()方法二:tensor.cuda()方法三:tensor.type()方法四:torch.from_numpy(np_labels).cuda()前言自用import torchimport numpy as np1.从CPU转移到GPU方法一:tensor.to()a = torch.ones(3,4)b = a.to("cuda")print(a)p原创 2021-10-15 16:32:33 · 4819 阅读 · 1 评论 -
pytorch小记(十六):PyTorch中的`nn.Identity()`详解:灵活模型设计的秘密武器
在PyTorch的深度学习模型开发中,`nn.Identity()`是一个看似简单但功能强大的工具。它虽然不进行任何数学运算,但在实际开发中却能解决许多复杂问题。本文将深入解析`nn.Identity()`的作用、应用场景以及实际代码示例,帮助开发者更好地利用这一“隐形利器”。原创 2025-04-09 03:08:54 · 1432 阅读 · 0 评论 -
pytorch小记(十五):pytorch中 交叉熵损失详解:为什么logits比targets多一个维度?
PyTorch交叉熵损失详解:为什么logits比targets多一个维度?原创 2025-03-25 01:02:20 · 984 阅读 · 0 评论 -
pytorch小记(十四):pytorch中 nn.Embedding 详解
pytorch小记(十四):pytorch中 nn.Embedding 详解原创 2025-03-18 20:03:11 · 2813 阅读 · 3 评论 -
pytorch小记(十三):pytorch中`nn.ModuleList` 详解
pytorch小记(十三):pytorch中`nn.ModuleList` 详解原创 2025-03-18 03:13:06 · 1538 阅读 · 0 评论 -
pytorch小记(十二):pytorch中 masked_fill_() vs. masked_fill() 详解
pytorch小记(十二):pytorch中 masked_fill_() vs. masked_fill() 详解原创 2025-03-18 02:45:00 · 1301 阅读 · 0 评论 -
pytorch小记(十一):pytorch中 `torch.nn.Dropout` 详解
pytorch小记(十一):pytorch中 `torch.nn.Dropout` 详解原创 2025-03-18 02:30:19 · 1179 阅读 · 0 评论 -
pytorch小记(十):pytorch中torch.tril 和 torch.triu 详解
pytorch小记(十):pytorch中torch.tril 和 torch.triu 详解原创 2025-03-18 02:07:25 · 1526 阅读 · 0 评论 -
pytorch小记(九):pytorch中创建指定形状的张量: torch.empty
pytorch小记(九):pytorch中创建指定形状的张量: torch.empty原创 2025-03-17 19:11:43 · 889 阅读 · 0 评论 -
pytorch小记(八):pytorch中有关于.detach()的浅显见解
pytorch小记(八):pytorch中有关于.detach()的浅显见解原创 2025-03-16 02:24:45 · 1201 阅读 · 0 评论 -
pytorch小记(八):操作查看pytorch版本
查看pytorch版本前言一、打开黑窗二、查看版本前言pytorch官网:https://pytorch.org/pytorch安装:https://pytorch.org/get-started/locally/操作系统:Windows10一、打开黑窗win+R打开运行窗口打开窗口后输入“cmd”点击确定。二、查看版本打开黑窗后输入:python(请忽略掉warning,hhhh)然后输入:importtorchprint(torch.__version__)#这里是原创 2020-11-03 19:41:00 · 8536 阅读 · 0 评论 -
pytorch小记(七):pytorch中的保存/加载模型操作
在 PyTorch 中,加载模型通常分为两种情况:**加载模型参数(state_dict)** 和 **加载整个模型**。以下是加载模型的所有相关操作及其详细步骤:原创 2025-01-12 23:59:11 · 1595 阅读 · 0 评论 -
pytorch小记(六):pytorch中的clone和detach操作:克隆/复制数据 vs 共享相同数据但 与计算图断开联系
clone():深拷贝一个张量。detach():断开张量与计算图的连接。:将非张量数据转换为浮点型 PyTorch 张量。它们在不同场景下各有用途,可以单独使用或结合使用。原创 2025-01-12 22:05:44 · 1251 阅读 · 0 评论 -
pytorch小记(五):pytorch中的求导操作:backward()
pytorch中的求导操作:backward()原创 2025-01-12 17:29:40 · 1252 阅读 · 0 评论 -
pytorch小记(四):pytorch中的重排操作:x.permute()
在 PyTorch 中,`permute` 是一种对张量维度重新排列的方法。它不会更改数据,而是根据指定的顺序交换维度的位置。原创 2025-01-12 05:58:52 · 1134 阅读 · 0 评论 -
pytorch小记(三):pytorch中的最大值操作:x.max()
在 PyTorch 中,`x.max(dim=n)` 表示沿指定维度 `dim` 求张量的最大值,并返回 **最大值** 和 **最大值的索引**。我们逐步分析 `dim=0`, `dim=1`, 和 `dim=2` 的行为。原创 2025-01-12 05:35:23 · 628 阅读 · 0 评论 -
pytorch小记(二):pytorch中的连接操作:torch.cat(tensors, dim=0)
在 PyTorch 中,`torch.cat()` 是一种用于在指定维度上连接张量的操作。它能够将多个张量沿某个轴拼接成一个新的张量。原创 2025-01-12 05:10:29 · 1312 阅读 · 0 评论 -
pytorch小记(一):pytorch矩阵乘法:torch.matmul(x, y)
y是 1D 张量返回一个1D 张量,形状为(2,)。相当于将y当作列向量,与矩阵x做矩阵乘法。y是 2D 张量返回一个2D 张量,形状为(2, 1)。矩阵乘法严格遵守二维矩阵的维度规则。两者的结果数值相同,但形状不同,主要是因为输入张量的维度不同,导致输出的维度也发生了变化。原创 2025-01-12 04:38:03 · 1518 阅读 · 0 评论