自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 如何理解transformer中的残差连接

残差连接(Residual Connection)是Transformer中的一个关键设计,用于解决深层网络训练时的梯度消失问题,同时帮助模型保留原始输入信息。它的操作非常简单,但效果显著。以下是通俗易懂的解释:一句话总结:把当前层的输入直接加到当前层的输出上,形成“输入 + 输出”的短路路径。数学公式:输出=输入 x + 当前层的变换(x)\text{输出} = \text{输入} \ x \ + \ \text{当前层的变换}(x)输出=输入 x + 当前层的变换(x)(其中“当前层的变换”可

2025-04-21 15:43:20 544

原创 如何通俗的理解注意力机制中的KQV

假设你想写一篇关于“气候变化”的论文,需要从图书馆找相关书籍。我们可以用一个**“图书馆找书”**的比喻来理解注意力机制中的。“猫追老鼠,因为它饿了。

2025-04-21 14:05:10 413

原创 如何通俗的理解transformer架构编码器和解码器干的活

解码器的任务是根据编码器的“报告”,逐步生成目标内容(比如英文句子“The weather is nice today”)。这种分工让Transformer既能生成流畅的句子,又能忠实反映输入内容,成为翻译、对话、文本生成的强大工具。想象你要翻译一句话,比如把中文“今天天气很好”翻译成英文。这就像作家写小说时,必须按顺序写,每写一个词只能看前面写好的内容,避免“剧透”后面的情节。,他们的目标是把输入内容(比如一句话)彻底吃透,整理出一份“深度分析报告”。这就像作家写论文时,边写边查参考文献,确保内容准确。

2025-04-18 17:50:28 598

原创 注意力机制是如何实现的

而多头注意力进一步增强了模型的表达能力。这种机制不仅是Transformer的基础,也被广泛应用于计算机视觉、语音处理等领域。,决定不同位置信息的重要性,再对信息进行加权融合。为了增强模型捕捉不同模式信息的能力,通常会将注意力机制扩展为。注意力机制的实现可以分解为几个核心步骤,其本质是通过。“猫追老鼠,因为它饿了”i )(维度为 ( d。

2025-04-17 14:10:34 986

原创 可不可以说transformer架构就是注意力机制,注意力机制就是transformer架构

二者的关系更类似于**“汽车”和“发动机”**——注意力机制是 Transformer 的核心组件之一,但 Transformer 还包含其他关键设计。掌握这一区别,有助于更深入理解现代AI模型的运作原理。Transformer 是一个由多模块组成的系统,

2025-04-17 13:57:31 560

原创 注意力机制除了自注意力,还有哪些

注意力机制的灵活性,让它成为AI模型的“瑞士军刀”——通过组合不同变体,可以应对从短文本到长视频、从结构化数据到非结构化数据的各种挑战。,还有许多变体和扩展形式,适用于不同的场景。注意力机制是一个灵活的工具箱,除了最著名的。

2025-04-17 13:53:26 1014

原创 为什么注意力机制相比于RNN,更能捕捉全局信息

注意力机制的核心优势源于。

2025-04-17 13:52:55 243

原创 注意力机制相比于RNN的核心优势是什么

注意力机制的核心优势 = 打破序列依赖枷锁 + 拥抱并行计算自由 + 动态聚焦关键信息——它让模型像人类一样,能瞬间抓住重点,而非被顺序处理的“流水线”限制思维。

2025-04-17 13:52:11 457

原创 如何通俗理解注意力机制

注意力机制 = 让计算机学会“抓重点”的超能力——它通过动态计算“谁和谁更相关”,像人一样灵活分配精力,这是Transformer、GPT等模型强大的关键原因。

2025-04-17 13:51:38 306

原创 如何通俗理解transformer架构

输入句子→ 一篇文章编码器→ 快速标注重点的编辑团队自注意力→ 用荧光笔标出关联词解码器→ 根据重点写摘要的作家位置编码→ 给每段文字加上页码。

2025-04-17 13:50:51 310

原创 linux常用指令汇总

Linux 系统中有大量强大且高效的命令,可以极大提升工作效率。掌握这些命令后,Linux 系统的日常操作、调试和管理效率会大幅提升!)深入学习每个工具的详细用法。

2025-04-09 14:42:16 248

原创 如何理解ADRC中的TD模块

在PID调参过程中,若系统在稳态时出现震荡现象,说明当前参数组合导致系统响应过度或阻尼不足。通过上述方法逐步调整,通常能有效消除稳态震荡。若问题持续,可尝试更高级的控制算法(如自适应PID或模糊PID)。

2025-04-08 14:15:50 392

原创 PID调参时,发现在稳态时有震荡现象,应该怎么再调节PID的三个参数

在PID调参过程中,若系统在稳态时出现震荡现象,说明当前参数组合导致系统响应过度或阻尼不足。通过上述方法逐步调整,通常能有效消除稳态震荡。若问题持续,可尝试更高级的控制算法(如自适应PID或模糊PID)。

2025-04-02 15:36:48 1698

原创 智能驾驶员模型IDM详解

智能驾驶员模型(Intelligent Driver Model, IDM)是一种微观跟驰模型,用于模拟车辆在道路上的纵向运动行为,强调安全性与效率的平衡。IDM通过动态平衡速度追求与安全跟驰,成为交通建模和自动驾驶领域的核心工具。参数调整可灵活适配不同驾驶风格,是理解微观交通行为的重要模型。(无前车干扰时的理想加速)和。

2025-04-01 11:40:22 641

原创 基于车辆运动学模型和滑模控制的横向控制算法设计

航向误差:(eψe_{\psi}eψ​ψref\psi_{ref}ψref​ψ\psiψ横向位置误差:(eye_yey​yrefy_{ref}yref​yyy误差动态方程:(e˙y\dot{e}_ye˙y​v⋅sin⁡eψv⋅sineψ​。

2025-03-19 18:21:23 820

原创 多线程相比于多进程有哪些优缺点

多线程和多进程是两种常见的并发编程模型,它们各有优缺点。

2025-03-19 14:03:39 1005

原创 既然多线程纯读取同一块数据是安全的,那么为什么还要用std::shared_lock加锁

场景是否需要锁原因纯读取(无写)可选,但建议加共享锁防御性编程、内存可见性、未来扩展性读写混合必须加锁(共享锁/独占锁)避免数据竞争和未定义行为即使多个线程仅进行读取操作,使用仍是推荐做法。内存可见性(读取最新数据)。代码的扩展性和健壮性。与潜在的写入操作安全协作。

2025-03-19 13:45:42 760

原创 std::unique_lock和std::shared_lock有什么区别

和是 C++ 标准库中用于管理锁的两个工具,它们的主要区别在于锁的类型和用途。用于独占锁(如std::mutex),而用于共享锁(如。

2025-03-19 13:31:48 1040

原创 如何理解std::promise和std::future

的作用:作为生产者线程的结果出口。的作用:作为消费者线程的结果入口。适用场景:需要明确分离“结果生产者”和“结果消费者”的多线程任务。方法适用场景优点缺点共享数据 + 互斥锁简单数据,少量访问灵活通用需手动管理锁,易死锁条件变量需要等待特定条件高效,避免忙等待代码复杂度较高原子操作基本数据类型,无锁需求无锁,高效仅支持基本类型消息队列大量数据或流式处理扩展性强实现复杂回调函数一次性数据传递简单直接无法动态更新数据全局变量快速原型开发(不推荐生产环境)

2025-03-18 18:07:14 742

原创 理解torch函数bmm

torch.bmm是 PyTorch 中的一个函数,用于执行批量矩阵乘法(Batch Matrix Multiplication)。它适用于处理一批矩阵的乘法操作,特别适合于深度学习任务中的场景,比如卷积神经网络中的某些层。

2024-12-18 14:42:26 738

原创 理解torch函数squeeze和unsqueeze

是指在PyTorch中用于压缩张量维度的函数。它主要用于移除维数为1的维度,使得输出的张量形状更简洁。squeeze综上所述,是一个非常实用的工具,帮助开发者在处理数据时能够灵活地调整张量的维度,从而更好地适配各种算法的需求。

2024-12-18 14:23:31 690

原创 cmake如何查看具体编译命令

后会在build文件夹里生成一个compile_commands.json文件,这里面列出了每个文件对应的编译命令。可在CMakeLists.txt里设置。Release和Debug不区分大小写。两个tyep的编译间选项的区别。

2024-10-24 17:19:47 415

原创 ubuntu20.04报错ImportError: No module named rospkg

调用ros脚本进行数据分析。

2024-10-09 10:56:51 661

原创 C++ noexcept关键字详解

noexcept是c++11新引入的关键字,取代c++98的throw()的异常规格,虽然c++的异常规格被大家嫌弃并弃用,但将一定不会发出异常的函数申明成noexcept还是能一定程度上带来代码效率的提升。

2024-03-22 17:06:35 902

原创 C++源码剖析push_back和emplace_back的区别

【代码】源码剖析push_back和emplace_back的区别。

2024-03-19 15:41:22 316

原创 C++ inline关键字总结

inline只是对编译器的建议,编译器不一定采纳inline会省去函数调用的开销,同时还可以帮助编译器优化代码inline会造成代码膨胀,消耗内存template和inline是两个概念,彼此互不影响,在template函数加inline的话,就是具现出来的每个函数都是inline的在类的成员函数声明里直接定义函数的话,会隐式inlineinline会使virtual函数落空,因为virtual意味着执行后决定调用,而inline表示执行前替换构造函数和析构函数不要inline,因为这两个函数

2024-03-05 16:37:30 341

原创 理解ROS tf

ros的tf反应了一个机器人系统中,不同坐标系之间的关系

2024-03-04 16:14:45 615

原创 c++ [[nodiscard]]关键字详解

如果一个函数声明了[[nodiscard]],则该函数的返回值不能没有承接,如果没有承接,就会编译报warning

2024-03-01 10:21:24 1065

原创 git describe

git describe一般用于查看当前提交距离上次最近的tag是什么,并且还可以知道差了多少个commit,在工程实践当中是个非常好用的命令

2024-02-27 16:28:51 724

原创 自动驾驶中的障碍物时间对齐法

自动驾驶算法使用的系统往往不是实时系统,因此每个节点间拿到的数据可能不是同一时间的数据,从而造成系统误差,针对这一现象,工程上往往采用时间对齐内插外推法

2024-02-23 16:51:56 994

原创 编译报错 terminate called after throwing an instance of ‘std::length_error‘ what(): vector::_m_range_ins

terminate called after throwing an instance of 'std::length_error' what(): vector::_m_range_insert

2024-02-22 15:19:33 895

原创 c++指针和引用的区别

个人认为一个函数中,如果涉及传入参数的修改,那么最好把这个被修改值设计成指针接口,因为这样在下游调用函数时,就知道哪个参数会被修改,代码可读性更好。涉及型别推导时,例如模板推导或auto推导的情况,指针会被推导出指针型别,并保留cv特性。但引用只会被推导成值型别,且不保留cv特性。操作符,在返回类型时应该使用引用,而不使用指针。指针可以被重新赋值指向另一个不同对象,但是引用总是指向在初始化时被指定的对象,以后不能改变。指针指向了一个对象的地址,引用是给一个对象起别名。一些惯用语境下,例如重载。

2024-02-18 17:42:07 402

原创 std::abs和std::fabs的区别

都既可以用于整型,又可以用于浮点型。的使用范围会更广些,出来刚才提到的基本类型外,

2023-09-08 18:23:48 2661

原创 rosbag回放指定话题外的其他话题的方法

假设要回放bag包中除/tf话题外的所有话题。

2023-07-13 14:55:01 439

原创 python scatter_max算子不适配报错,RuntimeError: Not compiled with CUDA support

运行python做神经网络训练时,scatter_max算子不适配报错:RuntimeError: Not compiled with CUDA support。

2023-07-03 09:54:15 1024 1

原创 如何在linux上查看显卡型号

发现我的显卡型号是2504,这和我们印象中的显卡型号如1080Ti之类的不一样,看起来不像真正的型号。可以看出显卡真正型号是"GeForce RTX 3060 Lite Hash Rate"这个网页里搜索2504,才能找到对应的真实型号。我的显卡的搜索结果如下。

2023-06-27 13:35:21 3604

原创 torch_scatter的scatter函数是什么意思

把src的第1行放在新tensor的第2行,最后,第一行用0补充空缺,最终输出tensor有三行。以上整个操作的意思是,把src中的第0行和第2行做平均后,放在新tensor的第0行,以上整个操作的意思是,把src中的第0行和第2行取最大后,放在新tensor的第1行,把src的第1行放在新tensor的第0行,最终输出tensor只有两行。

2023-06-21 19:19:35 378

原创 安装argoverse踩坑记录

ERROR: Could not build wheels for numpy, which is required to install pyproject.toml-based projectsnote: This error originates from a subprocess, and is likely not a problem with pip.ERROR: Failed building wheel for numpyerror: subprocess-exited-with-er

2023-06-19 14:43:27 2108 1

原创 如何评价CPU的性能

线程数越多,性能越好,四核八线程的CPU的性能不一定比六核六线程的CPU性能差。类比发动机涡轮增压值,带不带涡轮增压会很大程度影响性能,例如2.0T的发动机的马力不一定比3.0自然吸气的马力差。物理核心数,常见的CPU核心数有四核,八核,十六核等,CPU核心数越多,性能越好。类比发动机的缸数,常见发动机缸数有四缸,六缸,八缸,往往发动机缸数越多,此发动机马力越大。主频即CPU的时钟频率,这个值越大说明CPU处理数据能力越快,性能越好。类比发动机的红线转速,往往红线转速能拉的越高,此发动机马力越大。

2023-05-24 18:35:46 515

原创 conda和pip

conda和pip都是包管理工具,拥有xxx remove之类的语法的工具基本上都可以称作包管理工具。conda和pip的区别在于conda可以管理任何语言的包,而pip只能管理Python的包conda一般集成在anaconda里,anaconda可以提供一个独立的Python环境,该环境可以指定想要的Python版本,可以用有独立的依赖包,这个环境其实就是一个独立的文件夹。pip在安装依赖复杂的包时,在安装过程中如果遇阻,可能会污染环境。

2023-05-10 18:34:32 702

空空如也

空空如也

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

TA关注的人

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