- 博客(59)
- 收藏
- 关注
原创 OPTICS聚类算法原理详解
OPTICS 是一种基于密度的聚类算法,是 DBSCAN 的扩展,能够处理不同密度的簇。算法需要的参数:邻域半径ε,最小点数minPts。若需要提取簇,则需要参数ε',其取值≤ε。:对于点x和参数minPts,核心距离dcore(x)是x到其第minPts个最近邻的距离。若x的邻居数|Nε(x)|<minPts,则dcore(x)=∞;若|Nε(x)|≥minPts,dcore(x)值取点x的第minPts个近邻的距离值。核心距离表示点x是否为核心点,核心点能生成簇。
2025-03-26 16:06:48
611
原创 3D点云数据处理中的聚类算法总结
(4)扩展簇,若dcore(x)≠∞,则x是核心点,对于Nε(x)中的每个未处理点o,计算dreach(o,x)=max{dcore(x),d(x,o)},将(o,dreach(o,x))加入优先队列(若o不在队列中,进行添加;点 N 是一个噪声点,它既不是核心点,也不是直接可达的。②检测簇开始,逐点分析可达距离,检查前一点和当前点,若dreach(i)值大(为∞或大于dreach(i+1)),且dreach(i+1)<(1-ξ)·dreach(i),表示pi为簇的起点,则清空Ctemp,添加pi点。
2025-03-19 15:08:44
1169
原创 大模型中的微调LoRA是什么
LoRA 微调是一种轻量级、高效的微调方法,通过低秩矩阵更新来适应特定任务,既保留了大模型的强大能力,又降低了资源需求。未来,随着大模型应用的普及,LoRA 及其变种(如 AdaLoRA)可能会成为标准工具,尤其在资源受限或多任务场景下。文章来源说明:此文章使用Grok生成(如有错误,敬请指正)。
2025-03-10 19:10:57
429
原创 Layer Normalization、batch Normalization与 RMSNorm
Batch Normalization 是一种归一化方法,对每个特征通道在批量维度上进行归一化。它依赖于批量大小,适合大批量数据。计算如下:归一化维度:批量维度(对每个特征通道在批量上归一化)。对批量大小敏感:需要较大的批量以获得稳定的统计量。训练和推理不同:训练时使用当前批次的统计量,推理时使用全局统计量。计算机视觉(CV):如卷积神经网络(CNN)、ResNet、Inception 等。大批量数据。加速训练,提高模型收敛速度。减少对初始化的依赖。对小批量数据效果不稳定。不适合变长序列数据。L
2025-01-13 09:14:46
268
原创 在未安装opengl驱动的windows机器上运行视频播放器或点云渲染程序
若在未安装opengl驱动的windows机器上运行视频播放器或点云渲染程序,会导致程序异常,报找不到驱动等错误,但又不方便在机器上安装驱动等依赖时,如何解决?
2025-01-06 10:47:47
210
原创 Ubuntu 20.04换源
将 Ubuntu 的软件源更换为其他可用的镜像源(如阿里云、腾讯云等)。(原sources.list文件中的所有内容使用。
2025-01-06 10:36:34
612
原创 简单题:1.两数之和
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1]。输入:nums = [2,7,11,15], target = 9。可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。输入:nums = [3,2,4], target = 6。可以按任意顺序返回答案。
2024-12-07 15:08:10
270
原创 c++中public、protected、private的区别
访问限定符,在类的外部不可以访问,子类也不可以访问。但友元类的private 变量可以在外部被访问。访问限定符,允许派生类和友元类访问它,但禁止在继承层次结构外部访问它。访问限定符,允许在类的外部访问。
2024-10-30 16:55:23
93
原创 ubuntu在代码中添加异常信号捕获防止异常退出(可用于多线程程序)
而这些异常又不能够被try catch捕获到,因此在某些特殊应用中,需要进行异常信号的捕获,如SIGSEGV信号、SIGABRT 信号。这些异常信号的捕获在单线程中往往很容易实现,但在复杂的项目中往往需要多个线程,若想实现单个线程只捕获自己线程内的异常,并继续处理的功能,需要对信号进行分隔开,防止串线程,导致程序的意外退出。上述代码分别在两个线程中捕获了各自线程的异常信号,并在捕获到异常时,程序的运行跳转到指定的位置,即setupSignalHandlerThread1();函数位置,进行继续运行。
2024-07-17 11:40:33
257
原创 概率论学习-笔记1
比如,我们向上抛一枚硬币,硬币落下后哪一面朝上是偶然的,但当我们上抛硬币的次数足够多后,达到上万次甚至几十万几百万次以后,我们就会发现,硬币每一面向上的次数约占总次数的二分之一,亦即偶然之中包含着必然。在统计学中,“似然性”和“概率”(或然性)有明确的区分:概率,用于在已知一些参数的情况下,预测接下来在观测上所得到的结果;通常,事件A在事件B已发生的条件下发生的概率,与事件B在事件A已发生的条件下发生的概率是不一样的。然而,这两者是有确定的关系的,贝叶斯定理就是这种关系的陈述。
2024-05-10 10:48:50
459
原创 c++代码中的交互信息处理(多种表的处理如何优雅实现)
对于接收不同表名的交互信息处理方式,可以考虑使用面向对象的设计模式,将不同的处理逻辑封装成不同的类,以提高代码的可维护性和可扩展性。以下是一种可能的优化方案:2.派生具体类:针对不同的表名,创建具体的处理类,继承自接口,并实现其特定的处理逻辑。3.使用工厂模式:为了根据表名动态创建对应的处理对象,可以使用工厂模式。4.处理消息:在接收到消息后,解析出表名,并根据表名使用工厂模式创建对应的处理对象,然后调用其处理方法。这种设计模式将不同表名的处理逻辑封装到不同的类中,使得代码更加清晰和易于扩展。
2024-05-09 15:04:08
513
原创 ubuntu系统c++中.cpp文件调用 .cu文件中的函数实现方式
【代码】ubuntu系统c++中.cpp文件调用 .cu文件中的函数实现方式。
2023-12-22 09:15:41
847
原创 c++接口类理解
只有纯虚函数 (”=0”) 和静态函数 (除了下文提到的析构函数).没有非静态数据成员.没有定义任何构造函数. 如果有, 也不能带有参数, 并且必须为 protected.如果它是一个子类, 也只能从满足上述条件并以 Interface 为后缀的类继承.接口类不能被直接实例化, 因为它声明了纯虚函数. 为确保接口类的所有实现可被正确销毁, 必须为之声明虚析构函数.
2023-06-27 20:38:37
731
原创 ubuntu18.04 安装PCL1.8.1
3.metslib-0.5.3安装: 执行命令:wget https://www.coin-or.org/download/source/metslib/metslib-0.5.3.tgz。7.安装VTK7.1.1:首先安装qt,按照这个教程:https://blog.youkuaiyun.com/maizousidemao/article/details/104150872。3.安装lz4: git clone https://github.com/lz4/lz4.git;4.安装flann:cd flann;
2023-06-27 14:55:58
727
原创 git安装及使用常用命令
在项目页面上选择克隆,复制使用ssh或https的url,在计算机上打开终端,输入git clone 并将url粘贴在后面,例如:git clone http://192.168.0.112:1080/cxy/cxy_lidar_pcl.git。Windows:官网下载地址:https://gitforwindows.org/,也可以用国内镜像:https://npm.taobao.org/mirrors/git-for-windows/。
2023-03-18 12:10:59
564
原创 ubuntu 18.04安装nvidia驱动后,电脑开机失败
在nvidia 官网 https://www.nvidia.com/Download/index.aspx[添加链接描述]下载显卡驱动,并安装成功后重启电脑发现电脑重启失败,进不了电脑界面。(https://www.nvidia.com/Download/index.aspx)
2022-05-31 19:33:38
1959
原创 CMakeLists.txt中相关指令和含义
语法格式:指令(参数1 参数2 …)参数使用括号括起来参数之间使用空格或分号分开指令大小写无关,参数和变量大小写有影响重要指令1.cmake_minimum_required:指定Cmake的最小版本要求;# CMake最小版本要求为2.8.3cmake_minimum_required(VERSION 2.8.3)2.project:定义工程名称,并且可以指定支持的语言;# 指定工程名称为***project(***)3.set:显式的定义变量;# 定义SRC变量,其值为say
2022-04-14 17:22:00
360
原创 docker安装及使用,常用命令总结
1.安装参考官方教程:https://docs.docker.com/engine/install/ubuntu/有三种安装方法:Install using the repository、Install from a package、Install using the convenience script(1)推荐使用:Install from a package到 https://download.docker.com/linux/ubuntu/dists/,选择你想要安装的Ubuntu 版本,
2022-04-07 08:47:00
1256
原创 PCL编译完成后找不到库
使用执行命令L g++ -std=c++14 -I/usr/local/include/pcl-1.8 -I/usr/local/include/eigen3 main.cpp -o test111其中 -std=c++14表示使用C++14标准,-I/usr/local/include/pcl-1.8为我电脑上的pcl库路径,-I/usr/local/include/eigen3为我电脑上的eigen3库路径。main.cpp 可以换成你的cpp文件,test111换成你想取的名称即可。在Cmake
2022-04-06 09:51:57
2488
4
原创 C++判断文件是否存在
#include <iostream>using namespace std;/// 判断文件是否存在int main(){ string dirPath; dirPath="/home/XXX/.txt"; //你的路径 什么类型的文件都可以 // 进行判断 ifstream txt_file(dirPath); if (!txt_file) { continue; // 如果没有文件,选择跳过或其他的操
2022-03-30 20:10:12
1328
原创 C++函数返回多个值:结构体、tuple
C++函数一般可以返回一个值,但是在使用中常常需要一个函数返回多个值,因此可以使用结构体或tuple来进行实现。1.使用结构体返回多个值实现步骤:1.先定义一个结构体2.准备我们要实现的函数(需要返回多个值)3.在要实现的函数内调用结构体返回多个值4.使用函数返回结果代码示例:////step 1 :定义结构体 ////struct PointStruct{ float without_floor; int only_floor;};首先定义一个结构体,我们命名为
2022-03-30 19:57:01
3775
原创 ubuntu 18.04 docker 安装
docker 官网:https://docs.docker.com/engine/install/ubuntu/(1)按照官网安装教程:我选择的是Install from a package安装方法。首先到网址:https://download.docker.com/linux/ubuntu/dists/下载对应的版本,进入目录:pool/stable/下选取适合你系统的.deb文件;(2)接着到下载好的.deb文件目录下:执行命令: sudo dpkg -i package.deb (改为你的
2022-03-23 14:04:31
1563
原创 DBNet学习笔记
1.网络结构:1.网络流程:输入一张图片,经过卷积操作-> 1/2 -> 1/4 -> 1/8 ->1/16 ->1/32进行特征的提取,然后进行上采样操作,上采样的过程是把1/32的特征通过插值进行上采样到原图的1/16,然后将上采样后的1/16与前一步骤的1/16特征进行相加,得到一个是原图1/8的特征图,再与1/8的特征图进行相加,得到一个1/4的特征图,再对输出的四个特征图分别上采样到一样大小,进行一个concat操作,concat后的特征为原图的1/4,再对这样
2022-01-14 23:40:12
2382
原创 linux安装tailf 命令
1.复制如下代码到一个新建的tailf.c文件里。/* tailf.c -- tail a log file and then follow it * Created: Tue Jan 9 15:49:21 1996 by faith@acm.org * Copyright 1996, 2003 Rickard E. Faith (faith@acm.org) * * Permission is hereby granted, free of charge, to any person
2021-07-27 09:12:18
2184
原创 Python 对象、类、实例的联系与区别
Python 中的对象、类、实例本文讲述Python 中对象、类、实例的联系与区别 来源:笨办法学 Python (Learn Python The Hard Way)作者:Zed Shaw(如有侵权,请联系我!)有一个重要的概念需要弄明白,那就是“类(class)”和“对象(object)”的区别。问题在于,class 和 object 并没有真正的不同。它们其实是同样的东西,只是在不同的时间名字不同罢了。我用禅语来解释一下吧:鱼和泥鳅有什么区别?这个问题有没有让你有点晕呢?说真的,坐下来想一分
2021-04-07 17:28:47
653
原创 CTC loss原理详解大全
ctc本质是损失函数,在我的学习过程中浏览了一些博客,下面整理了一些写的较好、较详细的:1.过程详细,全英文2.博主参照原文讲解的3.有伪代码,帮助理解4.中文解释,详细5.原文:必读...
2021-02-19 13:50:45
1868
原创 docker 服务与调用
docker file:ROM tensorflow1.14_python3.5_20210111:latesttensorflow1.14_python3.5_20210111:latest为镜像名docker-compose.yml文件:最后一个端口号7713与服务中的config保持一致,调用时用到。services下面的generalocr1-generalocr4表示用了四个服务实例,每个实例下的镜像名为同一个,容器名和端口号不能重复。nginx.conf文件:只需要更改 u
2021-01-12 16:08:03
910
原创 从源代码构建python版tensorflow
1.官网链接源码构建tensorflow官网为什么要源码编译: 直接安装的tensorflow 包是没有avx优化的,如果需要提升性能,加快计算速度,建议源码编译。2.构建流程2.1准备首先确定源码编译的配置:系统:Linux、Windows还是Mac;Python版本;支持GPU还是不支持GPU;Tensorflow版本;确定了这些,就可以根据下表来确定GCC、G++版本(gcc与g++版本一致)及Bazel工具版本。我安装的是tensorflow1.14 、baze
2021-01-12 14:46:05
725
原创 力扣题目训练:605-种花问题
假设有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花不能种植在相邻的地块上,它们会争夺水源,两者都会死去。给你一个整数数组 flowerbed 表示花坛,由若干 0 和 1 组成,其中 0 表示没种植花,1 表示种植了花。另有一个数 n ,能否在不打破种植规则的情况下种入 n 朵花?能则返回 true ,不能则返回 false。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/can-place-flowers示例1:输入:flo
2021-01-04 22:56:28
403
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人