- 博客(1869)
- 资源 (16)
- 收藏
- 关注
原创 ResNet(Residual Network,残差网络)介绍
ResNet(残差网络)是何恺明团队2015年提出的深度卷积神经网络架构,通过引入残差学习机制解决了深度网络的梯度消失和退化问题。其核心是将输入信号通过跳跃连接传递至输出端,使网络只需学习残差映射。
2025-06-04 05:32:15
2
原创 深度学习瓶颈层(Bottleneck Layer)深度解析
瓶颈层是深度学习中一种战略性降维设计,通过在网络中引入压缩-扩展结构,显著提升模型效率与表达能力。
2025-06-04 05:31:41
2
原创 深度学习模型中的“层”概念解析
在深度学习模型中,“层”通常是指模型中具有可学习参数或固定运算功能及构建神经网络的基本构建块,它包含可学习参数或固定计算操作,用于数据变换和特征提取。
2025-06-03 06:38:17
111
原创 【论文笔记】ResNet论文的全面解析
ResNet通过残差学习和深度可扩展性,重新定义了卷积神经网络的设计范式。其技术细节(如Bottleneck结构、全局池化)已成为现代深度学习模型的标配。未来,随着何恺明团队在MIT的AI for Science方向探索(如量子计算),ResNet的思想可能进一步渗透到更广泛的科学计算领域。
2025-06-03 06:38:04
101
1
原创 退化现象中训练误差与测试误差增加原因
深度神经网络中,训练和测试误差同时增加的现象主要源于优化困难而非过拟合。深层网络面临梯度衰减、鞍点密度增加、信息传播损失等问题,导致优化过程恶化。实验数据表明,普通深层网络的梯度信号明显弱于浅层网络,而残差连接等技术能有效恢复梯度传播。理论分析揭示,退化现象本质是深度引发的优化动力学问题,而非模型容量限制,这解释了为何增加层数反而损害性能。该发现为改进网络结构提供了理论基础。
2025-06-02 09:24:52
71
原创 深度神经网络训练中的梯度消失与梯度爆炸问题解析
梯度消失(Vanishing Gradient)和梯度爆炸(Exploding Gradient)是深度神经网络训练中的两大核心问题,尤其在深层网络中表现显著。
2025-06-01 03:05:34
82
原创 神经网络退化现象(Degradation Problem)
摘要:退化现象是深度神经网络的关键挑战,表现为网络层数增加时训练误差和测试误差反而增大。研究发现,这是由于梯度传播困难、优化曲面复杂和信息衰减导致的优化问题(非过拟合)。ResNet通过残差连接(F(x)+x)有效解决了这一问题,使千层网络训练成为可能。该现象揭示了网络表达能力与优化难度间的根本矛盾,推动了批归一化、密集连接等技术的发展,彻底改变了深度学习的架构设计范式。
2025-06-01 03:05:17
133
原创 Softmax 函数:从原理到实现
Softmax 通过指数归一化将实数转换为概率分布,其梯度形式简洁(输出概率与标签之差),便于反向传播。实现时需注意数值稳定性,并避免与损失函数中的内置 Softmax 重复计算。
2025-05-31 06:37:25
295
原创 【标注】COCO数据集格式 的详细解析
COCO数据集采用JSON格式管理标注信息,包含images(图像元信息)、annotations(目标标注)和categories(类别定义)三个核心部分。images记录文件路径和尺寸,annotations存储边界框、分割掩码等标注数据,categories定义类别体系。数据集支持目标检测、实例分割、关键点检测等多种任务,通过不同JSON文件区分。
2025-05-31 06:36:20
14
原创 【标注】VOC数据集格式 的完整解析
VOC数据集是经典的目标检测数据集,其核心结构包含JPEGImages(存放图像文件)、Annotations(XML格式标注)和ImageSets(数据集划分)。
2025-05-31 06:36:01
115
原创 【TensoRRT】trtexec.exe详细使用说明
摘要: trtexec.exe是TensorRT官方命令行工具,用于模型转换、性能测试和网络分析。支持ONNX/Caffe/UFF格式转换,可配置动态输入、FP16/INT8精度及显存优化。性能测试包括延迟、吞吐量及逐层分析。典型场景如静态/动态模型转换、基准测试。常见问题包括CUBLAS报错、动态输入失败和DLL缺失,可通过参数调整或环境配置解决。进阶技巧涵盖混合精度优化、性能调优和自定义插件支持。详细参数可通过trtexec --help查看。
2025-05-30 07:50:35
101
原创 【CMake】CMake命令行参数的详细解析
本文总结了CMake常用命令行参数及其应用场景。主要内容包括:1)基础参数如源码/构建目录指定;2)生成器选项,涵盖Unix/Linux/Windows不同构建系统;3)变量参数,包含构建类型、编译器等关键变量设置;4)构建控制参数,如并行编译和清理选项;5)跨平台构建示例,包括VS、Makefiles和Xcode的使用方法;6)高级技巧如编译数据库生成和组合命令。文章通过典型示例展示了如何灵活运用这些参数进行开发调试、生产构建和跨平台编译,帮助开发者高效管理CMake项目。
2025-05-30 07:50:17
112
原创 【CMake】CMake 编译选项的详细指南
本文详细介绍了CMake中编译选项的配置方法,包括全局选项设置、目标级选项配置、C++标准设置、警告级别控制和优化选项等。
2025-05-29 08:04:37
25
原创 【CMake】CMake 变量的详细解析
掌握 CMake 变量的工作机制,可以帮助您实现更灵活的项目配置和跨平台构建管理。重点理解作用域规则和缓存变量的持久化特性,这将极大提升大型项目的可维护性。
2025-05-28 07:57:32
130
原创 【DLL】C++ DLL 开发中数据结构设计规范
在C++ DLL开发中,平坦数据结构(Flat Data Structure)是确保跨语言和跨模块调用兼容性的关键。它通过使用简单的、非嵌套的数据类型(如基本类型、结构体、固定数组等)来保证内存布局的一致性。
2025-05-27 05:23:32
15
原创 【DLL】Linux动态库生成方法
本文详细介绍了Linux动态库的生成、控制、使用及工程化实践。首先,通过编写源代码并编译生成动态库,展示了基础生成流程。接着,探讨了如何通过显式控制符号可见性和版本脚本来管理动态库的符号。
2025-05-26 09:54:09
346
原创 【DLL】DLL 的导出表详解
理解DLL导出表需要结合PE文件格式与编译器行为,掌握其数据结构、工具分析方法及开发注意事项,才能构建高效、兼容的动态链接库。通过合理设计导出策略(如接口抽象、序号管理),可显著提升DLL的健壮性和可维护性。
2025-05-25 05:38:17
131
原创 【DLL】C++ DLL的封装技术详解
在C++中封装DLL(动态链接库)是构建模块化、可复用代码的关键技术。核心原则包括接口与实现分离、内存安全边界管理,以及高效导出技术。通过抽象接口和统一内存管理,确保DLL的可靠性和跨平台兼容性。实践技巧涉及函数和类的导出、跨语言兼容设计、防御性编程和版本控制。工程化实践包括使用CMake进行跨平台构建和符号可见性控制。调试与验证工具如dumpbin和ldd帮助检查依赖和符号导出。常见陷阱如运行时符号找不到、内存访问冲突和虚函数调用崩溃,可通过统一接口、工厂模式和动态加载解决。
2025-05-25 05:38:01
87
原创 【DLL】DLL头文件中 xx_EXPORTS和xx_API宏的详解
在C++的DLL开发中,xx_EXPORTS 和 xx_API 是两个核心宏,用于管理符号的导出和导入。xx_EXPORTS 宏仅在编译DLL项目时定义,用于标记当前正在生成DLL,而 xx_API 宏则根据 xx_EXPORTS 的存在与否,动态展开为 __declspec(dllexport) 或 __declspec(dllimport),分别用于导出和导入符号。这种机制使得同一份头文件既能用于DLL的编译,也能被客户端项目调用。
2025-05-25 05:37:46
20
原创 【DLL】Linux动态库核心技术和关键字的详细指南
在Linux平台下,生成动态链接库(.so文件)主要依赖GCC/Clang编译工具链和符号可见性控制。
2025-05-24 05:20:40
21
原创 【DLL】Windows 平台 C++ DLL 开发中线程局部存储关键字详解
在Windows平台的C++ DLL开发中,线程局部存储(TLS)是实现线程独立全局变量的关键技术。TLS的两种主要实现方式包括使用__declspec(thread)关键字和Windows TLS API。__declspec(thread)适用于静态加载的DLL,但无法在动态加载的DLL中使用,且初始化值仅对主线程有效。
2025-05-24 05:19:43
19
原创 【DLL】Windows 平台 C++ DLL 开发中跨语言兼容性关键字详解
在Windows平台C++ DLL开发中,实现跨语言兼容性(如C#、Python、Delphi等)需要严格管理接口设计。关键技术和关键字包括:使用extern “C”;禁用C++名称修饰,确保导出函数名称在二进制层面保持原始形式;
2025-05-24 05:19:17
23
原创 【DLL】Windows 平台 C++ DLL 开发中调用约定关键字详解
在 Windows 平台 C++ DLL 开发中,调用约定(Calling Convention)定义了函数参数的传递顺序、堆栈清理责任和名称修饰规则,直接影响 DLL 接口的跨语言调用和二进制兼容性。
2025-05-24 05:18:27
18
原创 【DLL】Windows 平台 C++ DLL 开发中管理符号可见性的核心关键字
在 Windows 平台 C++ DLL 开发中,管理符号可见性的核心关键字是 **__declspec(dllexport) 和 __declspec(dllimport)**。它们用于控制 DLL 接口的导出与导入行为,直接影响动态链接库的可用性、性能和兼容性。
2025-05-24 05:18:13
16
原创 【DLL】Windows 平台 C++ DLL 核心关键字
在 Windows 平台 C++ DLL 开发中,以下是与动态链接库密切相关的核心关键字和编译指令,它们直接影响符号可见性、内存布局和跨模块调用的可靠性
2025-05-24 05:17:39
124
原创 logit, logistic和sigmoid的区别
三者的核心差异在于数学定义和应用场景,但通过Logit-Logistic的互逆关系和Sigmoid的包容性,共同支撑了概率建模与深度学习的底层逻辑。
2025-05-23 03:38:39
326
原创 二元交叉熵损失为何与 logits 结合使用
在二元分类任务中,二元交叉熵损失(Binary Cross-Entropy Loss, BCE)与 logits 结合使用(如PyTorch的BCEWithLogitsLoss)是一种常见且高效的设计。这种设计背后有多个关键原因,涵盖数值稳定性、计算效率和梯度优化等方面。
2025-05-23 03:38:21
516
原创 Focal Loss 和二元交叉熵损失(BCE)损失函数对比
Focal Loss 和二元交叉熵损失(BCE)都是用于二分类或多标签分类任务的损失函数,但它们在解决类别不平衡、难易样本优化等方面有显著差异。
2025-05-22 14:41:22
40
原创 Focal Loss损失函数解析
Focal Loss 是一种专门针对类别不平衡(Class Imbalance)问题设计的损失函数,由何恺明团队在2017年提出,主要用于目标检测(如RetinaNet)和分类任务中。其核心思想是通过调整损失权重,降低易分类样本的贡献,使模型更关注难分类样本,从而缓解类别不平衡带来的训练偏差。
2025-05-22 14:38:09
218
原创 二分类、单标签多分类及多标签分类概念区别
在机器学习和深度学习中,分类任务根据样本与标签的关联方式可分为三种主要类型:单标签多分类、多标签分类和二分类,分别从它们的核心区别、数学原理、应用场景及实现细节的详细对比。
2025-05-22 14:30:54
26
原创 【YOLO】ONNX Opset 版本全解析
通过合理选择 Opset 版本,开发者可在 功能丰富性、性能优化 和 跨平台兼容性 之间找到最佳平衡
2025-05-21 20:58:00
370
原创 【算能】bm_image_alloc_contiguous_mem(_heap_mask) 和 bm_image_attach_contiguous_mem区别
在算能(Sophgo)的 BMCV 库中,bm_image_alloc_contiguous_mem、bm_image_alloc_contiguous_mem_heap_mask 和 bm_image_attach_contiguous_mem 均是用于管理 bm_image 内存的核心接口,但其功能、控制粒度和应用场景存在显著差异。
2025-05-21 14:46:50
17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人