自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(2333)
  • 资源 (16)
  • 收藏
  • 关注

原创 深度学习-学习知识汇总

翻译:[] [] 翻译:[] [] 翻译:[] [] 翻译:[] [] 翻译:[] [] 翻译:[] [

2024-10-20 18:16:59 506 2

原创 标准瓶颈层代码解析

这个Bottleneck类是深度学习网络设计的经典积木。它巧妙地结合了残差学习、瓶颈结构和参数共享,在计算效率和表示能力之间取得了平衡。理解这个模块对掌握现代 CNN 架构(如 ResNet、EfficientNet、YOLO 系列)至关重要。

2026-03-29 10:23:19 5

原创 深度解析:std::vector::push_back vs std::vector::emplace_back

push_back引入版本:C++98 (C++11 增加了右值引用重载)函数签名// 拷贝插入// 移动插入 (C++11)语义:将一个已经存在的对象(无论是左值还是右值)添加到 vector 的末尾。操作本质拷贝构造或移动构造。它假设对象已经在外部构造好了,vector 只需要把它“搬”进去。引入版本:C++11函数签名语义:在 vector 的末尾原地构造一个对象。操作本质完美转发(Perfect Forwarding)就地构造(In-place Construction)。

2026-03-27 08:24:56 10

原创 C++ protected进一步说明

要理解为什么用protected,首先必须清晰界定它与private和public在继承语境下的本质区别。特性private(私有)protected(受保护)public(公有)类内部访问✅ 允许✅ 允许✅ 允许派生类访问❌禁止(关键区别)✅允许(直接访问)✅ 允许外部代码访问❌ 禁止❌ 禁止✅ 允许设计意图严格封装,实现细节完全隐藏半开放封装,允许子类扩展实现完全开放,作为对外接口耦合度低 (子类不依赖父类具体实现)中/高(子类依赖父类数据布局)极高 (外部依赖父类数据布局)安全性最高。

2026-03-26 08:00:22 11

原创 函数的声明和定义都在头文件中注意事项

问题inline在 C++17 之前只对函数有效。C++17 之前:在头文件中定义全局变量(即使加static或尝试其他方法)通常会导致麻烦。-> 多重定义错误。-> 每个文件一份副本,值不同步。解法:声明用,定义放在唯一的.cpp中。C++17 及以后:可以使用inline变量。// C++17// 安全,所有文件共享同一个变量特性/场景推荐做法关键字风险/备注普通工具函数放在头文件inline必须加inline,否则链接报错。类内成员函数写在类定义内(隐式inline。

2026-03-25 08:16:29 275

原创 一行代码实现读取文件内容并进行清理和分割

这是一条代码,用于读取文件内容并进行清理和分割。

2026-03-24 08:11:40 13

原创 一行代码实现标签过滤功能

这行代码是,用于筛选出包含足够数量标注(至少min_items个目标)的图像样本。

2026-03-23 17:27:52 13

原创 指数移动平均(EMA)模型

EMA 的三大核心帮助:提升精度:通过模型集成效应,提升 0.4~0.6% mAP增强稳定性:降低推理方差 47%,输出更可靠免费增益:几乎不增加训练时间和计算成本✅ 目标检测、分割、分类等 CV 任务✅ 数据集较小或噪声较大✅ 对模型稳定性要求高的部署场景❌ 显存极度受限(单卡 < 8GB)❌ 快速原型开发(可以禁用)❌ 在线学习(需要实时响应)EMA 是深度学习中性价比最高的优化技巧之一,几乎不增加成本却能显著提升模型性能。

2026-03-22 10:11:45 20

原创 C++ inline 函数:全景深度解析

在 C++ 中,inline优化提示(Optimization Hint):建议编译器将函数体直接复制到调用点,以消除函数调用的开销。链接规范(Linkage Specification):允许函数定义在多个翻译单元(Translation Units, TUs)中出现,而不会违反“单一定义规则”(ODR, One Definition Rule)。重要结论:在现代 C++ 开发中,第二点(链接规范)的重要性往往超过第一点。即使编译器决定不进行代码内联,inline。

2026-03-21 16:15:22 445

原创 CSP 瓶颈层代码解释

是 CSP 架构的核心实现,通过引入直接分支解决了深层网络的梯度问题。它以更少的参数实现了更强的梯度流和更好的特征融合,是 YOLOv5 高效性的关键组件之一。理解这个模块对掌握现代目标检测架构的设计思想非常重要。

2026-03-20 08:16:10 21

原创 实例分割近十年发展综述

目标:对图像中每个物体实例进行像素级定位与分类。区别于语义分割:不区分同类不同实例;目标检测:仅提供边界框,无像素级轮廓。核心挑战小目标分割遮挡处理实时性 vs 精度平衡开放词汇泛化能力实例分割的十年演进,本质是从专用到通用、从封闭到开放、从慢速到实时、从像素到语义2017:Mask R-CNN 奠定工程标准;2020:SOLO/YOLACT 打破两阶段垄断;2022:Mask2Former 统一分割范式;2023:SAM 开启零样本新时代;2025+

2026-03-20 08:15:28 329

原创 ++ Lambda 表达式详解

Lambda 表达式是一种匿名函数对象(anonymous function object),它允许你在代码中直接定义一个可调用的实体,而无需提前声明一个命名函数或函数对象(functor)。它本质上是一个闭包(closure)—— 一个函数与其捕获的环境变量的组合。C++ Lambda 表达式是一个强大而精细极大提升了代码表达力和简洁性与 STL、并发、现代 C++ 范式深度集成需要理解其闭包本质和生命周期语义随 C++ 标准不断进化,功能日益强大。

2026-03-18 18:46:36 576

原创 C++ 中 explicit 关键字详解

在 C++ 中,explicit是一个声明说明符构造函数转换函数(conversion functions,自 C++11 起)其核心目的是禁止隐式类型转换(implicit conversions)和拷贝初始化中的隐式调用,强制用户进行显式转换默认将所有单参数构造函数声明为explicit,除非你明确希望支持隐式转换(如对于转换函数,优先使用实现布尔测试,避免“safe bool idiom”的复杂实现。多参数构造函数若不希望被{}隐式调用,也可加explicit(C++11 起有效)。

2026-03-18 18:45:17 524

原创 自适应学习率调控策略

支持余弦退火(Cosine)和线性衰减(Linear)两种模式,用于控制训练过程中学习率的变化。这段代码在每个训练 epoch 结束后,提取当前学习率并更新学习率调度器,实现学习率的自适应衰减。场景下,将学习率调度器的内部计数器设置为正确的起始位置,确保学习率曲线与训练轮次对齐。的关键,通过精心设计的衰减策略平衡了训练初期的探索能力和后期的收敛稳定性。的关键环节,确保学习率按预定策略平滑衰减,同时提供详细的日志记录。将学习率函数绑定到优化器,训练时自动调整学习率。将学习率与其他训练指标一起记录到日志。

2026-03-17 08:08:58 159

原创 计算预测精度的核心函数

函数是评估目标检测和实例分割性能的核心,它计算预测与真实标签之间的 IoU (交并比),并根据多个阈值判断预测是否正确。统一接口: 同时支持边界框和掩码评估多维度评估: 使用多个 IoU 阈值,全面衡量性能冲突处理: 贪婪匹配解决多对多冲突类别感知: 只有类别相同才计算 IoU,避免误匹配高效实现: 向量化计算,避免循环这种设计体现了深度学习评估系统的严谨性和高效性:通过精确的匹配逻辑和多维度的性能指标,提供全面、可靠的模型评估结果。

2026-03-17 08:08:46 259

原创 梯度累积机制实现

的核心作用:计算梯度累积步数:自动适应显存限制保持有效 batch size:尽量接近标称值 64确保最小值为 1:避免 accumulate=0 的错误整数步数:便于实际编程实现✅ 显存小也能训练(batch_size=8 也能达到 batch_size=64 的效果)✅ 超参数一致性(weight_decay 自动调整)✅ 训练效果稳定(有效 batch size 接近标称值)这行代码是 YOLOv5 实现硬件无关训练的关键机制,让模型在不同显存配置下都能获得相似的训练效果。

2026-03-16 09:13:17 237

原创 自动混合精度梯度缩放器使用

将损失乘以一个较大的缩放因子(如 65536),反向传播后得到的梯度也相应放大,转换为 FP32 时避免下溢。将优化器中的梯度从缩放后的 FP16/FP32 恢复到原始 FP32 尺度。执行优化器的参数更新,内部自动处理 FP16↔FP32 转换。,包含梯度反缩放、裁剪、优化器步进和 EMA 更新等关键操作。记录本次优化器更新的迭代次数,用于下次判断累积条件。动态调整下一轮迭代的缩放因子,实现自适应缩放。清空优化器中的梯度缓存,为下一轮累积做准备。限制梯度的 L2 范数,防止梯度爆炸。

2026-03-16 09:13:08 90

原创 Python str 字符串方法的全面、系统、分类详解

场景推荐方法拼接列表 → 字符串安全查找子串.find()清理输入.strip().lower()分割 CSV 行按行处理文本数字字符串补零大小写无关比较批量字符替换/删除📚官方文档参考Python str 文档。

2026-03-15 08:05:12 411

原创 C++ 局部变量悬空指针

C++ 标准规定,解引用悬空指针属于未定义行为。这意味着编译器不做任何保证,程序的行为完全不可预测。特性返回局部变量地址/引用返回static变量地址返回new按值返回安全性❌极度危险 (UB)⚠️ 中等 (线程安全问题)✅ 高 (需正确管理)✅最高生命周期函数结束即失效程序全程有效直到显式删除或智能指针析构拷贝/移动到调用者作用域性能极快 (但无用)快堆分配有开销快 (通常被 RVO 优化)线程安全N/A❌ 否 (需加锁)✅ 是 (每个对象独立)✅ 是推荐指数🚫禁止。

2026-03-15 08:00:37 36

原创 交叉卷积下采样模块代码解释

CrossConv是一个精巧的下采样模块,通过交替应用水平和垂直方向的卷积,在保持计算效率的同时提供了更灵活的特征提取方式。它体现了"分而治之"的设计哲学:将复杂的下采样任务拆分为两个简单的非对称卷积,每个卷积专注于一个维度的处理。这种设计在参数受限的场景下特别有价值。

2026-03-14 08:33:04 200

原创 MinGW vs MSVC:深度全方位对比指南

选择MSVC,就是选择了一条舒适、强大但封闭的 Windows 原生高速公路。你拥有最好的工具、最全的文档和最深的系统集成,但必须遵守微软的规则,且难以脱离 Windows 生态。选择MinGW,就是选择了一把灵活、通用且自由的瑞士军刀。它让你用熟悉的 GCC 命令在 Windows 上工作,轻松实现跨平台,但在处理 Windows 特有深水区功能时会遇到一些摩擦,且需要自己解决 ABI 隔离问题。在 2026 年的今天,专业的大型 Windows 软件开发依然首选 MSVC,而。

2026-03-14 08:32:35 485

原创 C3 模块代码解释

C3模块是 YOLOv5 的标志性组件,它以极简的代码实现了 CSP 架构的核心思想。通过双分支设计、灵活的深度控制和高效的参数利用,C3 在保证检测精度的同时实现了优秀的推理速度。理解 C3 模块是掌握 YOLOv5 架构的关键一步。

2026-03-13 07:35:14 114

原创 MinGW (Minimalist GNU for Windows) 与 MinGW-w64 的终极深度对比指南

MinGW是一个历史名词,代表了 Windows GCC 的早期探索,但已因缺乏 64 位支持和现代化更新而被淘汰。MinGW-w64是真正的继承者和超越者,它不仅解决了 64 位问题,更在 ABI 兼容性、线程模型、API 覆盖率和语言标准支持上达到了工业级水准。记住:在 2026 年,当你听到 "MinGW" 时,请在脑海中自动将其替换为 "MinGW-w64"。除此之外,别无选择。

2026-03-13 07:33:57 265

原创 静态局部变量详解

静态局部变量是指在函数内部使用static关键字声明的变量。它具有局部作用域(仅在定义它的函数内可见),但拥有静态存储期(在整个程序运行期间都存在)。// 静态局部变量x++;注意:尽管名字中有“局部”,但其“静态”属性决定了其生命周期远超普通局部变量。技术上可行(因为作用域在函数内),但如果函数被内联(inline)且在多个编译单元中实例化,C++ 标准保证每个翻译单元的静态局部变量是同一个对象(ODR 合规)。方面C 语言C++初始化仅常量表达式支持动态初始化(构造函数、函数调用)

2026-03-12 08:32:08 398

原创 C++ ODR(One Definition Rule)详解

是 C++ 标准中一项核心语义规则,用于确保程序在多个翻译单元(translation units)中对同一实体的定义保持一致,从而避免链接时或运行时的未定义行为(Undefined Behavior, UB)。简言之:在整个程序中,每个具有外部链接的实体只能有一个定义;对于允许多次定义的实体(如 inline 函数、模板等),所有定义必须完全相同。ODR 不仅关乎“是否重复定义”,更强调“定义的一致性即使没有链接错误,不一致的定义也可能导致静默的 UB。ODR 并不要求所有声明的实体都必须有定义。

2026-03-12 08:31:45 374

原创 = delete 作用详解

delete是 C++11 引入的一项革命性特性在语言层面提供了精确控制函数可用性的能力;将运行时或链接时错误提前到编译期;显著提升了代码的安全性、可读性和意图表达能力;适用于构造函数、运算符、普通函数、模板函数等多种场景;是现代 C++ 资源管理、类型安全和接口设计的核心工具之一。通过合理使用= delete,你可以编写出更健壮、更清晰、更不易出错的 C++ 代码。

2026-03-11 14:50:32 583

原创 C3TR Transformer 模块

C3TR是 C3 模块的高级变体,通过引入 Transformer 提供全局建模能力。它体现了现代深度学习中 CNN 与 Transformer 融合的趋势:用 CNN 处理局部特征,用 Transformer 捕捉长距离依赖。虽然计算成本更高,但在需要全局上下文的任务中可能带来性能提升。这种设计展示了如何在统一框架下灵活替换核心组件,是模块化架构设计的优秀范例。

2026-03-11 08:05:13 541

原创 【框架】flask路由深度解析

路由 (Routing) 是 Web 框架的核心机制,它的作用是将 客户端请求的 URL 映射到 服务器端的处理代码(视图函数)。你可以把路由想象成公司的前台接待员或交通指挥中心:如果没有路由,Web 服务器就不知道当用户访问 时,该执行哪段代码来显示用户 123 的信息。在 Flask(以及大多数 Web 框架)中,一个完整的路由定义通常包含三个核心部分:这是用户浏览器地址栏里看到的字符串模式。这是路由在内部的唯一标识符(ID)。这是当 URL 匹配成功时,实际被执行的 Python 函数。当一个请求到

2026-03-11 08:04:48 592

原创 URL (Uniform Resource Locator) 深度全景指南

即统一资源定位符,是的一个子集。URI:用于唯一标识一个资源(是什么)。URL:不仅标识资源,还指明了获取该资源的具体机制和位置(在哪里,怎么取)。关系:所有 URL 都是 URI,但并非所有 URI 都是 URL(例如 URN是 URI 但不是 URL,因为它只给了名字没给地址)。Q: URL 的最大长度是多少?A: RFC 没有规定上限。但实际上:IE: ~2083 字符。

2026-03-10 08:23:58 762

原创 全栈框架 (Full-Stack Framework):全景深度解析

全栈框架不仅仅是一个 Web 服务器,它是一个完整的开发生态系统。它预设了构建一个标准 Web 应用所需的所有层级,并提供了官方维护的、高度集成的实现方案。覆盖范围:从数据库建模、ORM 映射、表单验证、用户认证、权限管理、后台管理界面、模板渲染、静态文件处理、缓存策略、邮件发送、任务队列,到测试框架和部署脚本。核心理念约定优于配置 (Convention over Configuration)。框架作者基于多年的最佳实践,制定了一套“标准答案”。

2026-03-09 08:06:38 526

原创 微框架 (Microframework):全景深度解析

微框架”中的“微”,绝非指功能弱小或只能做小项目,而是指核心代码库的体积精简和强制依赖的最小化。核心职责边界:微框架通常只负责 Web 开发中最基础、最通用的两个环节:路由分发 (Routing):将 HTTP 请求的 URL 和方法 (GET/POST) 映射到具体的处理函数。请求/响应封装 (Request/Response Wrapping):将底层的 WSGI/ASGI 协议细节封装成易于操作的对象。

2026-03-09 08:06:15 468

原创 C++ 内存顺序(Memory Ordering)全面解析

误区正确理解“用了 mutex 就不需要 memory_order”mutex 保护临界区,但无锁读取仍需 atomic + memory_order“x86 不需要 memory_order”可移植性要求必须使用“Qt 自动处理内存同步”仅信号槽参数安全,成员变量需手动同步“默认 seq_cst 总是安全”安全但性能差,应按需选择最弱序“relaxed 可用于任何原子操作”仅适用于无数据依赖的场景C++ 内存顺序是现代并发编程的基石。它平衡了正确性、性能、可移植性三大目标。你的。

2026-03-08 14:43:16 157

原创 Flask 深度解析:从微内核到企业级架构

Flask 被称为微框架,但这不代表功能微弱,而是指其核心代码库极其精简。核心职责路由映射 (Routing)和请求/响应上下文管理 (Context Management)。不做之事:它不强制你使用特定的数据库(如 Django 的 ORM),不提供内置的用户认证系统,不处理表单验证,也不包含文件上传逻辑。设计意图:这种“做减法”的设计赋予了开发者极高的自由度。

2026-03-08 14:42:39 453

原创 RAII思想详解

RAII(Resource Acquisition Is Initialization)是 C++ 中一种资源管理范式,由 Bjarne Stroustrup 在 20 世纪 80 年代提出。将资源的生命周期绑定到对象的生命周期上:在对象构造时获取资源,在对象析构时自动释放资源。文件句柄(FILE*、fd)网络连接(socket)互斥锁(mutex)图形 API 对象(如 OpenGL/Vulkan 资源)数据库事务内存映射区域临时文件GPU 显存等F f_;

2026-03-07 08:23:43 155

原创 MSVC 编译器全景指南

全称归属: Microsoft Visual Studio IDE 的核心组件,也可作为独立的下载。前端: 专有的 C/C++ 解析器,以极高的容错性著称(能处理大量非标准代码)。后端: 针对 x86, x64, ARM64 架构高度优化的代码生成器,深度理解 Windows 内核调度机制。现状 (2026): MSVC 已彻底摆脱了早期“不支持 C99/C++11”的恶名。现在的 MSVC (VS2022/2026) 是C++23 的完全实现者,并正在逐步落地C++26特性。它也是。

2026-03-07 08:23:09 433

原创 C3SPP 金字塔池化模块

C3SPP是 C3 模块的多尺度变体,通过引入 SPP 实现了并行多尺度特征提取。它用固定的参数量同时处理小、中、大尺度的目标,避免了深层堆叠带来的参数爆炸。这种设计特别适合目标尺寸差异大的检测任务,体现了"一次计算,多尺度收益"的高效思想。理解 C3SPP 有助于掌握多尺度网络设计的核心概念。

2026-03-06 08:09:40 126

原创 MinGW-w64 编译器全景指南

全称本质: 它不是一个独立的编译器,而是一套工具链包装 (Toolchain Wrapper)和运行时库实现。编译器核心: 通常是或Clang/LLVM。二进制工具: Binutils (ld, as, objdump, ar 等)。头文件与库(POSIX 线程模拟),libstdc++(C++ 标准库)。目标: 生成原生的 Windows PE (Portable Executable)文件 (.exe, .dll),不依赖任何第三方 POSIX 模拟层(如 Cygwin 的。

2026-03-06 08:09:14 567

原创 Qt .pro 文件终极详解

预链接步骤# 链接后步骤# 更灵活的方式:定义额外目标告诉编译器“去哪找头文件”,HEADERS告诉 qmake“哪些头文件需要 MOC”,DEPENDPATH告诉 make“哪些头文件变了要重编”。理解这三者的分工,就能彻底掌握 Qt 项目的头文件管理机制。使用静态编译的 Qt 库.pro中设置显式声明所需插件链接必要的系统库(尤其 Linux)一个可独立运行、无需额外 DLL/dylib/so 的单一可执行文件。如果你正在使用Qt 官方在线安装程序开源版默认只提供动态库。使用。

2026-03-05 08:21:41 182

原创 逆残差结构 与 传统残差结构区别

首次提出目的:解决深层网络训练中的退化问题(degradation),而非梯度消失典型形式(Bottleneck)中间通道数少(如 64),两端多(如 256)→ “沙漏”形状所有卷积后通常带 ReLU(包括最后一层)残差连接始终存在(必要时用 1×1 conv 对齐维度)对比维度传统残差结构逆残差结构提出时间设计目标解决深层优化问题构建高效轻量模型通道变化宽 → 窄 → 宽窄 → 宽 → 窄中间卷积标准 3×3 Conv最后一层激活有 ReLU无激活(Linear)残差连接。

2026-03-05 08:18:42 434

原创 MBConv模块详解

MBConv ≈ 逆残差结构 + SE + Swish + 灵活配置如果你把MBConv中的SE模块去掉,把Swish换回ReLU6,固定卷积核为3×3,它基本上就退化回了MobileNetV2的逆残差块。设计哲学的演进MobileNetV2(逆残差):核心思想是“如何用最少的计算做对事情”,追求极致的轻量化。:核心思想是“如何在给定的计算预算下做得最好”,追求精度与效率的帕累托最优。它愿意增加一点点计算(如SE模块)来换取更大的精度提升。如何选择如果你需要在极其苛刻的计算环境。

2026-03-04 08:04:30 184

数字信号处理的FPGA实现_第三版中文及英文版

数字信号处理的FPGA实现_第三版中文及英文版,好书

2015-08-09

MSP430实现无线通信

好资料,大家来看看, ,,,,,,,,,,,,,,,,,,,,,,,,,,呵呵,关于MSP430实现短距离无线通信的

2009-03-24

迪米特法则LoD.zip

迪米特法则LoD.zip

2021-01-10

接口隔离原则ISP.zip

接口隔离原则ISP.zip

2021-01-10

单一原则SRP.zip

单一原则SRP.zip

2021-01-10

开闭原则OCP.zip

开闭原则OCP.zip

2021-01-10

里氏代换原则案例程序LSP.zip

里氏代换原则案例程序LSP.zip

2021-01-10

依赖倒转原则例子程序DIP.zip

依赖倒转原则例子程序DIP.zip

2021-01-10

gimp-master.zip|gimp-master.zip

GIMP对应源代码,里面有很多图像算法,如果想了解其中相关原理,可以参考学习一下,对大家肯定有帮助的

2020-10-17

Linux设备驱动程序第三版(中文版+英文版+配套代.rar)

Linux设备驱动程序第三版(中文版+英文版+配套代)

2014-04-19

Altera FPGA应用设计》配套资料

学习FPGA必须看的书,请下载吧,Altera FPGA应用设计》配套资料

2015-08-09

Linux_device_driver_src

宋宝华的《Linux设备驱动开发详解》第一版的源代码,人民邮电出版社,供有需要的同志使用。

2014-05-08

空空如也

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

TA关注的人

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