
深度学习
文章平均质量分 77
lqjun0827
一个有梦想的程序员......
展开
-
PyTorch实现NMS算法
NMS 算法源码实现Python实现NMS(非极大值抑制)对边界框进行过滤。目标检测算法(主流的有 RCNN 系、YOLO 系、SSD 等)在进行目标检测任务时,可能对同一目标有多次预测得到不同的检测框,非极大值抑制(NMS) 算法则可以确保对每个对象只得到一个检测,简单来说就是“消除冗余检测”。原创 2024-06-20 19:31:03 · 714 阅读 · 0 评论 -
torch.topk用法
在指定维度选取k个最大(最小)的值。原创 2024-06-19 18:36:06 · 465 阅读 · 0 评论 -
目标检测中AP50 AP75 APs APm APl 含义
在目标检测领域,我们经常会遇到一些评价指标,这些指标有助于衡量模型的性能。:平均精度,用于衡量目标检测模型的准确性。它考虑了不同置信度阈值下的精度,并计算出一个平均值。通常,我们使用不同的阈值(例如0.5、0.75等)来计算AP。:平均召回率,表示平均召回率。与AP类似,它也考虑了不同阈值下的召回率,并计算出平均值。AP50:在IoU(交并比)大于50%时的平均精度。AP75:在IoU大于75%时的平均精度。APs:小目标(面积小于32x32像素)的平均精度。APm。原创 2024-02-18 15:06:03 · 4534 阅读 · 0 评论 -
指数移动平均EMA
指数移动平均(Exponential Moving Average,简称EMA)是一种常用的平滑方法,通常用于时间序列数据的平滑处理。EMA 可以减小噪声的影响,使得数据更加平滑,并且能够自适应地调整权重,更好地反映时间序列的趋势。EMAtx0t0αxt1−αEMAt−1t0EMAtx0αxt1−αEMAt−1t0t0其中,xtx_txt表示时间ttt的观测值,EMAt。原创 2023-10-11 17:16:44 · 1279 阅读 · 0 评论 -
知识蒸馏(Knowledge Distillation)
知识蒸馏(Knowledge Distillation)是一种模型压缩技术,旨在将一个较大的、已经训练好的模型(通常被称为教师模型)的知识转移到一个较小的、目标模型(学生模型)中。这样,学生模型就可以获得与教师模型相当的泛化能力,同时减少了参数量和计算复杂性,使其更适合在移动设备或嵌入式设备上运行。知识蒸馏的核心思想是通过让学生模型学习教师模型的“软目标”,来获得更好的泛化能力。知识蒸馏的原理是,教师模型在大量数据上的训练使其具有了很好的泛化能力,而这种泛化能力可以通过对目标模型的训练来转移。原创 2023-09-03 20:29:29 · 426 阅读 · 0 评论 -
图像结构相似性指数(SSIM)
SSIM(结构相似性指数)是一种用于衡量两个图像之间结构相似性的指标。它是一种全参考图像质量评价指标,用于衡量两个图像在亮度、对比度和结构方面的相似程度。SSIM 被广泛应用于图像处理领域,尤其在图像压缩、图像恢复、图像质量评价等方面具有重要作用。与传统的 PSNR(峰值信噪比)相比,SSIM 考虑了人眼对图像感知的特性,更能反映人眼感知到的图像质量。SSIM 的计算基于以下三个方面的信息:亮度相似性(Luminance Similarity):衡量两个图像的亮度是否相似。原创 2023-08-29 19:25:16 · 2491 阅读 · 0 评论 -
Sinkhorn算法
Sinkhorn算法是一种用于解决最优传输问题的迭代算法。最优传输问题是指在给定两个概率分布μ\muμ和ν\nuν的情况下,找到一个最优的转移方案,使得从μ\muμ到ν\nuν的转移成本最小。Sinkhorn算法通过迭代的方式逐步优化转移方案,以达到最优传输的目标。Sinkhorn算法的核心思想是通过交替地更新行和列的缩放因子,来逐步逼近最优转移方案。具体来说,算法的步骤如下:初始化转移方案:首先,我们需要初始化一个转移方案P\mathbf{P}P,其中P\mathbf{P}原创 2023-08-27 11:03:22 · 4387 阅读 · 0 评论 -
模仿学习(Imitation Learning)
Imitation Learning(模仿学习)是一种机器学习方法,通过观察专家(或者已知的行为数据)的行为来学习一个策略,以在类似任务中模仿专家的行为。它的目标是让机器学习从专家的经验中获取知识,从而在未来的任务中表现出类似的行为。专家策略和学习算法。专家策略:专家策略是已经经过训练或者是领域专家提供的一个策略,用来指导模型的学习。专家策略可以是人类专家在该任务上的行为数据,或者是通过其他强化学习算法等方式获得的一组良好的策略。学习算法:学习算法用来从专家的行为数据中学习一个策略模型。原创 2023-08-26 15:25:16 · 2413 阅读 · 0 评论 -
强化学习系列--演员-评论员算法(Actor-Critic Algorithm)
演员-评论员算法(Actor-Critic Algorithm)是一种结合了值函数估计和策略梯度方法的强化学习算法。该算法同时训练一个策略网络(演员)和一个值函数网络(评论员)。演员根据当前策略选择动作,评论员根据当前状态估计值函数,并作为基准线来计算策略梯度的更新。初始化策略网络的参数θ\thetaθ和值函数网络的参数ω\omegaω。对于每个回合:初始化状态sss。根据策略网络,选择动作aaa。执行动作aaa,观察奖励rrr和下一个状态s′s's′。原创 2023-08-25 22:39:46 · 802 阅读 · 1 评论 -
强化学习系列--带基准线的REINFORCE算法
在强化学习中,带基准线的REINFORCE算法是一种用于求解策略梯度的方法。REINFORCE算法(也称为蒙特卡洛策略梯度算法)可以用于训练能够从环境中学习的策略。带基准线的REINFORCE算法是对经典REINFORCE算法的改进,通过引入一个基准线来减小方差,加速学习的过程。REINFORCE算法通过采样轨迹并利用蒙特卡洛方法来估计策略梯度。该算法的目标是最大化期望回报,即最大化累积奖励的期望值。原创 2023-08-25 22:35:14 · 1125 阅读 · 0 评论 -
强化学习系列--深度Q网络(DQN算法)
深度Q网络(Deep Q-Network,DQN)是一种强化学习算法,通过结合深度神经网络和Q-learning算法,用于解决具有高维状态空间的强化学习问题。DQN是由DeepMind提出的,并在解决Atari游戏中取得了显著的成功。在传统的Q-learning算法中,我们使用一个Q表来存储每个状态动作对的动作值函数。然而,当状态空间非常大时,使用Q表变得非常困难,甚至不可行。DQN通过使用一个深度神经网络来逼近动作值函数,解决了这一问题。DQN的核心思想是。原创 2023-08-25 18:40:34 · 883 阅读 · 0 评论 -
强化学习系列--时序差分学习方法(SARSA算法)
SARSA(State-Action-Reward-State-Action)是一种强化学习算法,用于解决马尔可夫决策过程(MDP)中的问题。SARSA算法属于基于值的强化学习算法,用于学习最优策略。在SARSA算法中,智能体通过与环境进行交互来学习。它基于当前状态、选择的动作、获得的奖励、下一个状态和下一个动作来更新价值函数(或者动作值函数),并根据更新后的价值函数选择下一个动作。原创 2023-08-25 17:05:20 · 1099 阅读 · 0 评论 -
强化学习系列--值迭代算法
值迭代算法使用贝尔曼最优方程来更新状态值函数。贝尔曼最优方程表示最优状态值函数的递归关系,一个状态的最优值等于在该状态下采取最优动作后获得的即时奖励加上下一个状态的最优值的折现值。对于一个状态 s,其最优状态值函数 V(s)* 和最优状态-动作值函数 Q(s, a)* 的更新公式如下:其中,P(s’|s, a) 是在状态 s 执行动作 a 后转移到状态 s’ 的概率,R(s, a) 是在状态 s 执行动作 a 后的即时奖励,γ 是折扣因子,用于权衡当前奖励和未来奖励的重要性。原创 2023-08-25 15:01:59 · 593 阅读 · 0 评论 -
torch.where用法
是 PyTorch 中的一个函数,用于根据给定条件从两个张量中选择元素并返回一个新的张量。condition: 一个布尔型的张量,用于指定选择元素的条件。当条件为 True 时,选择x中对应位置的元素,否则选择y中对应位置的元素。x: 一个张量,表示条件为 True 时要选择的元素。y: 一个张量,表示条件为 False 时要选择的元素。返回一个新的张量,根据条件选择x或y中的元素。原创 2023-08-18 11:37:17 · 531 阅读 · 0 评论 -
计算向量或矩阵的范数
函数用于计算向量或矩阵的范数。具体计算公式取决于ord参数的取值。以下是函数中常见的ordord=None或默认值:计算Frobenius范数(矩阵的二范数)。对于向量,Frobenius范数等同于Euclidean范数(L2范数)。。ord=1:计算L1范数。也称为曼哈顿范数(Manhattan norm)或绝对值范数。。。ord=2:计算L2范数。也称为欧几里德范数(Euclidean norm)或向量的长度。。对于矩阵A,L2范数定义为A的奇异值(Singular Values)的最大值。原创 2023-08-13 12:05:39 · 377 阅读 · 0 评论 -
LSTM原理及Pytorch使用
LSTM(Long Short-Term Memory)是一种循环神经网络(RNN)的变体,用于处理序列数据。LSTM 的设计目的是解决传统 RNN 面临的短期记忆和梯度消失的问题。LSTM 通过引入门控机制来有效地捕捉和传递长期依赖关系。LSTM 的核心思想是引入了一个称为细胞状态(cell state)的中间变量,用于保存和传递信息。细胞状态可以选择性地更新和忘记信息,从而在处理序列数据时更好地控制信息的流动。输入门遗忘门输出门(output gate)和细胞状态。原创 2023-08-09 03:36:33 · 226 阅读 · 0 评论 -
nn.InstanceNorm2d和nn.BatchNorm2d比较
和都是 PyTorch 中常用的归一化层,用于提高神经网络的训练稳定性和泛化能力。原创 2023-08-06 15:02:51 · 4021 阅读 · 0 评论 -
变分自编码器——pytorch实现VAE
变分自编码器(Variational Autoencoder,VAE)是一种生成模型,结合了自编码器和变分推断的思想。它可以用于学习数据的潜在表示,并用于生成新的样本。VAE的目标是学习一个潜在空间(latent space),使得原始数据可以通过从该潜在空间中采样并解码重构出来。编码器(encoder)和解码器(decoder)。编码器将输入数据映射到潜在空间中的一组潜在变量(latent variables)。编码器将输入数据xxx映射到潜在变量zzz的概率分布qz∣x。原创 2023-08-04 21:59:27 · 3511 阅读 · 1 评论 -
ROI Align原理介绍
是PyTorch的一个操作函数,用于在给定的RoIs(感兴趣区域)上执行空间变换网络。该操作函数可以被用于目标检测和物体识别等计算机视觉任务中,通常在RoI池化之前被执行。RoI Align(Region of Interest Align)是RoI池化的一种改进,它可以更加精确地对齐RoI中的特征,避免了RoI池化过程中的信息损失。具体来说,RoI Align操作首先将RoI区域划分为若干个小的网格,然后在每个网格内执行双线性插值,最终得到固定大小的特征图。原创 2023-07-14 15:09:26 · 3716 阅读 · 0 评论 -
多头注意力机制
多头自注意力机制是自注意力机制(Self-Attention)的一种扩展形式,它通过将输入数据分为多个头(Head),并对每个头进行自注意力计算,最后将多个头的结果拼接起来,得到最终的输出。使用多头自注意力可以使得模型在处理长序列数据时更加有效。原创 2023-06-17 18:58:13 · 3704 阅读 · 0 评论