自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 PyTorch实现NMS算法

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

2024-06-20 19:31:03 445

原创 torch.topk用法

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

2024-06-19 18:36:06 309

原创 Git使用笔记

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

2024-05-25 18:00:59 531 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 334

原创 functools.wraps用法

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

2024-03-22 15:19:52 560

原创 functools.partial用法

partial 是 Python 的 functools 模块中的一个非常有用的函数,它用于固定函数的部分参数,并返回一个新的函数对象。这在某些场景下非常有用,尤其是当你需要多次调用一个函数并且其中一些参数保持不变时。

2024-03-22 15:06:26 315

原创 Python中的泛型:TypeVar

在Python的类型提示(type hints)中,TypeVar是用于定义类型变量的工具。类型变量在泛型编程中非常有用,它们允许你定义灵活的函数、类或方法,这些函数、类或方法可以在多种类型上操作,而不仅仅是特定的类型。TypeVar 允许你定义一个变量,该变量可以代表任何类型或一组类型。然后,你可以使用这个类型变量来定义函数或类的参数和返回类型。

2024-03-22 14:14:15 1379

原创 Delaunay三角剖分与Voronoi图生成

Delaunay三角剖分Delaunay三角剖分是一种用于二维和三维空间的特殊类型的三角剖分。给定一组在平面上的点,Delaunay三角剖分将这些点连接成三角形,使得在所有可能的三角形中,这些三角形的最小角最大,外接圆最小。创建一个超级三角形,包含所有的点。依次添加点到三角剖分中,对于每个添加的点:找到包含此点的三角形。删除此三角形,并创建三个新的三角形,新的三角形由旧的三角形的每条边和新添加的点组成。修复Delaunay条件。新加入的点可能会导致Delaunay条件不成立。

2024-02-19 13:05:33 1045

原创 目标检测中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 2373

原创 仿射变换--getAffineTransform和wrapAffine

wrapAffine。

2023-12-29 20:08:01 569

原创 两向量叉乘值为对应平行四边形面积--公式推导

两向量叉乘值为对应平行四边形面积--公式推导介绍介绍

2023-12-29 18:39:43 1169

原创 np.unravel_index用法

是numpy库中的一个函数,它将一个平面索引或平面索引数组转换为一个坐标数组。

2023-12-29 00:01:39 879

原创 SciPy 库中maximum_filter配合generate_binary_structure获取局部极大值

是 SciPy 库中的一个函数,它用于计算图像的最大值滤波。这个函数在图像处理中经常被用到,特别是在特征提取和边缘检测等任务中。input: 输入的 ndarray。将应用滤波器的输入图像或数据。size: 标量或元组,可选。定义滤波器窗口的大小。如果是一个标量,那么这将是每个维度的大小。如果是一个元组,那么这将指定每个维度的大小。footprint: 布尔数组,可选。定义滤波器的形状,如果提供了 footprint , size 参数将被忽略。output: ndarray ,可选。

2023-12-28 23:50:04 760

原创 functools.reduce函数用法

functools模块中的reduce函数是一个非常有用的函数,它可以将一个接受两个参数的函数以累积的方式从左到右应用到一个序列的元素,从而将序列缩减为一个单一的输出。reducefunction:一个接受两个参数的函数。sequence:一个序列对象。:可选的初始参数¹。reduce函数的工作原理是这样的:首先,如果提供了初始参数,reduce函数会将初始参数和序列的第一个元素作为函数的两个参数进行运算。然后,将得到的结果作为下一次函数运算的第一个参数,序列的下一个元素作为函数的第二个参数进行运算。

2023-12-28 04:46:08 449

原创 Python模块相对导入

在Python中,..和...是相对导入的一部分,用于表示当前模块的上层或上上层目录。

2023-12-11 17:16:49 439

原创 torch.tensor.gather用法

是PyTorch中的一个函数,它根据索引从输入张量中收集值。

2023-12-09 00:46:06 551

原创 DCNv2安装适配pytorch各个版本

注意切换分支master分支支持pytorch1.11+(测试pytorch2.0.1+cuda118, 成功)pytorch1.6分支支持pytroch之前版本(测试pytorch1.10.0+cuda111, 失败)

2023-12-08 15:09:16 2319 3

原创 PET(Point-Query Quadtree for Crowd Counting, Localization, and More)

论文:Point-Query Quadtree for Crowd Counting, Localization, and More。

2023-12-05 12:40:26 1120 4

原创 Vue路由切换时组件控制内部滚动条位置

在 Vue Router 中,可以通过设置来控制路由切换时的滚动行为,可以在中根据路由的不同情况来自定义滚动行为,例如在切换路由时保持滚动位置不变。如果要在切换组件时,实现组件内部的其他组件的滚动条位置不变,可以在组件中使用ref来获取该组件的 DOM 元素,并在activated钩子函数中设置滚动位置。

2023-11-22 15:51:14 353

原创 指数移动平均EMA

指数移动平均(Exponential Moving Average,简称EMA)是一种常用的平滑方法,通常用于时间序列数据的平滑处理。EMA 可以减小噪声的影响,使得数据更加平滑,并且能够自适应地调整权重,更好地反映时间序列的趋势。EMAtx0t0αxt1−αEMAt−1t0EMAt​x0​αxt​1−αEMAt−1​​t0t0​其中,xtx_txt​表示时间ttt的观测值,EMAt。

2023-10-11 17:16:44 480

原创 Linux基础知识笔记

记录linux基础知识,持续更新中…

2023-10-10 15:13:25 116

原创 知识蒸馏(Knowledge Distillation)

知识蒸馏(Knowledge Distillation)是一种模型压缩技术,旨在将一个较大的、已经训练好的模型(通常被称为教师模型)的知识转移到一个较小的、目标模型(学生模型)中。这样,学生模型就可以获得与教师模型相当的泛化能力,同时减少了参数量和计算复杂性,使其更适合在移动设备或嵌入式设备上运行。知识蒸馏的核心思想是通过让学生模型学习教师模型的“软目标”,来获得更好的泛化能力。知识蒸馏的原理是,教师模型在大量数据上的训练使其具有了很好的泛化能力,而这种泛化能力可以通过对目标模型的训练来转移。

2023-09-03 20:29:29 314

原创 图像结构相似性指数(SSIM)

SSIM(结构相似性指数)是一种用于衡量两个图像之间结构相似性的指标。它是一种全参考图像质量评价指标,用于衡量两个图像在亮度、对比度和结构方面的相似程度。SSIM 被广泛应用于图像处理领域,尤其在图像压缩、图像恢复、图像质量评价等方面具有重要作用。与传统的 PSNR(峰值信噪比)相比,SSIM 考虑了人眼对图像感知的特性,更能反映人眼感知到的图像质量。SSIM 的计算基于以下三个方面的信息:亮度相似性(Luminance Similarity):衡量两个图像的亮度是否相似。

2023-08-29 19:25:16 1742

原创 Sinkhorn算法

Sinkhorn算法是一种用于解决最优传输问题的迭代算法。最优传输问题是指在给定两个概率分布μ\muμ和ν\nuν的情况下,找到一个最优的转移方案,使得从μ\muμ到ν\nuν的转移成本最小。Sinkhorn算法通过迭代的方式逐步优化转移方案,以达到最优传输的目标。Sinkhorn算法的核心思想是通过交替地更新行和列的缩放因子,来逐步逼近最优转移方案。具体来说,算法的步骤如下:初始化转移方案:首先,我们需要初始化一个转移方案P\mathbf{P}P,其中P\mathbf{P}

2023-08-27 11:03:22 2113

原创 模仿学习(Imitation Learning)

Imitation Learning(模仿学习)是一种机器学习方法,通过观察专家(或者已知的行为数据)的行为来学习一个策略,以在类似任务中模仿专家的行为。它的目标是让机器学习从专家的经验中获取知识,从而在未来的任务中表现出类似的行为。专家策略和学习算法。专家策略:专家策略是已经经过训练或者是领域专家提供的一个策略,用来指导模型的学习。专家策略可以是人类专家在该任务上的行为数据,或者是通过其他强化学习算法等方式获得的一组良好的策略。学习算法:学习算法用来从专家的行为数据中学习一个策略模型。

2023-08-26 15:25:16 924

原创 强化学习系列--演员-评论员算法(Actor-Critic Algorithm)

演员-评论员算法(Actor-Critic Algorithm)是一种结合了值函数估计和策略梯度方法的强化学习算法。该算法同时训练一个策略网络(演员)和一个值函数网络(评论员)。演员根据当前策略选择动作,评论员根据当前状态估计值函数,并作为基准线来计算策略梯度的更新。初始化策略网络的参数θ\thetaθ和值函数网络的参数ω\omegaω。对于每个回合:初始化状态sss。根据策略网络,选择动作aaa。执行动作aaa,观察奖励rrr和下一个状态s′s's′。

2023-08-25 22:39:46 516 1

原创 强化学习系列--带基准线的REINFORCE算法

在强化学习中,带基准线的REINFORCE算法是一种用于求解策略梯度的方法。REINFORCE算法(也称为蒙特卡洛策略梯度算法)可以用于训练能够从环境中学习的策略。带基准线的REINFORCE算法是对经典REINFORCE算法的改进,通过引入一个基准线来减小方差,加速学习的过程。REINFORCE算法通过采样轨迹并利用蒙特卡洛方法来估计策略梯度。该算法的目标是最大化期望回报,即最大化累积奖励的期望值。

2023-08-25 22:35:14 659

原创 强化学习系列--深度Q网络(DQN算法)

深度Q网络(Deep Q-Network,DQN)是一种强化学习算法,通过结合深度神经网络和Q-learning算法,用于解决具有高维状态空间的强化学习问题。DQN是由DeepMind提出的,并在解决Atari游戏中取得了显著的成功。在传统的Q-learning算法中,我们使用一个Q表来存储每个状态动作对的动作值函数。然而,当状态空间非常大时,使用Q表变得非常困难,甚至不可行。DQN通过使用一个深度神经网络来逼近动作值函数,解决了这一问题。DQN的核心思想是。

2023-08-25 18:40:34 561

原创 强化学习系列--时序差分学习方法(SARSA算法)

SARSA(State-Action-Reward-State-Action)是一种强化学习算法,用于解决马尔可夫决策过程(MDP)中的问题。SARSA算法属于基于值的强化学习算法,用于学习最优策略。在SARSA算法中,智能体通过与环境进行交互来学习。它基于当前状态、选择的动作、获得的奖励、下一个状态和下一个动作来更新价值函数(或者动作值函数),并根据更新后的价值函数选择下一个动作。

2023-08-25 17:05:20 924

原创 强化学习系列--值迭代算法

值迭代算法使用贝尔曼最优方程来更新状态值函数。贝尔曼最优方程表示最优状态值函数的递归关系,一个状态的最优值等于在该状态下采取最优动作后获得的即时奖励加上下一个状态的最优值的折现值。对于一个状态 s,其最优状态值函数 V(s)* 和最优状态-动作值函数 Q(s, a)* 的更新公式如下:其中,P(s’|s, a) 是在状态 s 执行动作 a 后转移到状态 s’ 的概率,R(s, a) 是在状态 s 执行动作 a 后的即时奖励,γ 是折扣因子,用于权衡当前奖励和未来奖励的重要性。

2023-08-25 15:01:59 365

原创 torch.where用法

是 PyTorch 中的一个函数,用于根据给定条件从两个张量中选择元素并返回一个新的张量。condition: 一个布尔型的张量,用于指定选择元素的条件。当条件为 True 时,选择x中对应位置的元素,否则选择y中对应位置的元素。x: 一个张量,表示条件为 True 时要选择的元素。y: 一个张量,表示条件为 False 时要选择的元素。返回一个新的张量,根据条件选择x或y中的元素。

2023-08-18 11:37:17 452

原创 计算向量或矩阵的范数

函数用于计算向量或矩阵的范数。具体计算公式取决于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 231

原创 torch.meshgrid用法

是 PyTorch 中的一个函数,用于生成一个二维或三维网格矩阵。该函数接受一系列一维张量作为输入,然后返回一个包含所有输入张量的网格矩阵。函数通常用于生成坐标网格,以便进行网格采样、插值等操作。

2023-08-11 22:32:31 384

原创 LSTM原理及Pytorch使用

LSTM(Long Short-Term Memory)是一种循环神经网络(RNN)的变体,用于处理序列数据。LSTM 的设计目的是解决传统 RNN 面临的短期记忆和梯度消失的问题。LSTM 通过引入门控机制来有效地捕捉和传递长期依赖关系。LSTM 的核心思想是引入了一个称为细胞状态(cell state)的中间变量,用于保存和传递信息。细胞状态可以选择性地更新和忘记信息,从而在处理序列数据时更好地控制信息的流动。输入门遗忘门输出门(output gate)和细胞状态。

2023-08-09 03:36:33 162

原创 nn.InstanceNorm2d和nn.BatchNorm2d比较

和都是 PyTorch 中常用的归一化层,用于提高神经网络的训练稳定性和泛化能力。

2023-08-06 15:02:51 1772

原创 解决WSL2下载速度慢问题

解决WSL2下载速度慢问题介绍查看状态设置Large Send Offload Version介绍查看状态Get-NetAdapterBinding -IncludeHidden -Name "vEthernet (WSL)" # Check if ipv6 was disabledGet-NetAdapterAdvancedProperty -IncludeHidden -Name "vEthernet (WSL)" # Check if large packet was disabled设置

2023-08-06 05:53:02 3477 2

原创 变分自编码器——pytorch实现VAE

变分自编码器(Variational Autoencoder,VAE)是一种生成模型,结合了自编码器和变分推断的思想。它可以用于学习数据的潜在表示,并用于生成新的样本。VAE的目标是学习一个潜在空间(latent space),使得原始数据可以通过从该潜在空间中采样并解码重构出来。编码器(encoder)和解码器(decoder)。编码器将输入数据映射到潜在空间中的一组潜在变量(latent variables)。编码器将输入数据xxx映射到潜在变量zzz的概率分布qz∣x。

2023-08-04 21:59:27 2249

原创 ROI Align原理介绍

是PyTorch的一个操作函数,用于在给定的RoIs(感兴趣区域)上执行空间变换网络。该操作函数可以被用于目标检测和物体识别等计算机视觉任务中,通常在RoI池化之前被执行。RoI Align(Region of Interest Align)是RoI池化的一种改进,它可以更加精确地对齐RoI中的特征,避免了RoI池化过程中的信息损失。具体来说,RoI Align操作首先将RoI区域划分为若干个小的网格,然后在每个网格内执行双线性插值,最终得到固定大小的特征图。

2023-07-14 15:09:26 2046

原创 CentOS安装Python3.9

flask部署环境,最好选择python3.9,因为eventlet和gunicorn目前最高支持python3.9。使用python3.10会报错。

2023-06-29 21:22:52 261

原创 Vue打包部署后,图片url域名错误,导致无法显示

当在 Vue 项目中打包之后,从服务器获取图片 URL 时,如果 URL 不包含域名和端口号,可能是因为在 Vue 项目中使用了相对路径引用图片,导致最终生成的 URL 缺少域名和端口号。在 Vue 项目中使用绝对路径引用图片可以在 Vue 项目中使用绝对路径引用图片,例如:这样,在打包后,获取图片 URL 时,就会包含完整的域名和端口号,可以正常显示图片。在 Nginx 配置文件中添加反向代理设置。

2023-06-29 14:33:13 1228

空空如也

空空如也

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

TA关注的人

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