自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 如何清理僵尸进程

僵尸进程是在子进程已经终止, 但其退出状态尚未被父进程读取时,仍然保留在进程表中的进程。尽管它们不会消耗系统资源,但会占用进程表项,可能导致系统无法创建新的进程。例如, 在执行nvidia-smi命令时, 看到有许多进程在运行, 但有些进程的Process name 栏只有一条横杠, 并没有名字, 那么这就有可能是僵尸进程.

2024-07-15 07:56:49 296

原创 【基于深度学习方法的激光雷达点云配准系列之GeoTransformer】——粗配准

从本文开头的图中可以直接明了地看出, forward函数中, get_node_correspondences步骤的输出——gt_node_corr_indices, gt_node_corr_overlaps, 是coarse_target函数的所有输入. coarse_target函数中, 首先根据设定的overlap阈值, 过滤中有效的真值匹配点对, 然后分别获取对应的ref点索引、src点索引以及overlap程度, 返回这些结果.这个类中是没有可学习的网络参数的.

2024-07-09 15:23:29 802

原创 Error loading webview: Error: Could not register service worker: InvalidStateError: Failed to regist

最终, 尝试了一下把当前打开的几个Vscode窗口全部关闭, 再在 terminal中 执行code --no-sandbox, 终于成功啦。

2024-07-09 10:38:56 232

原创 【Git】忘记切换分支! 如何将一个分支上的修改转移到另一个分支上去?

当然啦, git还有很多其他的方法来解决这个问题, 比如创建补丁文件, cherry-pick等等, 后续再一起学习吧~使用git stash pop来。特定的stash条目。

2024-07-04 08:27:04 389

原创 华为智能驾驶方案2024

设备方面:华为ADS智驾方案依旧坚持激光雷达+毫米波雷达+摄像头的多传感器融合路线1)单车传感器数量呈现下降趋势,包括激光雷达从3个减配至1个、毫米波雷达从6R减配至3R、摄像头数量亦有所减少;2)车侧算力从400TOPS降低至200TOPS、更贴合实际需求,同时或在探索“Max + Pro”双版本智驾硬件配置方案。算法方面1)障碍物识别方面,从BEV升级至G0D,优化对异形障碍物、罕见障碍物的识别性能;2)车道识别及路径规划方面,从1.0的“有高精地图”转向2.0的“无图”,无外购高精地图基

2024-06-29 22:35:03 127

原创 【5minC++基本功】——C++常用的命名规范

2024-06-29 16:13:29 77

原创 【基于深度学习方法的激光雷达点云配准系列之GeoTransformer】——模型部分浅析(1)

组成的feats_list.

2024-06-28 11:28:17 1045 2

原创 【Python】抽象基类——class BaseTrainer(abc.ABC)

抽象基类(Abstract Base Class,ABC)。这里的abc是Python标准库中的abc模块,它提供了定义抽象基类的能力。通过继承自abc.ABC,BaseTrainer类可以包含抽象方法,强制要求任何继承它的子类必须实现这些抽象方法。这样的设计通常用于规定接口或者模板方法,增加代码的可扩展性和可维护性。这样的写法, 遂查了一下,

2024-06-19 09:22:24 138

原创 【Python深度学习】——使用Logging记录模型训练过程

使用Logging记录级别示例级别数值DEBUGlogging.debug10INFOlogging.info20WARNINGlogging.warning30ERRORlogging.error40CRITICALlogging.critical50

2024-06-19 08:40:49 251 1

原创 【基于深度学习方法的激光雷达点云配准系列之GeoTransformer】——数据部分梳理(1)

使用自己的数据进行点云数据配准的训练时, 需要运行GeoTransformer/experiments/geotransformer.kitti.stage5.gse.k3.max.oacl.stage2.sinkhorn/下面的trainval.py,它是调用同目录下的dataset.py来组织数据的。而在这个文件的开头, 就import 了geotransformer.utils.data模块中的三个函数, 因此理解这个模块是非常重要的。

2024-06-12 18:37:21 923 2

原创 【Python深度学习】——交叉熵|KL散度|交叉熵损失函数

交叉熵损失函数的目标是最小化预测概率分布与真实分布之间的差异。对于真实分布P 和预测分布 𝑄,交叉熵𝐻(𝑃,𝑄) 的定义为Lyy−∑i1Kyilog⁡yiLyy​−i1∑K​yi​logy​i​yiy_{i}yi​是实际标签的独热编码(one-hot encoding)如果真实类别是 𝑖,则yi1y_{i}=1yi​1, 其余为 0;yi\hat y_{i}y​i​是模型预测的类别 𝑖 的概率。

2024-06-11 08:29:43 778

原创 【Python深度学习】——信息量|熵

这个硬币有两个面:正面(H)和反面(T),每次掷硬币出现正面或反面的概率都是 0.5。——概率密度越均匀, 不确定性越高,即熵越高;概率密度越聚拢, 不确定性越低, 熵越低.此外, 事件独立时, 两个事件同时发生的信息量,等于两个事件的信息量相加.构成. 例如, 抛硬币的结果出现正面和反面就构成一个完整的系统.如下图所示,左图为一个平均分布, 不确定性较高;以2为底, 是转换到二进制下的表示复杂度.一件事越容易发生, 它的信息量就越小.表示事件 ( x ) 的信息量,熵的值就等于概率分布中所有信息量的。

2024-06-10 13:02:06 692

原创 【5minC++基本功】——左值与右值|左值引用与右值引用

— 简单地说, 它是指向内存位置的表达式,其值可以被修改可以出在等号左边;能够取地址具有别名不能被赋值的表达式,通常是临时值或字面常量右值分为纯右值与将亡值它表示资源即将被移动或者销毁的对象。

2024-06-10 01:23:54 457 1

原创 【python深度学习】——torchvision.models

torchvision是PyTorch生态系统中的一个包,专门用于计算机视觉任务。它提供了一系列用于加载、处理和预处理图像和视频数据的工具,以及常用的计算机视觉模型和数据集。关于此模块的官网介绍在这里。这个模块包含许多常用的预训练计算机视觉模型,例如ResNetAlexNetVGG等分类、分割等模型。在官网示例中可以看到, 在0.14版本之后, 可以通过调用list_modelm1 = get_model("mobilenet_v3_large", weights=None) #不带预训练权重。

2024-06-08 11:27:31 413

原创 【python深度学习】——torch.einsum|torch.bmm

全称为: batch matrix-matrix product, 批量矩阵乘法, 适用于三维张量,其中第一维表示批量大小,第二维和第三维表示矩阵的行和列。

2024-06-05 14:36:15 528

原创 【python深度学习】——pytorch中tensor的view、resize(resize_)与reshape

【代码】【python深度学习】——pytorch中tensor的view、resize(resize_)与reshape。

2024-06-04 23:32:03 713

原创 【python深度学习】——tensor内部存储结构|内存优化与as_strided|内存紧凑化contiguous

深度学习中数据量往往是非常庞大的, 因此, tensor的storage是可以共享的, 如下图所示——tensor A和B的元素是相同的, 在内存中,其实是指向同一片空间的, 只是通过stride的不同,来实现呈现的tensor不同。由前面两节我们已经知道, 有些情况下, tensor数据只是视图不同, 元素的存储其实没有改变, 那么在反复操作时, 有可能带来计算效率的下降。在这个例子中,contiguous_tensor 是一个新的 Tensor,数据被复制到一个新的连续存储区中。

2024-06-03 21:35:19 1005

原创 Ubuntu18.04进入不了图形界面,systemd-udev-trigger.service:22: Executable path is not absolute

于是火速按照之前的方法, 打开/lib/systemd/system/systemd-udev-trigger.service这个文件, 将ExecStart的路径改为系统上udevadm的真实路径, 接着重启服务,查了下资料, 发现它与设备(例如显卡等)的识别相关, 那么很可能是这个原因导致进入不了图形界面了!在emergency recovery mode 的页面上当时有个提示, 是先按回车键, 然后进入系统中可以通过。但是执行这个命令后, 一直翻不到最后一页,不知道什么时候才能看完……

2024-05-31 15:56:01 354

原创 【python深度学习】——大型工程项目管理以及互相导入

与相对导入不同,绝对导入不会依赖于当前模块的位置,而是基于项目的根目录来定位模块。并且你是在项目的根目录下运行了python test/test_gui.py这个命令,那么就可能会产生上述报错。这里依然更推荐以python -m的方式,在工程根目录来运行包中的模块.来开展单元测试, 我们有两种方式可以实现, 分别是。

2024-05-31 11:01:09 1284

原创 【斯坦福新研究:RAG能帮助LLM更靠谱吗?】

当提供正确的参考信息时,这些模型正确回答了94%的问题。当修改后的信息与模型认为合理的情况偏离得更厉害时,出现了类似的模式:偏离越不切实际,大语言模型(LLM)就越依赖于自己的预训练知识。模型会注意到错误吗?为了解决上述问题,检索增强生成(RAG)是一种常用的框架,它在LLM的提示中提供相关检索内容,获得相关信息的参考文档或数据库,并可以显著提高模型的准确性。但当语言模型内部知识与通过RAG提供的信息之间的不一致时,或者当网络结果不断变化,并且可能包含过时、错误或有害的信息时,这个问题就变得更加复杂了。

2024-05-29 23:26:00 260 1

原创 【python】-——并行训练之torch.multiprocessing.spawn()

它与torch.distributed.launch的区别是,torch.distributed.launch启动的每个进程, 都运行整个Python 脚本。主要用于创建指定数量的子进程,并行地执行目标。

2024-05-29 23:22:12 436

原创 AI 前沿发展摘要

特点: 使用了更高质量的视觉数据和字幕训练, 现在Open-Sora 1.1能够 能够生成最长约21秒的视频。一款先进的开源语言模型,拥有30亿参数,能够高效地将用户查询转换成专业模型可以有效处理的格式。🔔 AI 前沿发展摘要。

2024-05-28 15:10:44 709

原创 【python深度学习】——torch.min()

当传入两个张量时,torch.min() 会比较两个张量中的每个位置的元素,并返回对应位置的最小值。当指定 dim 参数时,torch.min() 会返回沿指定维度的最小值以及对应的索引。不指定维度时, torch.min() 输出整个张量中所有元素的最小值。

2024-05-28 11:26:47 584 1

原创 【python深度学习】——torch.expand()广播机制|torch.norm()

如果尝试在一个不是 1 的维度上进行扩展,会引发错误。因此我们先用unsqueeze函数在目标位置上进行dim=1的扩充, 再进行expand。在处理3D点云时, 有时需要对两帧点云进行逐点的三维坐标相加减、做点积等运算, 但是读入的PCD文件中,点云数量并不一定是相等的。那么首要的一个问题就是, 如何将两帧点云处理成大小相同的矩阵然后进行计算?torch.norm()是 PyTorch 中用于计算张量范数的函数,expand函数只能在原始。

2024-05-27 17:16:40 611

原创 RAG与SFT技术简介

其核心思想是,通过先从一个庞大的数据库中检索相关信息,然后利用生成模型基于这些信息生成答案。指令微调是一种通过在预训练模型上进行额外的微调,使模型能够更好地理解和执行自然语言指令的方法。通过这个过程,模型可以更准确地响应具体的指令,从而提高其实用性和用户体验。检索模型(通常是一个预训练的BERT模型)从一个大型数据库中找到与查询最相关的文档或片段。生成模型(通常是GPT-3或其他大型语言模型)接收检索到的文档片段。:例如,医疗领域的患者问答系统,可以提供准确的医疗信息。生成模型基于这些片段生成最终的回答。

2024-05-25 11:52:29 713

原创 【5minC++基本功】C++中的多级指针、泛型指针、与函数指针

在 main 函数中,我们定义了一个函数指针 funcPtr,它可以指向返回类型为 void,参数类型为 int, int 的函数。

2024-05-25 09:44:24 888

原创 解决“Failed to restart udev.service“

在这一行的下面,是可执行文件udevadm的路径,此处替换为该文件的真实路径即可,如果不知道路径, 可以用。输入“/”进行搜索,搜索内容为报错的关键信息:“/lib/systemed/systemd-udevd”

2024-05-24 14:42:31 740

原创 【5minC++基本功】C++中的内存区域——静态存储区(static extern关键字)|堆区|栈区

作用域是整个程序,在定义它们的文件中可以直接访问/修改, 也可以通过extern关键字在其他文件中访问/修改。它与malloc的区别是, 如果内存开辟失败, 它的标志是抛出异常, 因此可以用try- catch来捕获.C++编写代码讲求高效, 对于程序员来说, 内存资源是非常宝贵的, 内存管理也是编写高效和稳定代码的基础.: 全局变量的生命周期贯穿整个程序的运行期,从程序开始到结束。: 如果没有显式初始化,全局变量/常量中的数值类型会自动初始化为0,指针类型初始化为nullptr。

2024-05-23 11:54:28 1263

原创 【python深度学习】相似性度量(余弦距离)示例|内积计算torch.mul()|范数计算torch.norm()

由于torch.norm默认使用的是L2范数,这里直接使用就可以;如果需要使用L1范数, 使用norm_type来指定。下面一段函数,功能是对输入的特征描述子desc1、desc2做余弦相似度的计算。向量A=[a1,a2,…an],B=[b1,b2…内积, 即将矩阵中的对应位置相乘, 再逐一相加的结果。: 对desc1和desc2做。

2024-05-20 17:48:53 185

原创 阿里一面——struct和class的区别|基类指针与派生类指针的强转

如果父类指针不是指向子类实例, static_cast虽然能够通过编译和返回非空指针,但是不能操作子类的成员变量。》中,提供了类指针之间显示转换的安全做法——使用dynamic_cast或static_cast。如果转换成功(返回的指针不为NULL), 二者都可以用来读写父类和子类成员函数和变量。父类指针的确指向的是子类实例,dynamic_cast转换成功,否则返回NULL;(1)子类转成父类: dynamic_cast和static_cast都可.(1)只能使用static_cast。

2024-05-08 13:35:13 238

原创 Leetcode刷题之——队列Queue|先入先出FIFO|广度优先搜索BFS|栈Stack|后入先出LIFO|深度优先搜索DFS

与 BFS 不同,更早访问的结点可能不是更靠近根结点的结点。每一轮中,逐个处理已经在队列中的结点,并将所有邻居添加到队列中。新添加的节点不会立即遍历,而是在下一轮中处理。就不讲了,一旦一个队列满了,即使在队列前面仍有空间也不能插入下一个元素,这在实际上并不常用。:队列中,插入(insert)称作入队, 新插入的元素将被添加到队列的末尾。:栈中,插入操作被称为入栈, 新插入的元素将被添加到堆栈的末尾。:出栈时, 与入栈相同,首先被操作的,是最后一个元素。:出队时, 与入队相反,首先被操作的,是第一个元素。

2024-04-25 14:39:10 893

原创 Leetcode刷题之链表小结-2 | 203移除链表元素 | 234回文链表

即从后向前, 与从前向后,读起来相同的序列。例如234回文链表(简单)这题的测试用例一,[1,2,2,1]。

2024-04-24 11:49:33 380

原创 Leetcode刷题之链表小结(1)|92反转链表|206反转链表

穿针引线”的过程就是确定这一次操作要确定的各节点位置, 想象第一次动手时, 当前我们拿着一根针在7的位置上, 那么“头”就是5, 接下来穿到2, 再穿到4, 然后拉直这条线, 新的节点就如图2所示了.题目的要求是反转链表中从left开始到right结束的元素, 在图解中,用橙色部分表示.头插法的理念是,在待反转区域,每遍历到一个节点cur, 都将它的下一个节点next, 放置到cur的前面.头插法分为两步, 一是“穿针引线”, 二是拉直.这一句,可以记做一种常用的反转单个节点的方法.

2024-04-23 20:53:42 337

原创 ubuntu18.04图形界面卡死,鼠标键盘失灵, 通过MAC共享网络给Ubuntu解决!

故事的起因是pip install tensorflow-gpu, 出去上个厕所的功夫,回来页面就卡死了,重启了一下,死的更彻底了,在用户登陆页面鼠标和键盘都失灵了,根本无法输入密码然后进入系统。接下来讲下处理办法。

2024-04-04 18:17:36 1442

原创 Ubuntu18.04+2070s+TF2.x环境,单卡训练PointNet++实战

该文件夹下定义了一些pointnet++模型中需要使用的cuda核函数,如FPS(最远点采样)、grouping等,所以在训练模型前,需要先编译这些自定义的op。我直接进行训练时,由于使用normal的数据,维度是6的, 在shape方面报了个不匹配的错,于是做了如下修改,保障代码可运行。(改的比较暴力,还没来得及细看,有可能其实是应该指定其他参数来解决这个问题的,后续如果发现了,再来矫正。(或许还有其他差异,如果编译或运行报错,也可以优先考虑一下是不是版本差异导致的问题)最后,模型就可以训起来啦,如下~

2024-04-04 16:26:29 967

原创 【PCL】KdTree使用报错:Assertion `point_representation_->isValid、Assertion `index > 0 && index < count‘

本文记录几种使用pcl配准库时,该库使用了KdTree方法,运行中的报错问题和解决方法。

2024-02-27 20:50:55 493

原创 从pcd文件中获取点云类型(pointXYZ等)

pcd文件读取时,有时会因为点云类型无法事先获知,而在LoadPCDFile或者定义点云时,难以做到代码的复用。因此,在加载pcd文件时,自动获取point的类型,然后根据这个信息来定义点云和加载点云,就能方便地对不同厂家的激光雷达PCD文件读取进行适配。

2024-02-27 10:31:32 434

原创 【PCL】bag_to_pcd从命令行保存的速腾点云pcd无法展示的问题(XYZIRT格式))

解决问题:bag_to_pcd保存速腾的XYZIRT没有报错,但保存下来的pcd通过pcl_viewer命令查看点云时,可视化窗口没有弹出来,无法查看点云。

2024-02-26 10:12:10 1006 1

原创 【C++】替换字符串中的任意字符

本文提供一个函数,用于对输入的文件名进行处理,输出一个包含原文件名主要信息的新文件名。函数的主要内容是字符串中任意字符的替换。

2024-02-25 18:13:19 470

原创 如何使用gdb调试coredump文件解决segment fault(core dumped)

coredump文件又称之为核心转储文件;它是进程运行时,突然崩溃的一瞬间,进程在内存中的一个快照。其中包含了运行堆栈和寄存器信息等。

2024-02-10 22:23:37 861 1

从rosbag中离线提取指定话题信息保存到csv文件中的python脚本

一个读取rosbag,从中提取指定话题信息,并保存到csv文件中的python样例。 运行脚本的命令是python test.py --bag_path XXX --topic XXX --id XXX --output_file XXX 接受的4个参数分别是rosbag的路径bag_path;要提取的话题名称topic, 要提取的指定目标标识号id, 以及输出csv的指定路径output_file 可以根据自己的需求基于此脚本进行增删改。

2023-11-07

空空如也

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

TA关注的人

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