- 博客(861)
- 资源 (3)
- 收藏
- 关注
原创 PyTorch计算机视觉(2)——神经网络模型训练与PyTorch基础
本节介绍了 PyTorch 框架的核心应用。通过线性回归案例,详细阐述了梯度下降算法的工作原理,包括损失函数、学习率、权重更新等关键概念。随后展示了 PyTorch 的自动梯度计算机制,以及 LambdaLR、ReduceLROnPlateau 等多种学习率调度器的使用方法。在工程实践方面,讲解了 Dataset 与 DataLoader 的数据封装、GPU 加速训练、三种模型保存方式。最后以 Sigmoid 激活函数拟合指数曲线为例,说明了非线性建模的必要性。
2026-06-29 08:52:06
96
12
原创 PyTorch强化学习实战(18)——强化学习训练加速
我们已经学习了若干提升深度Q网络 (Deep Q-Network, DQN) 方法稳定性与收敛速度的实用技巧。这些技巧通过对经典 DQN 方法进行改良(例如向网络注入噪声或展开贝尔曼方程),以更短的训练时间获得更优策略。而本节我们将探索另一种加速路径:通过调整方法实现细节来提升训练效率。这虽属纯工程优化范畴,却因其实用价值而至关重要。
2026-06-29 08:31:47
122
11
原创 PyTorch强化学习实战——整合DQN改进算法
本文总结了 Rainbow DQN 中七项改进技术的整合与验证。在实现 Dueling DQN、Noisy Networks、优先经验回放及N步贝尔曼展开的基础上,实验表明组合系统在 100 局内即可从负收益跃升至正收益,平滑奖励达 +18,显著优于经典DQN。
2026-06-28 15:23:55
121
1
原创 PyTorch强化学习实战(16)——Categorical DQN
分布强化学习通过建模完整的回报分布,突破了传统算法仅关注期望价值的局限。本节详细阐述了 Categorical DQN 核心原理:将价值分布表示为固定区间内的离散原子,通过投影操作实现贝尔曼算子的分布版本,并采用 KL 散度作为损失函数。实现上,网络输出每个动作对应原子的概率分布,通过 distr_projection 函数完成分布投影。
2026-06-25 09:45:46
632
19
原创 视觉Transformer实战 | Pyramid Vision Transformer(PVT)详解与实现
Pyramid Vision Transformer (PVT) 通过引入金字塔结构和空间缩减注意力机制,解决了Vision Transformer (ViT) 的单尺度低分辨率输出和计算开销大问题,成为首个专为密集预测任务设计的纯 Transformer 骨干网络。本节将深入解析 PVT 技术原理,并使用 PyTorch 从零开始实现 PVT 模型。
2026-06-25 09:05:11
784
21
原创 OpenCV-Python实战(30)——基于支持向量机的交通标志识别模型
在本节中,我们训练了一个多类分类器来识别 GTSRB 数据库中的交通标志。我们讨论了监督学习的基础知识,探索了特征提取的复杂性,并初步了解了神经网络。通过本节的方法,我们应该能够将实际问题表述为机器学习模型,利用 Python 技能下载带标签的样本数据集,编写将图像转换为特征向量的特征化函数,并使用 OpenCV 训练现成的机器学习模型,从而解决实际问题。
2026-06-22 08:39:47
900
32
原创 PyTorch强化学习实战(15)——Dueling DQN
本文介绍了 Dueling DQN 的核心思想——将Q网络分解为状态价值流和动作优势流,通过显式建模两者关系提升学习效率。从经典 DQN 的局限性出发,详细解析了 Dueling Network 的架构设计、数学原理及实现细节,并通过减去优势均值的技巧确保网络正确学习。实验结果表明,该架构相比经典 DQN 具有更快的收敛速度,且优势值稳定在零均值附近,验证了设计的有效性。
2026-06-22 08:27:29
381
10
原创 OpenCV-Python实战(29)——基于视觉显著性的自动多目标跟踪系统
本节我们探索了一种标记视觉场景中潜在有趣物体的方法,即使这些物体的形状和数量都是未知的。我们利用傅里叶分析研究了自然图像统计特性,并实现了一种提取自然场景中视觉显著区域的方法。此外,我们将显著性检测器的输出与跟踪算法相结合,在一个足球比赛视频序列中跟踪了多个形状和数量未知的物体。我们还介绍了 OpenCV 中其他更复杂的跟踪算法,可以用它们替代应用程序中的均值漂移跟踪,甚至创建自己的应用程序。当然,也可以用之前学过的技术(如特征匹配或光流法)来替换均值漂移跟踪器。
2026-06-19 08:45:00
401
7
原创 PyTorch计算机视觉(1)——计算机视觉的数学工具
本节介绍了计算机视觉中的关键数学工具,包括概率分布(二项分布、高斯分布)、香农熵、KL 散度、交叉熵和 Jensen 不等式。通过贝叶斯定理和最大似然估计,可推导出模型训练的损失函数,如交叉熵和均方误差。文中还讨论了过拟合问题及其缓解方法(如岭回归),并通过期望最大化算法演示了如何从数据中估计概率密度函数。这些概念为图像生成、分类等计算机视觉任务提供了理论基础。
2026-06-19 07:45:00
294
8
原创 PyTorch深度学习实战(60)——PyTorch自动机器学习
在本节中,我们探讨了 AutoML 技术,其核心目标是提供模型选择与超参数优化的自动化方法。对于缺乏经验的初学者,AutoML 能帮助解决"模型应包含多少层"、"选择哪种优化器"等决策难题;对于经验丰富的研究人员,它既能加速模型训练流程,又能发现那些通过人工调参几乎不可能获得的最优模型架构。
2026-06-18 10:14:52
354
27
原创 PyTorch深度学习实战(59)——使用PyTorch Profiler分析模型推理性能
本节介绍了使用 PyTorch Profiler 工具分析 MNIST 手写数字识别模型在 CPU 与 GPU 上的推理性能。通过记录操作执行时间与内存消耗,可识别计算瓶颈和内存问题。通过本节学习,能够掌握在模型推理过程中进行性能分析的方法,从而能更准确地评估模型在 CPU 和 GPU 上的运行表现。
2026-06-18 09:58:54
187
13
原创 PyTorch强化学习实战(14)——优先经验回放机制
本节深入介绍了优先经验回放机制,它通过根据样本损失值分配优先级,打破了经典 DQN 的均匀采样策略,从而提升训练效率与策略质量。详细阐述了优先级的计算公式、采样与权重补偿机制,并给出了具体代码实现,包括缓冲区设计、损失函数修改及超参数 β 的调度策略。实验结果显示,该方法在减少训练迭代次数的同时,能够获得更低的损失值。
2026-06-16 09:08:31
770
36
原创 Ubuntu极速部署OpenClaw完全指南(本地模型+DeepSeek)
OpenClaw 给是一个开源、可自托管的 AI 助手平台,原生支持 Ollama 本地模型和 DeepSeek 等云端 API,让你在隐私与性能之间自由切换。本文记录了我在 Ubuntu 上从零部署 OpenClaw 的全过程——踩过的坑、优化后的配置,一并进行分享。无论你是想搭建一个完全离线的私人助手,还是追求顶级大模型的推理能力,这篇指南都能帮你少走弯路,快速用起来。
2026-06-16 09:00:07
508
14
原创 OpenCV-Python实战(28)——OpenCV计算摄影从HDR图像融合到全景拼接
本节的目标是在摄影和图像处理的基础上,深入探讨 OpenCV 提供的一些算法。我们将专注于数字摄影处理,并构建能够充分利用 OpenCV 功能的工具,将其作为编辑照片的工具。学习数字摄影的基础知识和高动态成像的概念,不仅能更好地理解计算摄影,还能成为更优秀的摄影师。通过本节,将学习如何直接使用数码相机处理 RAW 格式图像,如何使用 OpenCV 的计算摄影工具以及如何使用低级 OpenCV API 来构建全景拼接算法。
2026-06-13 16:23:43
1095
42
原创 PyTorch强化学习实战(13)——噪声网络(NoisyNet-DQN)
噪声网络 (NoisyNet) 通过在神经网络权重中注入可学习的参数化噪声,实现状态依赖且时间上一致的探索,克服了传统 ε-greedy 等策略在稀疏奖励环境中效率低下的问题。该方法的权重由可训练均值 μ 和标准差 σ 加上随机噪声 ε 构成,噪声可采用独立高斯或分解高斯方式,后者通过外积计算降低计算复杂度。在 PyTorch 中可通过自定义 NoisyLinear 层实现,替换 DQN 最后两层线性层并移除 ε-greedy 即可。
2026-06-13 16:12:54
463
19
原创 视觉Transformer实战 | Twins空间注意力机制详解与实现
视觉任务里,标准全局自注意力在高分辨率输入上代价太高;纯局部窗口注意力虽然更省算力,但跨窗口信息不足,对检测、分割这类密集预测任务并不友好。Twins 因此提出了两条路线:Twins-PCPVT 和 Twins-SVT,前者重点改位置编码,后者重点改空间注意力设计。本文将详细介绍 Twins 网络的技术原理,并提供完整的 PyTorch 实现。
2026-06-11 08:56:49
521
23
原创 OpenCV-Python实战(27)——基于对极几何的3D场景重建
在本节中,我们探索了一种通过推断同一相机拍摄的 2D 图像的几何特征来重建 3D 场景的方法。我们编写了一个标定相机的脚本,并学习了基础矩阵和本质矩阵。我们利用这些知识进行了三角测量。然后,我们使用 Matplotlib 中的简单 3D 散点图,将场景的真实世界几何结构可视化为 3D 点云。我们可以将三角化后的 3D 点存储到文件中,供点云库解析,或者对不同图像对重复该过程,以生成更稠密、更准确的重建。
2026-06-11 08:48:57
701
31
原创 OpenCV-Python实战(26)——复杂场景下的实时物体检测与跟踪
本节介绍了一种鲁棒的特征跟踪方法,该方法速度足够快,能够实时应用于网络摄像头的视频流。首先,算法展示了如何在一幅图像中提取和检测重要特征——无论是我们感兴趣的模板图像(训练图像),还是预期包含该物体的更复杂场景(查询图像),这些特征都具有视角和尺寸不变性。然后对关键点进行聚类,找到两幅图像中特征点之间的匹配。在此基础上,可以计算出一个将一组特征点映射到另一组的透视变换矩阵。利用这些信息,我们可以在查询图像中勾勒出训练图像的轮廓,并对查询图像进行透视变换,使感兴趣的物体以直立状态显示在屏幕中央。
2026-06-08 09:00:00
688
35
原创 PyTorch强化学习实战(12)——Double DQN(DDQN)
本文系统介绍了 Double DQN (DDQN) 对经典 DQN 的改进。DDQN 旨在解决 DQN 高估动作价值的缺陷。其核心改进在于将动作选择与价值评估解耦:使用主网络选择下一状态的最优动作,再用目标网络评估该动作的Q值,从而消除正向偏差。实验结果显示,DDQN 的价值估计更稳定,未出现明显高估。
2026-06-08 08:30:00
774
32
原创 PyTorch深度学习实战(58)——基于PyTorch Lightning的跨硬件模型训练
在本节中,我们重点介绍了如何从模型训练代码中抽象出冗余的实现细节,以及如何构建快速模型原型开发的核心组件。鉴于 PyTorch 代码常常包含大量此类冗余细节,我们研究了基于 PyTorch 构建的高级库 PyTorch Lightning,该库能用少量代码实现模型训练,并使代码具备硬件无关性。此外,我们还实践了如何使用 PyTorch Lightning 训练和评估手写数字分类模型。
2026-06-05 09:38:14
452
36
原创 PyTorch深度学习实战(57)——使用fastai进行快速原型开发
在本节中,我们对 fastai 进行了简要介绍并将其用于训练 MNIST 手写数字识别模型。fastai 为机器学习工程师和研究人员提供了丰富功能,本节旨在展示 fastai 的高效性和易用性,所学内容可迁移至其他 fastai 机器学习任务。本质上 fastai 基于 PyTorch 功能构建,因此这两个框架可以随时切换使用。
2026-06-05 09:06:12
318
50
原创 OpenCV-Python实战(25)——基于深度传感器与凸性分析打造实时手势识别系统
本节介绍了一个基于深度传感器(如 Kinect )的实时手势识别应用程序。该应用通过分析深度图实现手部区域分割(阈值分割、形态学操作、连通分量分析)、手部形状分析(轮廓、凸包、凸性缺陷检测),并根据凸性缺陷夹角识别伸展手指数量,从而实现手势分类(如拳头或张开的手)。该算法简单高效,能在普通笔记本上实时运行,且易于扩展。
2026-06-04 08:38:12
332
42
原创 PyTorch强化学习实战(11)——N步DQN(N-step DQN)
本节介绍了N步 DQN,一种通过扩展贝尔曼方程更新步骤来加速深度Q网络 (Deep Q-Network, DQN) 收敛与提升稳定性的方法。N 步更新通过考虑未来多步奖励来加速价值传播,相比单步 DQN 能更快收敛。但展开步数 n 需谨慎选择,因为过大的 n 会引入偏差,并使 DQN 倾向于同策略学习,削弱经验回放缓冲区的优势。
2026-06-04 08:32:48
573
27
原创 PyTorch深度学习实战(56)——在iOS上构建PyTorch应用
在本节中,我们详细介绍了将 PyTorch Mobile 优化的 MNIST 手写数字识别模型部署到 iOS 平台的过程。通过配置 Xcode 开发环境,集成 LibTorch-Lite 库,并利用 Swift 编写摄像头图像采集和处理模块,实现了对手写数字图像的实时拍摄和识别。应用成功将拍摄图像预处理为模型输入格式,执行推理并显示识别结果,验证了移动端模型在 iOS 设备上的有效部署和准确识别能力。
2026-06-01 08:45:57
1176
37
原创 视觉Transformer实战 | 将卷积引入视觉Transformer(CvT)
CvT 是一种融合卷积神经网络与 Vision Transformer 优势的视觉模型,旨在解决 ViT 缺乏平移不变性和局部性等归纳偏置的问题。CvT 采用分层结构逐级降采样,使用卷积词元嵌入代替传统 patch 切分,引入卷积投影替代线性投影。这些设计使得 CvT 能够去除位置编码,在高分辨率输入下表现更优。本节深入解析 CvT 的核心原理,并提供完整的 PyTorch 代码实现,演示如何在实际数据集上训练和评估 CvT 模型。
2026-06-01 08:31:40
676
48
原创 PyTorch深度学习实战(55)——在Android上部署PyTorch模型
在本节中,我们首先介绍了 PyTorch Mobile 及其功能——如何将基于追踪的 PyTorch 模型文件转换为可在移动设备上运行的优化模型对象。接着,我们逐步构建了一个 Android 应用,利用 PyTorch Mobile 加载预训练的 MNIST 模型,对手机摄像头拍摄的手写数字图像进行分类。
2026-05-29 17:25:34
1095
38
原创 PyTorch深度学习实战(54)——使用TorchScript和ONNX导出通用PyTorch模型
在本节中,我们将深入探讨使用 TorchScript 导出 PyTorch 模型。通过序列化,TorchScript 使模型与 Python 生态系统独立,从而使得模型可以在其他环境中加载,例如基于 C++ 的环境。我们还跨越 Torch 框架与 Python 生态的边界,研究机器学习通用开放格式 ONNX,该技术能帮助我们将 PyTorch 训练的模型导出至非 PyTorch 甚至非 Python 环境。
2026-05-29 16:39:03
441
52
原创 OpenCV-Python实战(24)——打造实时图像滤镜系统
在本节中,我们探索了一系列有趣的图像处理特效。我们利用减淡和加深技术创建了黑白铅笔素描效果,探索了查找表以实现高效的曲线滤镜,并发挥创意制作了卡通效果。其中使用的一项技术是二维卷积,它接收一个滤波器和一张图像,然后生成一张新图像。
2026-05-27 11:28:09
945
62
原创 PyTorch强化学习实战——使用高级组件复现DQN
本节,我们将使用在《强化学习高级组件》一节介绍的高级组件复现[经典深度Q网络 Deep Q-Network, DQN) 方法。这将大幅精简代码,使核心逻辑更加突出。
2026-05-27 11:02:16
553
24
原创 PyTorch强化学习实战(10)——强化学习高级组件
我们已经学习了如何实现深度Q网络 (Deep Q-Network, DQN) 模型,证明了非线性近似器完全可用于强化学习,这一概念验证极大地推动了深度Q学习乃至整个深度强化学习领域的研究热潮。在本节中,我们将重点探讨如何定义强化学习高级组件,使用更高级的模块构建代码,并聚焦于所实现方法的核心细节,避免反复实现相同的逻辑,避免重复造轮子的低效劳动。
2026-05-24 09:45:00
1035
34
原创 PyTorch深度学习实战(53)——使用TorchServe部署PyTorch模型
在 PyTorch 深度学习模型部署一节,我们学习了如何使用 Flask 库创建可远程部署、通过网络提供预测服务的模型服务器。在本节中,我们将继续讨论使用 TorchServe 将一个已经训练并测试过的 PyTorch 深度学习模型对象部署到一个独立的环境中,使其能够对新输入数据进行预测或推理。这也称为模型的生产化,即将模型部署到生产系统中。
2026-05-24 01:49:48
347
50
原创 PyTorch深度学习实战(52)——PyTorch深度学习模型部署
在本节中,我们探讨了如何将训练好的 PyTorch 深度学习模型部署到生产环境中,成功构建了一个独立运行的模型服务器,能够对手写数字图像进行预测。这套方法可以轻松扩展至其他机器学习模型,这为使用 PyTorch 和 Flask 开发机器学习应用开辟了无限可能。
2026-05-22 10:45:09
1153
33
原创 PyTorch深度学习实战(51)——自动混合精度训练
在本节中,我们将学习如何借助 torch.amp.autocast 和 torch.amp.GradScaler 等 API 实现混合精度训练,在加快深度学习模型训练速度的同时降低内存占用,使用 PyTorch 的自动混合精度 (Automatic Mixed Precision, AMP) 工具,加速训练并减少内存消耗。
2026-05-22 10:33:44
502
57
原创 PyTorch深度学习实战(50)——PyTorch分布式训练
在本节中,我们将探讨如何通过跨机器和机器内多进程的分布式训练来加速模型训练过程。我们将系统学习 PyTorch 提供的三大分布式训练 API——torch.distributed、torch.multiprocessing 以及 torch.utils.data.distributed.DistributedSampler,使用这些 API 能够极大的简化分布式训练,介绍如何使用 PyTorch 的分布式训练工具,在 CPU 和 GPU 上加速训练。
2026-05-21 10:41:04
528
37
原创 PyTorch强化学习实战——Atari游戏包装器
从资源角度来看,用强化学习 (Reinforcement Learning, RL) 处理 Atari 游戏颇具挑战性。为提升效率,需要对 Atari 游戏交互应用多种变换。其中部分变换仅影响性能,另一些则针对 Atari 平台特性——这些特性会导致学习过程漫长且不稳定。这些变换可以通过 Gymnasium 库的各类包装器实现,其中 stable-baselines3 (SB3) 代码库是最常用的包装器之一。
2026-05-21 08:51:46
828
50
原创 PyTorch强化学习实战(9)——深度Q学习
在本节中,我们深入讨论了如何利用神经网络近似Q值,以及这种近似方法带来的额外复杂性。在深度Q网络 (Deep Q Network, DQN) 部分,还介绍了几种提高 DQN 训练稳定性和收敛性的技术,包括经验回放缓冲池、目标网络和帧堆叠机制。最终,我们将这些扩展技术整合为一个完整的 DQN 实现方案,成功解决了 Atari 游戏系列中的 Pong 环境。
2026-05-18 08:50:32
834
71
原创 PyTorch强化学习实战(8)——Q学习详解与实现
在本节中,我们了解了价值迭代算法在具有庞大观测空间的复杂环境中的局限性,并学习了如何通过Q学习算法来克服这些限制。通过在 FrozenLake 环境中的实践验证了Q学习算法,同时深入讨论了如何利用神经网络近似Q值,以及这种近似方法带来的额外复杂性。
2026-05-14 08:31:24
882
77
原创 PyTorch强化学习实战(7)——表格学习与贝尔曼方程
在本节中,我们将学习许多深度强化学习中广泛使用的重要概念:状态价值 (state value)、动作价值 (action value) 以及贝尔曼方程 (Bellman equation) 的多种形式。我们还将深入探讨价值迭代法 (value iteration),这一方法是Q学习领域的重要基石。最后,我们将以 FrozenLake 环境为例,探索Q学习如何与该环境结合,解决其不确定性相关问题。
2026-05-11 08:29:15
681
61
原创 PyTorch强化学习实战——使用交叉熵方法解决 FrozenLake 环境
我们已经学习了如何使用交叉熵方法解决 CartPole 环境,神经网络学会了仅通过观察值和奖励信号就学会了如何应对环境,完全不需要对观测值进行任何人工解读。虽然我们使用 CartPole 环境为例,但完全可以替换为其他场景,如以商品库存量为观察值、以营业收入为奖励的仓储模型。实现并不依赖于环境的具体细节,这正是强化学习模型的精妙之处,在本节中我们将学习如何将完全相同的方法应用于 Gymnasium 库中的另一个环境,FrozenLake。
2026-05-08 15:14:41
700
36
原创 PyTorch强化学习实战(6)——交叉熵方法详解与实现
在本节中,介绍了交叉熵方法,尽管有其局限性但简单高效。我们将其应用于 CartPole 环境,并讨论了强化学习方法的分类体系——不同方法具有的特性差异将影响其适用场景。
2026-05-06 15:09:59
767
20
用于目标检测的 YOLO V3 模型架构及权重文件(含 OpenCV 使用示例)
2021-09-30
用于图像分类的 ResNet-50 模型架构及权重文件(使用 Caffe 框架进行预训练)
2021-09-30
用于目标检测的 MobileNet-SSD 模型架构及权重文件(使用 Caffe 框架进行预训练)
2021-09-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅