自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 从零实现transformer模型

这篇文章介绍了使用PyTorch实现Transformer模型的完整过程。主要内容包括:1)模型结构定义,实现了多头注意力机制、位置编码、前馈网络等核心组件;2)完整的Transformer架构,包含编码器和解码器层;3)训练流程和ONNX格式导出功能。代码示例展示了关键模块的实现细节,如MultiHeadAttention类、PositionalEncoding类等,为从零构建Transformer模型提供了实用参考。

2025-08-21 17:35:01 1072

原创 NVIDIA NCCL安装测试

摘要: 本文详细介绍了NCCL的安装步骤,包括从官网或GitHub下载对应CUDA版本的安装包、解压并构建库文件(需指定CUDA路径)。针对Ubuntu和CentOS系统分别提供了安装方法(使用apt/yum构建软件包后安装),并给出验证安装成功的命令。最后指导用户通过nccl-tests仓库测试NCCL功能,运行all_reduce_perf测试性能。关键步骤涵盖环境适配、包管理工具使用及安装验证。

2025-08-19 11:17:01 317

原创 深度学习模型训练的核心超参数

摘要:本文介绍了深度学习模型训练的超参数设置实践,重点分析了SGD优化器配合动量(0.9)和权重衰减(5e-4)的使用方法。提供了PyTorch实现代码示例,包含1轮学习率预热和余弦退火调度策略的组合。这种经典配置通过预热确保训练稳定启动,动量加速收敛,权重衰减防止过拟合,余弦退火优化最终性能,特别适用于计算机视觉任务,是ResNet等模型训练的标准配置之一。

2025-07-28 16:51:17 317

原创 基于HSV基本颜色分量范围来检测LED颜色

文章摘要:本文介绍了LED颜色测试中如何通过HSV/HSI颜色空间模型将RGB数值转换为直观的颜色描述。HSV(色调、饱和度、亮度)和HSI(色调、饱和度、强度)模型比RGB更符合人眼视觉特性,其中色调H用0-180°表示颜色类别,S和V/I表示颜色纯度和明暗。文章详细对比了两种圆柱坐标系模型的差异,给出了颜色角度分布图(红色0°,黄/绿/青/蓝依次间隔60°),并提供了ICAT LED测试仪获取Hue和Saturation值后判断具体颜色(如红、粉、黄等)的实用方法。这些颜色空间转换技术对LED测试和图像

2025-07-17 11:36:56 882

原创 C/C++通过__attribute__((constructor))函数属性实现自动注册机制

摘要: 本文介绍了一个C/C++宏定义EMPLACE_METADATA_INFO_MAPPING,用于实现程序启动时的自动元数据注册机制。该宏利用GCC/Clang的__attribute__((constructor))特性,在main()执行前自动调用注册函数,将类型信息(type)与对应的元数据(类别、名称、代理名称)存入全局映射表中。测试代码展示了如何定义元数据结构体、全局映射表,并通过该宏实现三类元数据的自动注册和访问。这种设计简化了注册流程,实现了类型到元数据的自动映射,但需注意该特性依赖于特定

2025-07-09 14:14:28 599

原创 YOLOX论文解读

YOLOX是旷视科技在2021年提出的目标检测模型,基于YOLOv5进行改进,主要通过四种核心技术突破性能瓶颈:1)采用解耦头设计(Decoupled Head),将分类和回归任务分离处理,提升4.2% AP;2)实现anchor-free检测,直接预测目标中心点及宽高,减少参数量并增强通用性;3)结合Mosaic和Mixup数据增强策略,最后15个epoch关闭以消除不准确标注框的影响;4)提出SimOTA动态标签分配算法,优化正负样本匹配效率。实验表明,YOLOX在保持实时性的同时显著超越同期YOLO系

2025-06-18 11:28:10 1008

原创 四元素、旋转矩阵与旋转向量

摘要 本文介绍了三种表示三维空间旋转的方法:旋转矩阵、Rodrigue旋转向量和四元素。旋转矩阵通过绕X、Y、Z轴(分别对应俯仰角、偏航角、翻滚角)的乘积构建正交矩阵;Rodrigue旋转向量用旋转轴和角度表示旋转,并推导了旋转向量到矩阵的转换公式;四元素作为复数域的扩展,通过实部和虚部描述旋转。文章还提供了相关参考链接,为读者深入学习提供了资源。这三种方法各有特点,在计算机视觉和机器人领域有广泛应用。

2025-06-03 17:45:06 305

原创 SE2坐标系变换

SE2(李群二维坐标系变换),坐标系间的坐标变换公式说明:XOY为世界坐标系,xoy为子坐标系,P为坐标系中一点,P点在xoy系中的坐标为( x,y),在XOY系中的坐标为 ( x_w,y_w),( t_xw,t_yw) 为子坐标系原点在世界坐标系中的坐标,为子坐标系与世界坐标系的夹角,遵循右手定则。

2025-05-20 10:39:46 289

原创 一文读懂匈牙利算法

匈牙利算法(Hungarian Algorithm)是一种组合优化算法(combinatorial optimization algorithm),用于求解指派问题(assignment problem),算法时间复杂度为O(N^3)。Harold Kuhn发表于1955年,由于该算法基于两位匈牙利数学家的早期研究成果,所以被称作“匈牙利算法”。

2025-05-13 17:49:36 1653

原创 PyTorch中的nn.Embedding应用详解

PyTorch中的nn.Embedding模块是一种用于实现词嵌入的工具,能够将离散的词汇或符号映射到连续的向量空间,从而捕捉词汇之间的语义关系。nn.Embedding本质上是一个参数化的查找表,通过训练更新嵌入向量以优化模型性能。它在自然语言处理任务中广泛应用,如文本分类,通过将单词转换为嵌入向量,提升模型的泛化能力和计算效率。此外,虽然nn.Embedding主要用于文本处理,但在某些图像处理任务中也可用于映射像素值到高维空间。通过示例代码展示了如何在PyTorch中使用nn.Embedding进行文

2025-05-13 15:28:55 848

原创 模型DPO优化方法及原理讲解

DPO(Direct Preference Optimization)是一种新兴的优化方法,旨在通过直接利用人类偏好数据来优化模型参数,避免了传统强化学习中的复杂奖励模型拟合过程。以下是DPO过程的详细解析及其损失计算方法。数据集构建:首先,通过对同一问题的不同回复进行标注,生成“chosen”(选择的)和“rejected”(拒绝的)样本,以反映人类偏好。模型训练:使用预训练语言模型进行监督微调。生成成对响应,并由人类标注偏好。利用标注好的偏好数据集优化策略模型。

2025-04-28 10:51:09 530

原创 Appium自动化开发环境搭建

Appium是一款开源工具,用于自动化iOS、Android和Windows桌面平台上的本地、移动web和混合应用程序。原生应用是指那些使用iOS、Android或Windows sdk编写的应用。移动网页应用是通过移动浏览器访问的网页应用(appum支持iOS和Chrome上的Safari或Android上的内置“浏览器”应用)。混合应用程序有一个“webview”的包装,这是一个允许与web内容交互的原生控件。

2025-04-25 18:17:53 616

原创 ViT论文及代码解读

transformer于2017年的Attention is all your need提出,一般用于自然语言处理任务(序列任务),因为其相较于循环神经网络RNN能够并行化处理而广泛使用。本文最大的创新点就是将transformer应用于图像分类的cv任务,证明在cv领域使用Transformer依然可以获得很好的性能,启发了后面基于transformer的目标检测和语义分割等网络。图像是三维矩阵结构,如何将其变为序列是一个问题。

2025-04-25 14:06:54 720

原创 Android SDK安装和配置

链接安装过程比较简单,基本上是一路点 next,这里不做详细介绍,安装完以后下载Android SDK(安装Android Studio后一般会默认安装好SDK版本)。可以打开Android Studio点左上角File>Settings>Edit更新…勾选SDK下载ANDROID_HOME环境变量PATH环境变量这里配置了环境变量就可以在任何地方使用adb、sdkmanager等命令。

2025-04-24 14:30:35 281

原创 JDK安装教程

SUN公司提供了一套Java开发环境,简称JDK(JavaDevelopmentKit),它是整个Java的核心,其中包括Java编译器、Java运行工具、Java文档生成工具、Java打包工具等。SUN公司除了提供JDK,还提供了一种JRE(JavaRuntimeEnvironment)工具,它是Java运行环境,是提供给普通用户使用的。由于用户只需要运行事先编写好的程序,不需要自己动手编写程序,因此JRE工具中只包含Java运行工具,不包含Java编译工具。

2025-04-24 09:59:18 552

原创 安卓投屏软件QtScrcpy

开源投屏软件

2025-04-22 17:56:31 358

原创 人脸识别身份识别-facenet模型

FaceNet是谷歌于[CVPR2015.02](FaceNet: A Unified Embedding for Face Recognition and Clustering)发表,提出了一个对识别(这是谁?)、验证(这是用一个人吗?)、聚类(在这些面孔中找到同一个人)等问题的统一解决框架,即它们都可以放到特征空间里统一处理,只需要专注于解决的仅仅是如何将人脸更好的映射到特征空间。

2025-04-22 11:34:17 1177

原创 贝叶斯均衡

贝叶斯均衡描述的是不完全信息静态博弈中参与者的策略互动结果。每个参与者仅掌握自身类型(如成本、偏好等私有信息),而对其他参与者的类型仅了解概率分布。在此条件下,参与者需通过最大化期望效用来选择策略。例如,在拍卖场景中,竞拍者知道自己的估值但不确定其他竞拍者的估值,需根据可能的估值分布决定出价策略。

2025-04-17 13:49:33 807

原创 卷积神经网络(CNN)可视化网站汇总

汇总几个卷积神经网络(CNN)动画和可视化的网址:https://poloclub.github.io/cnn-explainer/直观的交互式工具,解释卷积神经网络的基本原理。https://playground.tensorflow.org/谷歌推出的深度学习交互式平台,虽然主要是全连接网络,但适合学习基础概念。http://cs.stanford.edu/people/karpathy/convnetjs/在线训练CNN模型,并实时可视化卷积、池化等过程。https://www.cs.ryerson.

2025-04-11 10:52:58 1627

原创 spdlog C++日志库使用教程

Spdlog是一个快速、异步、线程安全的C++日志库,他可以方便地记录应用程序的运行状态,并提供多种输出格式。安装教程可以参考:https://blog.csdn.net/Harrytsz/article/details/144887297Spdlog的优点:只包含头文件速度很快无需依赖第三方库支持跨平台支持多线程—线程安全可对日志文件进行循环输出可每日生成日志文件可支持控制台日志输出可选的异步输出可定义日志格式1、日志级别。

2025-04-08 15:17:03 1579

原创 图像处理之Homography matrix(单应性矩阵)

单应性矩阵是投影几何中一个术语,本质上它是一个数学概念,但是在OpenCV中却是有几个函数与透视变换相关的函数,都用到了单应性矩阵的概念与知识。跟很多人一样,刚开始学习图像处理对单应性矩阵不是很了解,通过项目实践慢慢知道了一些这方面的知识和自己对它的理解,就跟大家分享一下。单应性矩阵概念这里说的单应性矩阵主要是指平面单应性矩阵,在三轴坐标中XYZ,Z=1这个有点类似于三维的齐次坐标。单应性矩阵主要用来解决两个问题,一是表述真实世界中一个平面与对应它图像的透视变换。

2025-04-03 11:35:04 596

原创 [算法]道格拉斯-普克算法(Douglas-Peucker Algorithm),简称D-P算法

道格拉斯算法是一种用于曲线拟合的数学方法,特别是在处理曲线插值问题时非常有用。道格拉斯-普克算法(Douglas-Peucker Algorithm),简称D-P算法,是一种用于简化多边形或折线的高效算法,由David Douglas和Thomas Peucker于1973年提出。该算法的核心思想是递归地将折线分割为两段,然后根据设定的阈值去除那些偏离直线距离小于阈值的点,从而达到简化折线的目的。

2025-04-02 17:39:46 1262

原创 OpenMPI的安装

1、首先去官网(https://www-lb.open-mpi.org/software/ompi/v4.0/)下载所需要的版本。例如,将最新版本 openmpi-4.0.2.tar.bz2 文件放到你个人用户目录下的任一个文件夹(注意最新的不一定是最适合你的需要的。( ./configure --prefix=“安装目录所在绝对路径”, 安装目录需要提前新建一个,我一般选择在编译目录外面新建一个目录,新建一个software文件夹。7、重新新进入shell之后直接用$mpiexec -V,来查看版本。

2025-03-31 16:55:58 1261

原创 [环境报错] libcublas.so.11: undefined symbol: cublasLtGetStatusString, version libcublasLt.so.11

例如:数据传输过程中数据不时出现丢失的情况,偶尔会丢失一部分数据。

2025-03-31 14:04:32 413

原创 Ubuntu20.04安装OpenVINO环境以及YOLOv8 C++部署测试

OpenVINO是英特尔针对自家硬件平台开发的一套深度学习工具库,包含推断库,模型优化等等一系列与深度学习模型部署相关的功能。OpenVINO™工具包是用于快速开发应用程序和解决方案的综合工具包,可解决各种任务,包括模拟人类视觉,自动语音识别,自然语言处理,推荐系统等。该工具包基于最新一代的人工神经网络,包括卷积神经网络(CNN),循环和基于注意力的网络,可在英特尔®硬件上扩展计算机视觉和非视觉工作负载,从而最大限度地提高性能。它通过从边缘到云的高性能,人工智能和深度学习推理来加速应用程序。

2025-03-28 16:54:55 1431

原创 yolo模型train.py文件训练参数详解

手把手调参。

2025-03-20 14:26:36 1337

原创 PyTorch分布式训练中各节点如何通信

1、分布式节点如何知道彼此并通信。每个节点启动训练任务需要设置主节点的ip:port,通过跟主节点通信来启动服务。2、是不是每个节点都要执行python程序。是的,写好训练代码后,每个节点都需要执行python命令,但是一般平台会帮我们管理分布式服务,自动把脚本分发到各个节点,并执行python成勋,才会产生不需要每个节点执行python代码的错觉。3、如果忘记在某个节点执行python命令,结果会怎样。ddp会阻塞在初始化的位置,一直等到有world_size进程为止,这个就是靠主节点来跟踪进程数。

2025-03-20 11:07:08 1370 1

原创 C/C++高效编译工具ccache

在处理一些规模相对较大的工程时,编译花费的时间可能会很长。有时候我们会经常一遍一遍地编译相同的程序,此时,有了ccache情况就好多了。它将在第一遍编译时多花几秒钟,但接下来就会使编译成倍(5-10倍)的提速。ccache 的基本原理是通过将头文件高速缓存到源文件之中而改进了构建性能,因而通过减少每一步编译时添加头文件所需要的时间而提高了构建速度。以下来了解下如何同时使用 ccache 和distcc 来使开发环境达到最佳性能。

2025-03-18 14:33:36 1073

原创 CVPR2025自动驾驶端到端前沿论文汇总

汇总CVPR2025自动驾驶前沿论文。

2025-03-17 15:27:17 1433

原创 yolo模型coco数据集详解

instances_train2017.json和instances_val2017.json文件均分为五大部分,这五部分对应的关键字分别为info、licenses、images、annotations、categories。info"description": string类型"url": string类型"version": string类型"year": int类型"contributor": string类型"date_created": string类型licenses {

2025-03-13 11:18:43 510

原创 远程调试Python脚本之ptvsd

有时候需要远程调试Python脚本,怎么办呢…以下这段代码用于远程调试 Python 脚本,特别是通过 Visual Studio Code(VS Code)的远程调试功能。它会在指定的服务器 IP 和端口上等待调试器的连接。# 检查是否提供了服务器 IP 和端口# 远程调试 - 参见 https://code.visualstudio.com/docs/python/debugging#_attach-to-a-local-script# 打印等待调试器连接的消息。

2025-02-11 09:50:29 379

原创 bazel使用教程详解

bazel的所有代码都在当前工程,每个工程都是一个 WORKSPACE。每个WORKSPACE下有多个package(包含BUILD文件的文件夹被称为package),BUILD内是多个targets,同一个package内的targets默认互相可见,不同package之间targets的可见性需要手动定义,可以在每个package的BUILD文件顶部声明其中的targets对其他包的默认可见性。

2025-01-20 16:54:25 1144

原创 stb_image简单使用

stb_image 是一个非常轻量级的、单文件的图像加载库,用于加载和解码多种图像格式(如BMP、JPEG、PNG、GIF等)的图像数据。它由Sean T. Barrett开发,并以公共领域(Public Domain)许可发布,因此可以自由地用于商业和非商业项目stb_image 提供了简单易用的接口,使得在应用程序中加载图像变得非常方便。

2025-01-13 16:09:02 651

原创 Raw格式的图片理解、读取、转换、显示

MIPI raw就充分利用了这6个bit位,每5个字节存储4个像素值,如图1.1所示,每格代表两个bit位,前4个红色的格子存储的是第一个像素的高8位,接着4个黄色的格子存储的是第二个像素的高8位,接着4个绿色的格子存储的是第三个像素的高8位,接着4个蓝色的格子存储的第四个像素的高8位,接着1个蓝色的格子存储的是第4个像素的低2位,接着一个绿色的格子存储的是第3个像素的低2位,接着一个个黄色的格子存储的是第2个像素的低2位,最后一个红色的格子存储的是第1个像素的低2位。假设一个sensor的像素是8。

2024-12-24 15:43:37 3868

原创 C++常用的三个网络编程库介绍

在C++的世界里,网络编程是许多应用程序的基础,尤其是在服务器端开发中。不同的框架提供了不同的特性和便利性,今天我们就来对比一下三个流行的C++网络编程框架:Boost.Asio、Poco和MUDuo(也称为muduo),看看它们各自的优势和适用场景,并通过实际案例加深理解。

2024-12-24 09:47:25 1594

原创 关于YOLOv9训练结果详解

本篇介绍使用YOLOV9模型训练以及训练数据之后我们需要一些评判标准来告诉我们所训练的效果究竟如何,关于yolov9的一些简单说明,主要是txt文件、训练结果分析等的相关资料。

2024-12-12 18:20:59 1627

原创 yolov9目标检测报错AttributeError: ‘list‘ object has no attribute ‘device‘

main(opt)这行代码错误,应该是照抄了yolov5的代码改成以下代码,问题解决,完美解决。

2024-12-10 16:24:57 1036 1

原创 C/C++常用的一些性能分析测试工具汇总

常用的性能测试工具汇总

2024-11-22 10:52:21 293

原创 YOLOv9目标检测模型的使用教程与部署

完全使用卷积结构进行构建,没有使用Transformer的结构,比带Transformer结构的RT-DETR、YOLOv8报告的性能都要好。基于MS COCO数据集的模型参数配置目前官方只提供以上的YOLOv9-C和YOLOv9-E模型。

2024-11-18 19:02:46 1308

原创 非极大值抑制NMS详解(Non Maximum Suppression)

非极大值抑制广泛应用在目标检测,目标跟踪,边缘检测。

2024-11-13 15:28:07 1029

空空如也

空空如也

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

TA关注的人

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