自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 强化学习系列——PPO算法

强化学习中PPO(Proximal Policy Optimization)是一种先进的策略梯度方法,其核心思想是通过限制策略更新的幅度来稳定训练过程。PPO结合了优势函数(advantage function)以及off-policy 训练思想(重要性采样(importance sampling))。推荐参考视频 零基础学习强化学习算法:ppo策略优化目标(on-policy) 策略优化的目标是最大化期望累积奖励:J(θ)=Eτ∼πθ[∑t=0Tγtr(st,at)]J(\theta) = \mathb

2025-06-12 02:52:59 760

原创 DDPM优化目标公式推导(详细)

总体推导请参考DDPM优化目标公式推导以下完整推导从初始 VLB 表达式出发,逐步简化为最终形式:VLB=Eq[log⁡pθ(x0∣x1)]−∑t=2TEq[DKL(q(xt−1∣xt,x0)∥pθ(xt−1∣xt))]−DKL(q(xT∣x0)∥p(xT))\boxed{\text{VLB} = \mathbb{E}_{q} \left[ \log p_\theta(\mathbf{x}_0 | \mathbf{x}_1) \right] - \sum_{t=2}^T \mathbb{E}_{q} \l

2025-06-08 20:12:00 1030

原创 DDPM优化目标公式推导

DDPM(Denoising Diffusion Probabilistic Models)的优化目标推导基于变分下界(Variational Lower Bound, VLB) 或 证据下界(Evidence Lower Bound, ELBO)。以下是详细推导过程:​xt−1​,βt​I)反向过程(生成过程):学习参数化的马尔可夫链:pθ(x0:T)=p(xT)∏t=1Tpθ(xt−1∣xt),pθ(xt−1∣xt)=N(xt−1;μθ(xt,t),Σθ(xt,t))p_\theta(\math

2025-06-07 23:54:32 713

原创 RCNN系列算法发展脉络

RCNN系列是深度学习目标检测算法的奠基之作,从RCNN到Faster RCNN的演进,不仅提高了检测速度和精度,还优化了模型的端到端训练能力。Mask RCNN则使得目标检测迈向了实例分割的新时代。尽管在实时检测场景中YOLO系列更占优势,但在精度要求较高的任务中,RCNN系列依旧具有强大竞争力。

2025-05-21 01:02:12 822

原创 YOLOv1到YOLOv11全解析:一文搞懂11个版本升级路线!

YOLO(You Only Look Once)是目标检测领域最具影响力的算法家族之一,从最初的 YOLOv1 到最新发布的 YOLOv11,十年间持续进化,广泛应用于安防监控、无人驾驶、工业质检、移动端部署等场景。,助你在面试、论文阅读、项目实战中快速定位和选择合适的版本!本篇文章将带你一次性掌握 YOLO 的。精度与速度的平衡非常优秀。

2025-05-20 19:16:15 780

原创 PyTorch 之 torch.distributions.Categorical 详解

掌握这个类的用法,能让你在强化学习、自然语言处理等诸多领域更加得心应手地构建和训练模型。在深度学习的诸多任务中,我们常常需要处理离散概率分布,比如在自然语言处理中对词汇表中的单词进行采样,或者在强化学习中从策略网络输出的动作概率分布中选择动作。本文将深入讲解这个类的用法,帮助你在实际项目中更好地利用它。方法计算分类分布的熵,熵反映了分布的不确定性。是一个元组,用于指定采样的样本数量和形状。默认为空,表示采样一个样本。方法枚举分布的支持集,即所有可能的类别索引。在语言模型中,模型会预测下一个单词的概率分布。

2025-05-20 17:40:41 768

原创 强化学习基础原理详解与核心公式

强化学习融合了控制论、博弈论、运筹学与机器学习等多个领域的思想,是构建智能体的一种重要方式。理解其基础原理和核心公式,是学习深度强化学习、AlphaGo、自动驾驶等高阶应用的关键第一步。深度强化学习(DQN、DDPG、PPO、A3C)策略梯度的推导与实现强化学习的代码实战(基于Python和PyTorch)

2025-05-20 04:06:13 877

原创 强化学习系列——时序差分学习(SARSA与Q-Learning)

强化学习环境一般建模为一个马尔可夫决策过程(MDP)SAPRγSAPRγSS:状态空间AA:动作空间Ps′∣saP(s'|s,a)Ps′∣sa:状态转移概率RsaR(s,a)Rsa:奖励函数γ∈01γ∈01:折扣因子目标是学习一个策略π\piπ下的状态值函数或状态-动作值函数:VπsEπ∑t0∞γtRt1∣S0sVπsEπ​t0∑∞​γtRt1。

2025-05-20 03:39:43 966

原创 条件生成模型介绍

条件生成(Conditional Generation)是指在生成模型中,引入额外的条件信息(如类别标签、文本描述、图像等)来指导生成过程,使模型能够生成符合特定语义或属性的样本。它是从无条件生成(只学习pxpx)扩展到学习条件分布px∣cpx∣cx\mathbf{x}x:生成的样本(如图像、文本、音频等)c\mathbf{c}c:条件信息(如类别标签、文字、风格等)模型类型条件生成方法条件信息注入方式GAN标签输入 G 和 Dconcat 或嵌入VAE。

2025-05-19 04:07:51 1036

原创 无分类器引导的条件生成模型

无分类器引导通过。

2025-05-19 04:05:31 846

原创 分类器引导的条件生成模型

分类器引导的条件生成模型通过外部分类器的梯度信号,在不修改生成模型结构的情况下实现可控生成。其核心在于贝叶斯框架下的梯度融合,既保留了生成模型的多样性,又增强了条件指向性。实际应用中需注意分类器与生成模型的协同性,并通过实验调整参数以达到最优效果。

2025-05-19 04:01:46 1024

原创 扩散模型(Diffusion Model)介绍

扩散模型(Diffusion Model)是一类生成模型,其基本思想是通过模拟数据的逐步“扩散”与“去扩散”过程,学习数据分布,从而生成新的样本。扩散模型近年来在图像生成(如Stable Diffusion)等任务中表现出色。生成质量高;训练稳定;可与其他条件灵活结合。给定时间步序列t0Tt1⋯tN0t0​Tt1​⋯tN​0,设定噪声调度表αˉtαˉt​,采样过程如下:xt0∼N0Ixt0​​∼N0I。

2025-05-19 03:56:12 870

原创 生成对抗网络(GAN)原理

生成对抗网络()是由等人在 2014 年提出的一种深度生成模型。它通过两个神经网络之间的博弈(对抗)过程,学习数据的生成分布,从而生成以假乱真的数据(如图像、语音等)。GAN 是近年来生成模型领域的重要突破,广泛应用于图像生成、风格迁移、图像修复等任务中。

2025-05-19 01:09:33 647

原创 YOLOv5目标构建与损失计算

YOLOv5作为单阶段目标检测的经典算法,其高效的检测性能离不开精心设计的训练目标构建和损失计算策略。本文将深入解析YOLOv5源码中build_targets目标构建函数和ComputeLoss损失计算类的实现原理,揭开模型优化背后的关键技术。该函数核心思想是将每个目标分配到最合适的特征图层、网格位置和锚点尺寸,同时考虑中心点偏移以增加匹配机会,最终构建用于计算分类和定位损失的训练目标。该实现通过动态目标分配、多尺度损失平衡和先进的IoU计算方式,有效提升了YOLOv5的检测性能。

2025-05-18 23:36:41 821

原创 目标检测评估指标mAP详解:原理与代码

在目标检测任务中,mAP(mean Average Precision)是最重要的评估指标之一。精确率(Precision)与召回率(Recall)的平衡关系PR曲线的绘制原理AP(Average Precision)的计算方法多类别场景下的mAP计算附完整代码实现与逐行解析。

2025-05-18 18:46:30 843

原创 学习知识整理笔记

参考。

2025-05-17 09:49:58 363

原创 PyTorch实现三元组损失Triplet Loss

三元组损失(Triplet Loss)是深度学习中用于学习特征表示的重要损失函数,最初在FaceNet论文中提出,后被广泛应用于人脸识别、行人重识别(ReID)等任务。其核心思想是通过锚点样本(Anchor)、**正样本(Positive)和负样本(Negative)**的三元组,让同类样本的特征距离更近,不同类样本的特征距离更远。margin:间隔参数,控制正负样本对之间的最小距离:PyTorch内置的排序损失函数。

2025-05-17 09:48:01 1034

原创 PyTorch实现CrossEntropyLoss示例

在深度学习的分类任务中,交叉熵损失函数被广泛应用。然而,传统的交叉熵损失容易导致模型对预测结果过于自信,从而引发过拟合问题。本文介绍一种改进方法——标签平滑(Label Smoothing),并通过PyTorch实现该技术。代码源自计算机视觉领域的经典论文《Rethinking the Inception Architecture for Computer Vision》,可有效提升模型的泛化能力。self.eps = eps if label_smooth else 0 # 平滑因子。

2025-05-17 09:31:20 1038

原创 Pytorch实现Transformer代码示例

使用正弦/余弦函数为输入序列添加位置信息。:包含两个线性层和ReLU激活。

2025-05-17 09:10:54 307

原创 目标检测中的IoU损失函数

IoU损失函数的演进体现了目标检测领域对几何关系建模IoU → GIoU:解决梯度消失问题;:引入距离惩罚,加速收敛;:细化长宽比优化,提升精度。讨论话题在您的实际项目中,哪种IoU损失效果最佳?对于旋转目标检测,如何改进IoU损失?

2025-05-14 00:15:52 502

原创 Focal Loss 原理详解及 PyTorch 代码实现

Focal Loss 是为解决类别不平衡问题设计的损失函数,通过引入 gamma 参数降低易分类样本的权重,使用 alpha 参数调节正负样本比例。在目标检测等类别不平衡场景中表现优异。"""应用 Focal Loss 通过 gamma 和 alpha 参数改进 BCEWithLogitsLoss 以处理类别不平衡"""self.loss_fcn = loss_fcn # 必须使用 nn.BCEWithLogitsLoss()self.gamma = gamma # 调节难易样本权重的指数参数。

2025-05-13 12:24:47 592

原创 深度可分离卷积:原理、计算优化

显著降低了计算成本和参数数量。然而,对其计算过程和公式的理解常存在误区,本文将通过修正错误并提供严格推导,阐明其核心原理。:正确理解深度卷积的维度与计算关系,是准确实现和优化模型的关键。原描述中因维度混淆导致的公式错误,可能误导读者对计算效率的评估,修正后更符合实际应用场景。深度可分离卷积(Depthwise Separable Convolution)是一种高效的卷积操作,通过将标准卷积拆解为两步操作——标准卷积的每个输出位置需对输入张量的。个元素进行乘加操作。每个通道独立计算,单通道计算量为。

2025-05-09 16:04:28 1149

原创 矩阵求导常用公式解析:标量、向量与矩阵的导数计算

矩阵求导是机器学习、优化理论中的重要数学工具。本文将系统推导标量对向量、向量对向量、标量对矩阵的求导公式,并解析分子布局与分母布局的核心差异。场景:计算 ∂z∂x\frac{\partial \mathbf{z}}{\partial \mathbf{x}}∂x∂z​,其中 z=Wx+b\mathbf{z} = \mathbf{W}\mathbf{x} + \mathbf{b}z=Wx+b分子布局:∂z∂x=W(维度 m×n)\frac{\partial \mathbf{z}}{\partial \mat

2025-05-03 04:04:36 1210

原创 Traefik应用:配置容器多个网络时无法访问问题

Traefik容器所在的网络也是traefik-public,而配置容器服务使用了两个网络,一个是default,另一个是traefik-public,导致部署后一直无法访问容器服务。

2025-04-09 23:59:37 506

原创 vscode调试同时启动多个程序示例

当使用vscode调试,需要启动多个程序时,可以配置同时启动多个程序。本文提供了配置示例,可供参考。

2025-04-08 17:37:49 341

原创 Gunicorn+Eventlet无法收到SocketIO发送的消息

遇到的emit消息无法发送到客户端的问题,可能由多种配置或兼容性问题导致。1. 确保正确安装依赖库问题原因:未安装eventlet导致 Flask-SocketIO 回退到同步模式,无法处理WebSocket请求。# 安装 eventlet pip install eventlet2. 检查 Gunicorn 启动命令问题原因:未指定eventlet作为 worker class,或 worker 数量过多(WebSocket 通常需单线程)。

2025-03-25 16:25:04 737

原创 WSL2 Ubuntu安装Cuda 11.8

根据指示完成安装。PATH:将 CUDA 的可执行文件路径添加到系统路径。:将 CUDA 的库文件路径添加到动态链接库路径。nvcc --version # 应输出 11.8 nvidia-smi # 查看驱动和 GPU 状态 /usr/local/cuda-11.8/extras/demo_suite/deviceQuery # 运行测试程序。

2025-03-15 23:38:13 947

原创 WSL2 Ubuntu安装GCC不同版本

在 WSL2 的中安装GCC 7.1需要手动操作,因为该版本较旧且 Ubuntu 24.04 的默认仓库已不再提供。

2025-03-15 22:45:13 1346

原创 windows查看端口占用情况并终结该进程

netstat。

2024-10-07 21:10:13 1392

原创 alembic常用命令

Alembic 是一个用于数据库迁移的工具,通常与 SQLAlchemy 一起使用。

2024-09-21 07:05:26 762

原创 Docker镜像中的源替换为国内源

使用Dockerfile构建Containers,通常国内网络更新安装包会有网络问题。本文以python:3.11.7-slim-bookworm镜像为例,实现替换镜像源。

2024-09-04 22:01:40 3449

原创 docker创建数据库容器并映射存储数据

使用Docker创建Redis容器并使用Volume映射存储数据是一个常见的操作。创建一个目录用于存储Redis数据首先,创建一个目录用于存储Redis的数据。例如,我们创建一个名为的目录。创建并运行Redis容器使用Docker命令创建并运行Redis容器,并将本地目录映射到容器内的数据目录。-v /mydata/redis/data:/data \ # 如果是使用docker volume 则改为 -v redis_data:/data-d:以 detached 模式运行容器(后台运行)。

2024-08-22 16:29:27 854 1

原创 fastapi+react实现第三方登录功能示例

实现使用第三方登录功能(例如 Google、GitHub、WeChat 等)通常涉及前后端的协同工作。以下是一个基本的实现方案,使用 FastAPI 作为后端,React 作为前端。后端:使用 FastAPI 处理 OAuth2 回调,获取用户信息,并将其与现有用户关联或创建新用户。同时,提供动态获取登录 URL 的接口。前端:使用 React 处理登录按钮和回调逻辑,从后端动态获取登录 URL,并将获取的存储在中,并在用户访问个人资料页面时使用该获取用户信息。

2024-08-21 17:23:22 1240 1

原创 Numpy数组高级索引

NumPy 切片和索引Numpy高级索引。

2024-08-19 10:51:53 306

原创 相机标定和图像配准

相机的内参和外参。

2024-08-13 15:46:39 1070

原创 PyTorch实现NMS算法

NMS 算法源码实现Python实现NMS(非极大值抑制)对边界框进行过滤。目标检测算法(主流的有 RCNN 系、YOLO 系、SSD 等)在进行目标检测任务时,可能对同一目标有多次预测得到不同的检测框,非极大值抑制(NMS) 算法则可以确保对每个对象只得到一个检测,简单来说就是“消除冗余检测”。

2024-06-20 19:31:03 769

原创 torch.topk用法

在指定维度选取k个最大(最小)的值。

2024-06-19 18:36:06 478

原创 Git使用笔记

在Git中,如果只想推送一个特定的提交(commit),而不是整个分支,可以使用以下步骤:首先,找到你想要推送的提交的哈希值。通过运行git log命令来查看提交历史,并找到你想要推送的提交的哈希值。假设需要推送的提交的哈希值是这里的是你想要推送到的分支名称。如果你想推送到当前分支,你可以省略部分。请这种方法适用于推送一个单独的提交,而不是一个完整的分支。如果想要推送一个完整的分支,应该使用。

2024-05-25 18:00:59 604 1

原创 【创建git仓库并关联github账户】

将文件夹创建为git仓库并与GitHub上的对应git地址关联:打开终端或命令提示符,并导航到你想要创建git仓库的文件夹。git init添加你的文件到暂存区:git add .提交你的文件到本地仓库:在GitHub上创建一个新的仓库。你可以在GitHub网站上点击"New repository"按钮来完成这个步骤。将替换为你在GitHub上创建的仓库的URL。最后,将你的本地仓库推送到GitHub:这将把你的本地仓库推送到GitHub上的远程仓库。

2024-04-15 02:05:39 453

原创 functools.wraps用法

在Python中,是一个装饰器,它的主要作用是将被装饰函数的一些属性值(如__name__、__doc__等)赋值给装饰器中的函数。这个功能主要用于在使用装饰器时保持函数的元数据。

2024-03-22 15:19:52 705

空空如也

空空如也

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

TA关注的人

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