自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(64)
  • 资源 (44)
  • 收藏
  • 关注

原创 DeformableAttention的原理解读和源码实现

多尺度特征图尺寸记录:spatial_shapes:([[180, 180],[ 90, 90],[ 45, 45],[ 23, 23]])sampling_locations原本为采样点位置,范围为[0,1),为了适应F.grid_sample采样函数的用法,调整为[-1,1)分布,意思是,900个query在特征图(32,level_h,level_w)中各采样4个点,采样结果为900个对应的4个通道为32的像素特征.reshape为正常图像torch.Size([b*8,32,180,180]

2024-03-17 15:06:50 1040

原创 Conditional-DETR的原理和源码解读

在cross_att时候,内容信息和位置信息解偶qcontent​qpos​∗kcontent​kpos​T改成catqc​qp​∗catkc​kp​T首先,把特征侧和目标侧分为内容信息(content)和位置(content)把query分为q_content和q_pos,更好理解query.对应于我之前说的query和query_pos.qc​∗kcT​qp​∗kpT​。

2024-04-08 12:16:00 928 1

原创 C++ unordered_map的用法

在这个例子中,我们定义了一个 Person 结构体,并为它提供了一个哈希函数。这个哈希函数结合了 name 和 age 成员的哈希值来生成 Person 的唯一哈希值。然后,我们可以使用这个自定义类型作为 unordered_map 的键。unordered_map 在 C++ 中是一个非常有用的容器,它允许你存储键值对,并且提供了基于键的快速查找。

2024-04-06 17:15:48 265

原创 Note-模型的特征学习过程分析

将数据的特征分为,有用特征和无用特征(噪声).有用特征与任务有关,无用特征与任务无关.模型的学习过程就是增大有用特征的权重并减少无用特征的权重的过程.ya0​x0​a1​x1​loss0.5∗ylabel​−y2dloss​dy​y−ylabel​dloss​dadloss​dy​∗dy​da​y−ylabel​∗xanext​aηylabe。

2024-04-06 14:21:32 1202

原创 目标检测中的mAP计算原理和源码实现

在目标检测任务中,mAP(mean Average Precision,平均精度均值)是一个非常重要的评价指标,用于衡量模型在多个类别上的平均性能。它综合考虑了模型在不同召回率下的精确率,能够全面反映模型在检测任务中的表现。综合性评估:mAP能够综合考虑模型在不同召回率下的精确率,避免了单一指标(如准确率或召回率)可能带来的片面性。多类别比较:对于多类别的目标检测任务,mAP可以计算每个类别的AP,然后取平均值得到全局的mAP,从而方便比较模型在不同类别上的性能。

2024-03-24 18:58:19 978

原创 DETR3d原理和源码解读

不同于LSS、BEVDepth的bottom-up式,先进行深度估计,设计2D转3D的模块。DETR3D是一种3D转2D的top-down思路。先预设一系列预测框的查询向量object querys,利用它们生成3D reference point,将这些3D reference point 利用相机参数转换矩阵,投影回2D图像坐标,并根据他们在图像的位置去找到对应的图像特征,用图像特征和object querys做cross-attention,不断refine object querys。

2024-03-04 10:36:25 904

原创 Vision Transfomer系列第二节---Tricks测试

这种重叠可以提高图像块之间的信息交互,可能会影响模型的性能和效果。实验可知,适当的head_num可以提高模型的拟合能力,但是不是越多越好,需要根据任务的复杂情况和embeding维度去调整.本处实验其实效果不明显,可能是任务过于简单的原因.卷积核大小是20,stride取16,padding取2,输入为224x224时,输出也为14x14,但是相邻图像块之间有2圈像素的交集.block作为transfomer类模型的核心组件,block的重复次数是一个超参数,直接影响到模型的深度和表达能力.

2024-02-20 14:19:00 1129 1

原创 Vision Transfomer系列第二节---复现过程的Bugs记录

1.transfomer模型的训练收敛速度确实很慢,一个分类就需要训练好很多个epoch (花分类45epochs左右)2.所以说看懂原理和代码还是远远不够的,复现起来还是有很多细节需要注意的,确实是纸上学来终觉浅,绝知此事要躬行。

2024-02-06 00:09:57 853

原创 Vision Transfomer系列第一节---从0到1的源码实现

vit是视觉transfomer最经典的模型,复现一次代码十分有必要,中间会产生很多思考和问题.后面章节将会更有价值,我将会:1.利用本次的代码进行很多思考和trick的验证2.总结本次代码的BUG们,及其产生的原理和解决方法如需获取全套代码请参考。

2024-02-04 20:51:56 946

原创 Note-归一化层和前向源码

深度学习中常见的归一化层包括批量归一化(Batch Normalization)、层归一化(Layer Normalization)、实例归一化(Instance Normalization)、组归一化(Group Normalization)。批量归一化(Batch Normalization):BN专注于标准化任何特定层的输入(即来自先前层的激活)。标准化输入意味着网络中任何层的输入应具有大约为零的均值和单位方差。

2024-01-29 22:57:44 909

原创 Note-模型复杂度分析和mmlab实验测试

(floating-point operations per second)的缩写。“每秒浮点运算次数”,“每秒峰值速度”是“每秒所执行的浮点运算次数”。它常被用来估算电脑的执行效能,尤其是在使用到大量浮点运算的科学计算领域中。正因为FLOPS字尾的那个S,代表秒,而不是复数,所以不能省略掉。:乘加次数,计算量对应时间复杂度flopscov​h∗w∗k2∗cin​∗cout​flopsdownsample​0flop。

2024-01-28 21:45:37 856

原创 Note-python的深浅拷贝

在Python中,对象的拷贝可以是浅拷贝(shallow copy)或深拷贝(deep copy),这两者之间的主要区别在于它们处理复合对象(如列表、字典或其他包含其他对象的对象)的方式不同。浅拷贝会创建一个新对象,但这个新对象包含的是对原始对象中元素的引用,而不是元素本身的拷贝。因此,如果原始对象中的元素是可变的,并且在新对象或原始对象中修改了这些元素,那么这些更改将反映在另一个对象中,因为它们引用的是相同的对象。

2024-01-27 22:25:13 394

原创 iou的cpu和gpu源码实现

IoU(Intersection over Union)是一种测量在特定数据集中检测相应物体准确度的一个标准,通常用于目标检测中预测框(bounding box)之间准确度的一个度量(预测框和实际目标框)。IoU计算的是“预测的边框”和“真实的边框”的交叠率,即它们的交集和并集的比值。最理想情况是完全重叠,即比值为1。IoU的计算方法如下:计算两个框的交集面积,即两个框的左、上、右、下四个点的交集。计算两个框的并集面积,即两个框的左、上、右、下四个点的并集。

2024-01-23 23:44:14 529

原创 源码实现简介

总的来说,深度学习在自动驾驶感知中发挥着重要的作用,为自动驾驶技术的发展带来了巨大的潜力。相信在未来的研究和实践中,这些问题将得到有效的解决,推动自动驾驶技术的进一步发展和应用。其次,深度学习具有很强的鲁棒性,能够处理各种复杂的驾驶环境,如不同的光照条件、遮挡、动态目标等。现成的库和框架固然强大且方便使用,但很多时候,如果我们不清楚其背后的工作机制,往往会限制我们的技术视野和创新能力。无论是为了提高自己的技术能力、增强对技术的深入理解,还是为了在工作中提高核心竞争力,自己动手实现都是一个极好的途径。

2024-01-23 23:41:32 475

原创 transfomer中正余弦位置编码的源码实现

Transformer模型抛弃了RNN、CNN作为序列学习的基本模型。循环神经网络本身就是一种顺序结构,天生就包含了词在序列中的位置信息。当抛弃循环神经网络结构,完全采用Attention取而代之,这些词序信息就会丢失,模型就没有办法知道每个词在句子中的相对和绝对的位置信息。因此,有必要把词序信号加到词向量上帮助模型学习这些信息,位置编码(Positional Encoding)就是用来解决这种问题的方法。关于位置编码更多介绍参考的。

2024-01-17 10:00:00 471

原创 Note-transfomer的位置编码

在transformer的encoder和decoder的输入层中,使用了Positional Encoding,使得最终的输入满足:这里,input_embedding的shape为[n,b,embed_dim],positional_encoding和input_embedding形状一致.

2024-01-16 23:57:30 964

原创 transfomer中Decoder和Encoder的base_layer的源码实现

Encoder和Decoder共同组成transfomer,分别对应图中左右浅绿色框内的部分.Encoder:目的:将输入的特征图转换为一系列自注意力的输出。工作原理:首先,通过卷积神经网络(CNN)提取输入图像的特征。然后,这些特征通过一系列自注意力的变换层进行处理,每个变换层都会将特征映射进行编码并产生一个新的特征映射。这个过程旨在捕捉图像中的空间和通道依赖关系。作用:通过处理输入特征,提取图像特征并进行自注意力操作,为后续的目标检测任务提供必要的特征信息。

2024-01-16 00:30:04 1138 1

原创 transfomer中Multi-Head Attention的源码实现

Multi-Head Attention是一种注意力机制,是transfomer的核心机制.Multi-Head Attention的原理是通过将模型分为多个头,形成多个子空间,让模型关注不同方面的信息。每个头独立进行注意力运算,得到一个注意力权重矩阵。输出的结果再通过线性变换和拼接操作组合在一起。这样可以提高模型的表示能力和泛化性能。在Multi-Head Attention中,每个头的权重矩阵是随机初始化生成的,并在训练过程中通过梯度下降等优化算法进行更新。

2024-01-14 11:34:14 604 1

原创 博客知识库

第i个元素就是第i个通道上全部batch张输出特征图所有元素的平均值和方差,所shape就是特征图shapeweight和bias分别对应 γ,β.有bn时cov可以不用bia在训练过程中,mean和std是统计得到的,然后在迭代过程中动态累加,m*si-1+(1-m)*si,m为历史保留比,对应pytorch的momenta参数,test过程中使用训练过程的统计结果。

2024-01-08 23:50:29 679

原创 方法-PC端远程调试分布式训练

一些简单的代码我们使用Pycharm本地调试就能运行成功,但在诸如使用GPU进行分布式训练和推断等场景中,由于我们本地的电脑没有GPU或者没有多块GPU而无法运行这些程序。如果此时我们手头恰好有自己/公司/学校的GPU服务器资源,我们就可以使用这些GPU服务器进行远程调试/运行,无需本地运行代码。

2023-12-13 14:58:39 420

原创 问题:batchnormal训练单个batch_size就会报错吗

Batch Normalization在每个batch_size为1的情况下是可以正常工作的。标准的Batch Normalization通常使用较大的batch_size,这样可以更好地估计总体分布,加速收敛,并减少内部协变量偏移的问题。然而,当batch_size为1时,Batch Normalization的效果可能会降低,因为它失去了批处理的优点,比如能够更好地估计网络输入的总体分布。在标准的神经网络训练中,每一层的输入分布都会随着训练的进行而发生变化,这使得网络训练变得困难。

2023-12-08 17:29:49 510

原创 BUG-Expected more than 1 value per channel when training, got input size torch.Size([1, xxx, 1, 1])

当size=Size([1, xxx, 1, 1]), size_prods是size[0] * size[2] * size[3]当size=Size([1, xxx]), size_prods是size[0]1.优先建议,调整输入尺寸或者网络结构使得 size[2]和size[3]不为1。上面的size是Size([1, xxx, 1, 1])2.方法1如果不能用,则batch_size改成大于1。就可以,这就是为什么网上通用解释都是这个.因此,为了避免这个错误,我们把。

2023-12-08 17:27:50 516

原创 方法-TensorBoard如何在PC端远程可视化服务器的训练结果

TensorBoard 是 TensorFlow 的可视化工具,可以帮助用户实时监控深度神经网络的训练过程,基于PyTorch的训练过程也可以可视化。假设我在服务器上进行模型的训练,并记录下summary,此时需要进行可视化相关的曲线或者plot图.如果服务器没有可视化外设,那么就只能在本机进行远程可视化了,具体方法如下.

2023-12-07 20:27:21 553

原创 技巧-GPU显存和利用率如何提高和batch_size/num_works等参数的实验测试

在PyTorch中使用多个GPU进行模型训练时,各个参数和指标之间存在一定的关系。GPU显存是限制模型训练规模的关键因素。当使用多个GPU进行训练时,每个GPU都会分配一部分显存用于存储中间变量、梯度、权重等。GPU显存的使用量取决于模型的复杂度、批量大小(batch size)以及数据类型等因素。举例:假设我们使用两个GPU(GPU 0和GPU 1)进行训练,每个GPU的显存为12GB。若批量大小为32个样本,模型复杂度为中等,则每个GPU可能需要大约4GB的显存。

2023-11-30 20:02:29 3504 4

原创 方法-进程已经杀死但是显存还未释放怎么办(ubuntu)

训练程序ctrl+c后,依然显示显存占用。##查看后台的训练进程。

2023-11-30 13:51:51 886

原创 技巧-PyCharm中Debug和Run对训练的影响和实验测试

在训练深度学习模型时,使用PyCharm的Debug模式和Run模式对训练模型的耗时会有一些区别。Debug模式:Debug模式在训练模型时,会对每一行代码进行监视,这使得CPU的利用率相对较高。由于需要逐步执行、断点调试、查看变量值等操作,Debug模式会使得训练过程更加耗时。然而,这种模式对于调试模型和查找错误非常有帮助。Run模式:Run模式在训练模型时,专注于执行训练过程,这使得GPU的利用率相对较高。由于不需要在运行时进行交互操作,Run模式的执行速度通常会比Debug模式快一些。

2023-11-29 10:00:09 768 2

原创 技巧-PyTorch中num_works的作用和实验测试

在 PyTorch 中,num_workers 是 DataLoader 中的一个参数,用于控制数据加载的并发线程数。它允许您在数据加载过程中使用多个线程,以提高数据加载的效率。具体来说,num_workers 参数指定了 DataLoader 在加载数据时将创建的子进程数量。当 num_workers 大于 0 时,DataLoader 会自动利用多个子进程来加速数据加载。这有助于减少主进程的等待时间,并使得数据加载更加并行化。

2023-11-28 20:12:04 1120

原创 PCL点云处理(008)-euc_cluster

PCL库中的欧式聚类算法可以基于KD-Tree进行加速,KD-Tree是一种对数据点在k维空间中划分的数据结构,通过将空间划分为多个小部分,可以有效地进行最近邻查找。在构建KD-Tree时,会选择数据点在某一维度上的中值作为切分超平面,将中值左侧的数据点挂在其左子树,中值右侧的数据点挂在其右子树,直到所有数据点挂载完毕。在PCL库中,欧式聚类的实现原理是将点云中的每个点看作一个向量,然后计算这些向量之间的欧式距离。欧式聚类是一种基于距离的聚类算法,可以将点云中距离较近的点聚集在一起,形成一个簇。

2023-11-08 15:56:29 99

原创 PCL点云处理(007)-Ransac

超过错误阈值的元素认为是离群值(outlier),小于错误阈值的元素认为是内部点(inlier)。从输入数据中随机选出能组成数学模型的最小数目的元素,使用这些元素计算出相应模型的参数。3、如果处在同一个平面的点超过n个,就保存下这个平面,并将处在这个平面上的点都标记为已匹配。这段代码从pcd点云中提取出平面,如下图所示,其中绿色点为平面点,白色点为噪点。3、计算所有其他点到该平面的距离,如果小于阈值T,就认为是处在同一个平面的点。4、终止的条件是迭代N次后找到的平面小于n个点,或者找不到三个未标记的点。

2023-11-04 11:42:59 123

原创 报错-mmdet/cuda编译报错: fatal error: THC/THC.h: No such file or directory

1.11版本后,Pytorch中的THC/THC 命名空间已失效,apex 也已将其删除,但是其中的函数已移至 ATen 命名空间。THCudaCheck函数->AT_CUDA_CHECK。

2023-10-25 21:31:11 661 1

原创 报错-cv_bridge报错: ImportError: dynamic module does not define module export function (PyInit_cv_bridge

catkin config -DPYTHON_EXECUTABLE=/usr/bin/python3 -DPYTHON_INCLUDE_DIR=/usr/include/python3.5m -DPYTHON_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython3.5m.so #寻找对应位置。在ROS中默认使用python2,rospy的cv_bridge默认也是python2版本的,在使用python3中导入cv_brdige时会报出以上错误.

2023-10-10 17:09:16 232

原创 报错-模型训练: RuntimeError: CUDA unknown error - this may be due to an incorrectly set up environmen

官方下载地址为https://developer.download.nvidia.cn/compute/cuda/repos/ubuntu1804/x86_64/对应好系统版本和CPU位数,我的电脑用的是Ubuntu 18.04 + x86_64。nvidia-modprobe版本过低,与显卡驱动的版本不匹配导致的。1 下载与显卡驱动一致的nvidia-modprobe。2 安装nvidia-modprobe。3 检查nvidia-smi是否报错。

2023-09-27 10:48:13 640

原创 方法:Ubuntu配置网络源-apt源、pip源、conda源

方法1编辑/etc/apt/sources.list:写入,如阿里源方法2搜索并打开应用"Software & Updates",在"Download from:“中打开"other…”,选择国内的网络源,如下。

2023-09-26 15:28:21 492

原创 报错-安装谷歌浏览器报错: dpkg: error processing package google-chrome-stable (--install): dependency problems

报错-安装谷歌浏览器报错: dpkg: error processing package google-chrome-stable (--install): dependency problems。

2023-09-26 15:11:35 1311

原创 警告-Ubuntu提示W: Possible missing firmware xxx解决方法

警告-Ubuntu提示W: Possible missing firmware xxx解决方法

2023-09-26 15:04:14 648

原创 cuda runtime-stream

CUDA流:一系列将在GPU上按照顺序执行的操作。可以将一个流看做是GPU上的一个任务,不同任务可以并行执行。如下图所示,利用三个流,同一个流上的任务顺序执行,不同流上的任务可以同时执行,从而实现并发操作。// cuda runtime 头文件。

2023-09-09 14:58:10 75

原创 PCL点云处理(006)-Octree搜索

上一章Kdtree类似,首先创建了一个包含一些点的点云对象cloud,并创建了一个Oc树对象octree。

2023-08-26 09:15:00 42

原创 PCL点云处理(005)-Kdtree搜索

Kd树(Kd-tree)是PCL中用于快速搜索最近邻点的数据结构。

2023-08-26 09:00:00 48

原创 PCL点云处理系列简介

PCL(点云库,PointCloud Library)是一个开源的库,用于处理三维点云数据。本系列主要通过代码介绍PCL库的使用方法。每一节代码都可以单独编译和运行。

2023-08-25 22:30:26 219

原创 PCL点云处理(004)-点云法向量

对象作为法向量计算器,并设置点的邻域搜索参数。函数读取点云数据,然后创建一个。在上述代码中,我们首先使用。

2023-08-25 21:35:10 165

GMPHD算法多目标跟踪的入门文献,希望研究高斯概率假设密度的朋友共勉。文中详细描述了多目标跟踪的基本原理及最新方法

这是多目标跟踪的入门文献,希望研究高斯概率假设密度的朋友共勉。文中详细描述了多目标跟踪的基本原理及最新方法

2020-12-21

经典数据关联方法(NNDA、PDA、JPDA)

经典数据关联方法(NNDA、PDA、JPDA

2020-12-20

路沿检测paper.rar

激光雷达路沿检测paper

2020-12-20

三电阻电流重构说明书

三电阻电流重构说明 。

2020-12-20

Sci-Hub-0.1.6.zip

Sci-Hub-0.1.6.zip 。

2020-10-18

livox驱动安装方法

livox驱动方法 ubuntu平台 ros驱动 .

2020-01-16

两个激光雷达融合功能包

两个激光雷达融合功能包,基于ROS 。

2020-01-16

禾赛pandar 64驱动方法

禾赛pandar 64驱动方法 .

2019-09-27

discrete-filters.ppt 概率机器人

discrete-filters.ppt 概率机器人

2019-08-01

ov7670无fifo的stm32f103代码

ov7670无fifo的stm32f103代码 .

2019-07-19

HCSR04超声波stm32F103

HCSR04超声波测距代码 stm32F103 .

2019-07-19

DSP入门基础

DSP入门基础 .

2019-07-19

湖北省八校联考2019第二次理综

湖北省八校联考2019第二次理综 .

2019-04-16

模糊控制程序

模糊控制程序 。

2019-04-16

黑白棋实例 java代码 毕设等8个文件

黑白棋实例 .

2019-04-13

彻底研究:黑客编程技术揭秘与攻防实战

彻底研究:黑客编程技术揭秘与攻防实战

2019-04-01

双向dcdc——sepic电路的pcb

双向dcdc——sepic电路的pcb

2019-04-01

单片机原理及接口技术+数据结构(c)+数据结构+c语言程序设计

单片机原理及接口技术+数据结构(c)+数据结构+c语言程序设计

2019-03-31

三相STATCOM,实现直流电容的稳压控制

三相STATCOM,实现直流电容的稳压控制,采用IpIq控制方法和电流空间和电压空间的PWM方法控制STATCOMThree-phase STATCOMSTATCOM

2019-03-14

基于瞬时功率理论的APF的SIMULINK模型及效果图

基于瞬时功率理论的APF的SIMULINK模型及效果图

2019-03-14

voc数据集mini版-voc192

voc数据集mini版 包含192个图片及其label,方便验证检测任务

2023-12-07

flower数据集mini版

数据量小 方便下载和深度学习训练

2023-12-06

patchwork地面分割原理

patchwork地面分割原理

2023-09-28

AlexNet pytorch

AlexNet pytorch

2022-11-24

deeplabv3-resnet50-coco torch

deeplabv3-resnet50-coco torch

2022-11-24

fastsmooth

三角平滑去噪算法,矩形平滑去噪算法,伪高斯平滑去噪算法的实现

2020-12-21

optimization算法matlab

基于最速下降法、牛顿法、共轭梯度法的matlab程序

2020-12-21

modulation-and-demodulation

调制解调matlab代码包括am,fm,fsk,gfsk,msk,gmsk.很完善的代码。am,fm,中还有语音测试。所有的程序都有代码解释,原理分析,性能对比分析等

2020-12-21

SALSA_v2.0

应用交替方向乘子法来求解L1正则化问题、BP问题、LASSO问题的一种算法,

2020-12-21

msk的调制和解调程序,并给出了误码率和频谱分析结果。

msk的调制和解调程序,并给出了误码率和频谱分析结果。

2020-12-21

Kohonen的SOM软件包,matlab里最好的som软件

Kohonen的SOM软件包,matlab里最好的som软件

2020-12-21

ICA的具体算法流程及对TE过程进行故障检测的应用

ICA的具体算法流程及对TE过程进行故障检测的应用

2020-12-21

雨衰补偿程序Rain_attenuating_compensation

雨衰补偿程序,用于进行雨衰补偿的仿真,利用逐库算法

2020-12-21

葡萄酒数据集wine

葡萄酒数据集, 基于Wine数据集的数据分析报告 R语言+实验结果文档

2020-12-21

汇编代码转成机器码mips-code-to-machine-code

汇编代码转成机器码——对输入有几点要求:指令是小写;一行只能有一条指令;每行开头不能有空格,必须一上来就是操作符,后面可以有空格;立即数只处理十进制数;输入-1代表程序结束

2020-12-21

2019-江西省研究生数学建模竞赛题

江西省数学建模,2018优秀作品农产品数学建模预测

2020-12-21

compressionSystem

可以用于数字图像处理,包含Huffman编码、解码和完整的演示代码

2020-12-21

PMV-PPD软件包

VB复杂计算,含绘图功能,实用的空调辐射温度舒适度衡量软件

2020-12-21

Random_Derandom

通信中加扰/解扰算法。FPGA源代码,verilogHDL语言实现,包含测试程序。

2020-12-21

Sage_Husa卡尔曼滤波

卡尔曼滤波;强跟踪滤波matlab

2020-12-21

空空如也

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

TA关注的人

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