- 博客(14)
- 收藏
- 关注
原创 ViT模型初探:从样例图片看看Self_Attention关注什么
ViT模型通过Self-Attention机制处理图像,将224×224像素的图像切分为196个16×16的patches,并添加CLS token。实验可视化最后一层注意力头的权重分布,发现ViT会重点关注图像中的主体对象和边缘轮廓,而抑制背景区域。相比CNN,ViT具有全局视野但计算复杂度更高,需要更多训练数据。实践建议包括预训练微调、数据增强和利用注意力可视化进行模型分析。ViT的成功展示了Transformer在视觉领域的潜力,为计算机视觉提供了新思路。
2025-12-03 11:49:05
739
原创 从数值爆炸到成功量化的调试之旅
本文记录了复现ZeroQ量化论文的完整调试过程。作者在尝试实现ResNet50的W4A8混合精度量化时,经历了从损失爆炸(1614.24)、错误优化(3160万)到最终成功(loss=0.385)的三个阶段。关键发现包括:1)避免使用相对误差计算损失,2)对每个BN层的损失进行归一化处理,3)采用percentile裁剪处理低bit量化。最终配置实现了0.895的余弦相似度和34.4%的Top-1匹配,耗时仅48.8秒。研究揭示了量化算法实现中的数值稳定性问题和解决方案,为类似研究提供了实用参考。
2025-11-12 19:25:30
436
原创 基于Ros2通信的目标检测实验手册
本文介绍了在Ubuntu 22.04虚拟机中部署ROS2 Humble和YOLOv5_ros2项目的详细过程。主要内容包括:1)通过VMware配置Ubuntu环境;2)安装ROS2 Humble并验证运行;3)解决Python依赖冲突问题(setuptools、numpy等版本降级);4)编译运行yolov5_ros2项目,实现摄像头物体检测;5)处理USB摄像头格式兼容性问题。部署过程中遇到存储空间不足、版本冲突等问题,通过调整工具版本和分区解决。最终通过三个终端分别启动摄像头驱动、YOLOv5检测节点
2025-09-04 13:02:39
1069
原创 FFT在耳机定位中的原理与应用
毫米波雷达耳机定位技术通过FFT将时域信号转为频域,分析相位变化重建振动信号。该技术面临分辨率限制(理论3.75cm)、多径干扰等挑战。改进方案如CZT可将分辨率提升至0.04cm,MVDR+STSF组合方案在保证实时性同时显著提升性能。技术原理类似"声音过滤器"分离特定频率,通过追踪反射信号细微变化还原振动。
2025-08-31 16:16:56
431
原创 IBM ILOG CPLEX 下载、安装与初步测试指南(融合Python开发)
是一款强大的数学优化求解器,专门用于解决**线性规划(LP)、混合整数规划(MIP)、二次规划(QP)**等优化问题。当然,熟悉.dat文件语法的同学也可以编写,通过调用Python的pandas库来读。相较于cplexstdio的 .dat数据文件,在python上我们可以直接用字典存储,将项目配置文件改为英文config1,(只要是英文就行):运行简单 LP/MIP 问题验证安装。,适用于 LP、MIP、QP 等问题。,如果进入交互式环境,说明安装成功。如果没有报错,说明安装成功。
2025-04-16 15:35:08
3773
原创 一次算法优化的深度反思
通过对加油站问题两种双层循环解法的分析,我们看到了跳出条件设计如何深刻影响算法效率。优秀的算法设计不仅在于解决问题,更在于发现问题的特殊性质并加以利用。在本题中,跳跃式调整起点的优化将复杂度从O(n²)降到接近O(n),展现了算法设计的艺术性。
2025-04-13 13:24:28
637
原创 深入理解i++与++i:从语义差异到性能优化
理解++i和i++的区别是成为C++专家的必经之路。语义优先:首先考虑你需要前置还是后置的语义性能次之:在性能敏感处使用++i,特别是对于复杂类型保持一致性:项目中统一风格比微优化更重要信任编译器:现代编译器能处理大多数基本类型的优化最后,建议在代码审查时将"不必要的后置递增"作为检查项之一,特别是在循环和迭代器操作中。这种细节的注意会让你的代码更加专业高效。
2025-04-11 20:41:01
1078
原创 为什么需要同时比较前序和中序遍历来判断二叉树相同?
在二叉树相关算法题中,判断两棵树是否完全相同是一个常见问题。许多开发者可能会疑惑:为什么有时候只需要比较前序遍历,而有时候需要同时比较前序和中序遍历?本文将深入探讨这个问题,并分析两种方法的区别。
2025-04-11 20:32:54
455
原创 深入理解哈希表查找:从两数之和问题看unordered_map的正确使用
正确使用总是使用find()方法检查存在性不要依赖operator[]的副作用理解迭代器和end()的含义根据场景选择合适的查找策略。
2025-04-11 17:10:04
470
原创 c++:为什么 `nums[right]+1 == nums[right+1]` 比 `nums[right+1]-nums[right]==1` 更安全
最近我在解决LeetCode的"Summary Ranges"问题时,发现了一个有趣的现象:两种看似等价的比较方式,在实际编码中却有着不同的安全性表现。在"Summary Ranges"问题中,我们需要判断数组中的数字是否是连续递增的。这提醒我们,在编写代码时,不仅要考虑逻辑正确性,还要考虑计算机系统的实际限制和特性。在大多数现代CPU上,这两种方式的性能差异可以忽略不计。虽然数学上这两个表达式是等价的,但在编程实践中,第二种方式更为安全。虽然两种表达式在数学上是等价的,但在编程实践中,
2025-04-09 17:27:39
294
原创 c++哈希表同构字符串转换
为每个字符串建立字符到标准化字符的映射第一个出现的字符映射为’a’,第二个为’b’,依此类推比较两个字符串标准化后的结果是否相同int x, y;
2025-04-09 15:19:56
361
原创 C++中std::string::substr函数的使用与迭代器的局限性
substr函数是类的一个成员函数,用于从字符串中提取子字符串。pos:表示子字符串的起始位置,默认值为 0,即从字符串的开头开始。len:表示子字符串的长度,默认值为,表示从起始位置到字符串的末尾。返回值:返回一个对象,表示提取的子字符串。这是第一个版本的特化版本,明确指定了起始位置和长度。函数是C++中非常实用的字符串操作工具,它通过索引的方式提供了简单、高效且直观的子字符串提取功能。虽然它不能直接使用迭代器作为参数,但这是出于设计哲学、性能、迭代器动态性以及接口一致性等多方面的考虑。
2025-04-08 20:38:25
2263
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅