自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 收藏
  • 关注

原创 Pytorch进阶训练技(五)之argparse调参

argsparse 是 python的命令行解析的标准模块,内置于 python,不需要安装。这个库可以让我们直接在命令行中就可以向程序中传入参数。我们可以使用来运行python文件。而argparse的作用就是将命令行传入的其他参数进行解析、保存和使用。在使用argparse后,我们在命令行输入的参数就可以以这种形式来完成对常见超参数的设置。argparse给我们提供了一种新的更加便捷的方式,而在一些大型的深度学习库中人们也会使用json、dict、yaml等文件格式去保存超参数进行训练。

2026-05-28 09:00:00 336 1

原创 AI范式跃迁:从大模型LLM到Agent,再到工程化智能体

它不再只是一个插件,而是一个拥有独立工作位的工程师。

2026-03-26 08:45:00 387

原创 Pytorch进阶训练技巧(四)之迭代训练

在完成了模型构建与参数优化的配置后,我们进入了最后的执行阶段。在真实的工程实践中,。与。

2026-01-24 09:00:00 1231

原创 Pytorch进阶训练技巧(三)之学习率调度与训练节奏控制

不同调度器的更新粒度不同:Warmup 通常按 Step 更新,Step/Cosine 多按 Epoch 更新,而 Plateau 则由验证指标触发。策略适用场景核心价值Warmup大模型、AdamW、大 Batch防止训练初期崩溃绝大多数分类、检测任务追求极限精度,过程丝滑平稳数据规模小、经典 CNN逻辑简单,实验可复现性极强调参经验不足、指标震荡指标驱动、减少手动调参,但依赖验证指标质量。

2026-01-23 09:00:00 994

原创 Pytorch进阶训练技巧(二)之梯度层面的优化策略

在前面的内容Pytorch深入浅出Ⅶ之优化器(Optimizer)中,我们已经系统地理解了 Optimizer 的工作机制,但在真实训练中,仅仅“会用 Optimizer”远远不够。随着模型变深、Batch 变大、训练周期变长,我们会遇到一些并非算法本身、而是工程实现上的挑战。这些问题往往不需要更换 Optimizer,而是要在使用阶段引入一些进阶技巧。本篇介绍三种工程中非常常见、且稳定有效的进阶技巧:梯度裁剪、梯度防护与梯度累积。在深层网络(如 RNN 或 Transformer)中,梯度通过链式法则

2026-01-20 09:00:00 631

原创 Pytorch进阶训练技巧(一)之自定义损失函数

PyTorch 的torch.nn中已经内置了大量常用损失函数,例如MSELossL1LossBCELoss等,足以覆盖大多数基础任务。1️⃣ 领域常用但未内置的损失比如分割任务里常见的 Dice Loss、Focal Loss 等;它们更偏向特定任务或特定数据分布,因此不一定会被 PyTorch 全部收录进官方库。2️⃣ 论文/研究中提出的新损失复现论文时经常会碰到作者提出全新的 Loss,这时既不能直接用内置实现,也可能找不到可靠的第三方代码,就需要自己实现。这种写法适合快速验证想法、写小实验。

2026-01-19 09:30:00 1739

原创 Pytorch可视化(五)之训练过程可视化WandB

在上一节中,我们使用了TensorBoard。:换台电脑就看不到实验结果,且不方便多人协作。:当实验多达几十个时,在 TensorBoard 里对比不同超参的效果非常混乱。完美解决了这些问题。它被誉为“深度学习界的 GitHub”,不仅支持云端保存、多人协作,还能自动记录系统性能(显存、CPU)、保存模型权重,并提供极其优雅的对比界面。

2026-01-16 09:00:00 957

原创 Pytorch可视化(四)之训练过程可视化TensorBoard

当我们的实验变得复杂(对比不同超参数、观察深层梯度)时,Matplotlib 的静态绘图就显得捉襟见肘。TensorBoard 作为深度学习领域事实上的标准可视化工具,能为我们提供动态、交互式的实验追踪。

2026-01-15 09:00:00 1611

原创 Pytorch可视化(三)之训练过程可视化Matplotlib

从实践经验来看,大多数深度学习模型(CNN / RNN / Transformer)在训练过程中,关注的可视化内容可以归纳为以下几类。训练过程本质上是一个高维参数空间中的数值优化过程。如果只依赖终端里一行行冰冷的数值,我们实际上是在“盲训模型”。在深度学习训练中,我们经常会遇到这种状态:代码在跑,控制台的 Loss 也在跳变,但。Matplotlib 只能记录“你让它记录”的东西。——如果训练一半程序崩了,你没存下来的图就彻底消失了。👉 可视化的核心意义,往往不在于“看数值”,而在于看。

2026-01-14 09:00:00 604

原创 Pytorch可视化(二)之CNN可视化

特征图是输入图像经过卷积运算后的输出结果。“我要提取什么模式?“我在这张图像中提取到了什么?相比卷积核,特征图更加直接地反映了模型对具体输入样本的响应情况。

2026-01-13 09:00:00 1864

原创 Pytorch可视化(一)之网络结构可视化

我们可以看到torchinfo提供了更加详细的信息,包括模块信息(每一层的类型、输出shape和参数量)、模型整体的参数量、模型大小、一次前向或者反向传播需要的内存大小等,这样,我们就可以更直观、全面地理解模型结构,便于调试与优化。:只能在jupyter notebook中使用,要注意各安装包之间版本的匹配,输出的网络结构图比较直观,细节也相对丰富。:使用比较简单,但安装的时候必须做好版本匹配,需在浏览器中查看,相对来说不太好看,但细节比较丰富。:基于LaTeX的神经网络绘图工具,高清晰度的网络结构图。

2026-01-12 08:30:00 877

原创 Pytorch深入浅出(十五)之GPU加速与设备管理

1.强调显存溢出 (OOM):在笔记末尾可以提一下,如果报错,通常是因为 Batch Size 太大或者模型太深,此时需要调小 Batch Size。2.数据类型一致性:迁移到 GPU 后,请确保模型参数和输入数据都是同一种精度(如都是float32),否则会报类型不匹配错误。

2026-01-09 09:00:00 980

原创 Pytorch深入浅出(十四)之完整的模型训练测试套路

在 PyTorch 等主流深度学习框架中,模型迭代训练的核心套路模板本质上只有两种:1️⃣ 在 epoch 循环内直接写 train / eval 逻辑(内联写法)2️⃣ 将 train / eval 封装成函数,在 epoch 循环中调用(模块化写法)二者在训练语义上等价,差异仅在代码组织与工程可维护性是否存在“第三种本质套路”?之后可能看到的:PyTorch Lightning、HuggingFace Trainer、Detectron2 / MMDetection。

2026-01-08 09:00:00 1930

原创 用 .pro 文件打通算法-平台-单元测试

是在“链接阶段”告诉编译器 / 链接器:哪些函数需要被导出、对外可见。因为 C/C++ 不像 Python 那样天然能看到并调用函数。__declspec#else__declspec在源文件里真正“导出”的是:被修饰的类 / 函数public:从工程角度看,.pro文件并不是“写给开发者看的”,而是写给构建系统看的接口描述文件。我们真正需要关心的不是 qmake 的全部语法,而是:按上面模板改“这个模块叫什么?由哪些源文件组成?依赖谁?向平台暴露什么接口?

2026-01-06 09:15:00 984

原创 Pytorch深入浅出(十三)之模型微调

1.预训练模型 =可迁移的知识加载权重 + 控制梯度3.小数据场景下,优先选择:冻结 backbone + 只训练分类层4.如果数据量较大,可以尝试:不冻结 Backbone,进行整体微调。

2026-01-06 09:00:00 1340

原创 Pytorch深入浅出(十二)之模型加载与保存

至此,PyTorch 的“训练主线”已经闭环。最后的几次笔记是一些实用的技巧,PyTorch框架的基础学习就将告一段落。

2026-01-05 09:00:00 2341

原创 Pytorch深入浅出(十一)之归一化(Layer Normalization、Instance Normalization、Group Normalization)

LN不在 Batch 维度上进行统计。它是逐样本(Sample-wise)计算的。计算方式:不看 batch 中的其他样本,每个样本独立对其所有特征维度计算均值和方差。特点:与batch_size无关,无论 batch 是 1 还是 1000,同一个样本得到的标准化结果完全一致。👉每个 token、每个样本都单独算一组统计量。IN 是逐 Instance(单样本、单通道)计算的。计算方式。

2026-01-04 09:00:00 1148

原创 Pytorch深入浅出(十)之归一化(Batch Normalization)

归一化(Normalization)是深度学习中让模型“跑得快、练得稳”的核心技术。它通过将输入数据强制拉回标准分布,解决了深层网络难以训练的顽疾。BN首次于论文中提出,在原论文中被解释为用于缓解 Internal Covariate Shift(ICS)。后续研究发现,BN 的核心效果可能并非直接“消除 ICS”,而是通过改善梯度传播和优化景观,使训练更加稳定和高效。

2025-12-31 09:00:00 1131

原创 Pytorch深入浅出(九)之正则化(Regularization)

在训练模型时,我们不仅希望它在训练集上表现好,更希望它能应对从未见过的测试数据。这种应对新数据的能力称为。为了提升泛化能力,我们需要对抗,这就是正则化的职责。

2025-12-30 09:00:00 1156

原创 Pytorch基础知识Ⅳ之自动求导autograd

包为张量上的所有运算提供了自动微分机制,它是 PyTorch 能够实现“定义即运行 (Define-by-Run)”的核心原因。原因:Autograd 依赖前向传播的原始值来算梯度,原地修改会破坏“犯罪现场”,导致计算失败。下面给出的例子中,张量由用户手动创建,因此grad_fn返回结果是None。autograd 会自动沿计算图反向传播,并计算。每个非叶子节点张量(由运算得到的张量)都有一个。之后参与的运算,才会被autograd追踪。,所有的后续节点(输出)都会自动变为。在深度学习中,训练的核心是。

2025-12-29 09:00:00 1576

原创 Pytorch基础知识Ⅲ之计算图与动态图机制

以上述的计算为例:y.grad_fn = <MulBackward 0>,a.grad_fn = <AddBackward 0>,b.grad_fn = <AddBackward 0>。动态图和静态图就好比我们去国外旅游,动态图就是自己规划出行方式、游玩行程等,而静态图就是跟团走,路线固定,不灵活但高效。构建这样的计算图是很方便求解梯度的,以对w求偏导为例,计算图是用来描述运算的有向无环图(DAG),它包含了。,可以理解为 Tensor,而。

2025-12-27 10:00:00 845

原创 Pytorch基础知识Ⅱ之张量Tensor操作(很全面)

🧠 PyTorch Tensor 操作的三条铁律①是否拷贝数据,不看“函数名”,看storage 是否共享②→ 改的是元数据(shape / stride),不是数据dtype 改变device 改变明确的 clone()

2025-12-26 09:15:00 1167

原创 Pytorch基础知识之张量Tensor的本质

以单个元素索引为例子,各维度索引值 × stride 的加和相等(等于线性内存偏移),无论一维、二维、多维。如下9这个元素在1维的索引是8,2维的索引是[2][0],3维的索引是[1][1][0]。从不同的角度看,叫法不同。深度学习角度看张量,本质上就是多维数组ndarray。先拆成两份,在对每一份拆成三份,剩下的自动拆分。N维数组是机器学习和神经网络的主要数据结构。这么多括号,看的人有点乱,下面说点直观。这么多括号,看的不舒服,我们来拆分。先拆成三份,再自动拆成了四份。

2025-12-25 08:30:00 1519

原创 Pytorch深入浅出(八)之学习率调整(Scheduler)

虽然官方 API 很全,但有时我们需要特殊的策略(比如前 5 个 Epoch 线性增长做 Warmup,后面再衰减)。我们可以通过自定义函数来实现。

2025-12-24 08:00:00 1161

原创 Pytorch深入浅出(七)之优化器(Optimizer)

前面笔记我们说了损失函数,那么现在损失函数确定了,优化器就登场了!如果说深度学习模型是一个在群山中寻找最低点(最优解)的。

2025-12-23 09:00:00 2488

原创 Pytorch深入浅出(六)之损失函数(Loss Function)

在深度学习的“五步走”流程(数据 -> 模型 ->-> 优化器 -> 迭代训练)中,损失函数是模型的“指挥棒”。它衡量了模型预测值与真实值之间的差距,差距越小,模型越准。本次笔记不涉及繁杂的数学推导,而是聚焦于PyTorch 中损失函数的选择,特别是如何避开常见的“坑”。

2025-12-20 09:00:00 1143

原创 Pytorch深入浅出(五)之权值初始化

在搭建好网络模型后,训练的第一步不是输入数据,而是。如果把训练神经网络比作“滚雪球”,初始化就是决定雪球从山顶哪里开始滚。位置没选好,雪球可能根本滚不动(梯度消失),或者瞬间滚散架(梯度爆炸)。

2025-12-19 08:00:00 1784

原创 Pytorch深入浅出(四)之nn网络层(池化、线性、激活函数)

右边的图像变“糊”了,出现了马赛克块,像素宽高变成了原来的 1/8。线性层在这里扮演了“决策者”的角色,它不关心像素在图片左上角还是右下角(空间信息在展平时丢失了),它只关心这些像素值的加权总和与最终类别的关系。注意:计算量的差异——虽然参数看起来少,但线性层的参数量往往是巨大的。如果说卷积层和全连接层是在“计算”,那么激活函数层就是在“做决定”**。,这种结构才能逼近任意复杂的函数,这就是深度学习强大的根源。与卷积层不同,池化层的运算是独立作用于每一个通道的。的特征图,输出是 1000 类。

2025-12-12 09:00:00 1109

原创 Pytorch深入浅出(四)之nn网络层(卷积)

上一篇笔记我们从宏观地学习了如何“搭建”模型,这次笔记深入剖析网络内部的具体网络层,从微观拆解。

2025-12-11 09:00:00 1233

原创 Pytorch深入浅出(三)之网络模型的构建(下)

容器类型核心特性是否自带 forward典型应用场景顺序性✅ 是像搭积木一样构建标准的、按顺序执行的网络块(Block)迭代性❌ 否 (需手动写)需要大量重复构建层,或在 forward 中需要灵活控制循环逻辑时索引性❌ 否 (需手动写)需要根据参数动态选择网络分支,或管理非线性的网络结构时。

2025-12-10 09:00:00 830

原创 Pytorch深入浅出(三)之网络模型的构建(上)

一个nn.Module可以包含多个子nn.Module(如 LeNet 包含conv和fc层),形成清晰的模块化结构。任何自定义的nn.Module都必须实现方法,用于定义数据流经该模块的运算逻辑。每个nn.Module实例都通过八个内部字典来管理其状态、参数和行为(钩子函数),确保模型的可训练性、可保存性和可扩展性。

2025-12-09 09:00:00 1867

原创 Pytorch深入浅出(二)之数据预处理Transforms(下)

试想一下,在使用 torchvision.transforms 做图像增强时,我们经常会遇到:官方 API 提供不了的操作(例如添加椒盐噪声、局部模糊、自定义颜色扰动等),这种情况下,就需要我们自定义——transforms。即自定义transforms类并“以参数形式”传到 Dataset 的__init__初始化里。实践中最推荐的方式是:👉写一个和官方 Transform 完全相同接口的类 (__call__👉再通过Compose()与其他 transform 串联使用。

2025-12-08 09:00:00 292

原创 Pytorch深入浅出(二)之数据预处理Transforms(中)

与前面笔记同样的,以树叶分类竞赛数据集为例,下面代码写了一个函数,并可视化变换操作后的结果。

2025-12-06 09:00:00 1532

原创 Pytorch深入浅出(二)之数据预处理Transforms(上)

在上一篇文章中提及自定义Dataset,常常伴有Transforms的操作,本文章简要介绍一下Transforms的数据预处理操作,包含各种数据变换操作以及数据标准化Normalize,都是使用torchvision库中的transforms里的方法来实现。是PyTorch的计算机视觉工具包,包含了一些与CV相关的处理。

2025-12-05 09:00:00 854

原创 B站Pytorch深入浅出(一)之数据读取机制DataSet&DataLoader

Pytorch的数据读取的核心是DataLoader方法和Dataset类。

2025-12-04 10:51:59 1007 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除