- 博客(106)
- 收藏
- 关注
原创 FlashAttention详解:原理、实现与代码示例
本文详细解析了 FlashAttention 的核心原理,包括其如何优化 GPU 内存访问、减少 IO 开销,以及后续升级版 FlashAttention-2 的改进。同时提供 PyTorch 代码示例,展示如何通过 scaled_dot_product_attention 直接调用 FlashAttention,并对比了其与传统注意力机制的性能优势。
2025-06-11 05:00:00
522
原创 C++中new操作符详解:从基础到高级用法
public:std::cout << "分配 " << size << " 字节\n";std::cout << "释放内存\n";new操作符是C++动态内存管理的基石,但随着现代C++的发展,我们应该:(1)优先使用智能指针而非裸指针(2)优先使用标准容器而非原始数组(3)仅在必要时使用new/delete掌握new的各种用法能让你更好地理解C++内存模型,但记住:现代C++的最佳实践是尽量减少显式的内存管理。
2025-05-12 05:30:00
439
原创 C++ 参数传递详解:值传递、指针传递、引用传递
传递副本:函数接收参数的独立副本,修改副本不影响原始数据。默认方式:C++ 默认使用值传递(除非显式使用指针或引用)。传递地址:函数通过指针直接访问原始数据的内存地址。显式操作:需使用 & 取地址符和 * 解引用操作符。传递别名:引用是变量的别名,直接操作原始数据。隐式解引用:无需显式使用 *,语法更简洁。何时使用哪种方式?(1)是否需要修改原始数据?否 → 使用 const 引用传递(大型对象)或值传递(小型数据)。是 → 进入下一步。(2)参数是否可能为空?
2025-03-03 05:00:00
686
原创 C++ 内联函数详解与示例
内联函数(Inline Function) 是 C++ 中的一种优化机制,通过在编译时将函数体直接“嵌入”到调用处,避免函数调用的开销(如参数压栈、跳转指令等)。它通过关键字 inline 声明,但具体是否内联由编译器决定。何时用:小函数、频繁调用、替代宏。何时不用:复杂函数、虚函数、递归。核心优势:性能 + 类型安全。通过合理使用内联函数,可以在保证代码可读性的同时提升性能,是 C++ 高性能编程的重要技巧!
2025-03-02 16:58:43
467
原创 深入理解递归:从原理到C++实践
递归(Recursion)是编程中一种强大的技术,其核心思想是:函数直接或间接地调用自身。递:不断分解问题(压栈)归:组合子问题的解(弹栈)
2025-02-28 05:15:00
757
原创 C#控件属性详解:按功能分类
通过将C#控件的属性按功能分类,可以更清晰地理解它们的作用和使用场景。无论是布局、焦点、可访问性,还是外观和行为,合理使用这些属性可以帮助你创建出功能强大且用户友好的应用程序。希望本文的分类和示例能为你的开发工作提供帮助!
2025-02-26 04:30:00
454
原创 【C++】udp通信协议详解和示例
UDP(User Datagram Protocol,用户数据报协议)是一种无连接的、不可靠的、面向数据报的传输层协议。它广泛应用于需要高实时性且对数据传输可靠性要求不高的场景,如实时音视频传输、在线游戏等。本文将详细介绍UDP通讯协议的原理、各关键函数的作用及其实现实例,并最后进行总结。
2024-08-19 05:00:00
1813
原创 【Python】nn.Conv1、2、3d()函数详解和示例
卷积神经网络(Convolutional Neural Networks, CNNs)是一种非常强大的模型,广泛应用于图像识别、自然语言处理、视频分析等领域。PyTorch 提供了 nn.Conv1d、nn.Conv2d 和 nn.Conv3d 三个类,分别用于处理一维、二维和三维数据的卷积操作。本文将详细介绍这三个类的函数原型、原理、作用以及示例。
2024-08-19 05:00:00
1295
原创 【C++】类中public、protected和private访问修饰符详解和示例
在C++中,类是一种用户定义的类型,它允许我们将数据和操作这些数据的函数封装在一起。为了确保这种封装的有效性和数据的安全性,C++提供了三种访问修饰符:public、protected和private。这些修饰符定义了类成员的访问权限,即哪些成员可以被类的外部、类的内部或派生类访问。本文将详细探讨这三种访问修饰符的作用、原理、区别,并通过示例进行说明。
2024-08-14 09:51:40
2353
原创 【Python】nn.Container基类Module, Sequential, ModuleList, ModuleDict函数详解和示例
在 PyTorch 中,nn.Container 是一个基类,它并不直接提供实例化对象的功能,而是作为其他容器类(如 nn.Module, nn.Sequential, nn.ModuleList, nn.ModuleDict)的基础。这些容器类在构建和组织神经网络时起着至关重要的作用。本文将详细讲解这些容器的原理、原型、运行实例,并最后进行总结。
2024-08-13 04:15:00
1222
原创 【Python】nn.ConvTranspose1、2、3d()函数详解和示例
在深度学习中,特别是在处理图像、音频和三维数据时,转置卷积(Transposed Convolution)或称为反卷积(Deconvolution)是一种非常重要的操作。PyTorch提供了nn.ConvTranspose1d、nn.ConvTranspose2d和nn.ConvTranspose3d三个函数,分别用于一维、二维和三维数据的转置卷积操作。本文将详细介绍这三个函数的原理、原型及应用示例。
2024-08-12 04:15:00
2022
原创 【Python】nn.nn.CircularPad1、2、3d函数和nn.ConstantPad1、2、3d函数详解和示例
本文将详细介绍nn.CircularPad1d、nn.CircularPad2d、nn.CircularPad3d以及nn.ConstantPad1d、nn.ConstantPad2d、nn.ConstantPad3d的函数原型、用法示例,并总结它们的特点。
2024-08-10 05:00:00
823
原创 【Python】nn.CTCLoss()函数详解与示例
在深度学习领域,特别是在处理序列到序列的预测任务时,如语音识别和手写识别,nn.CTCLoss函数是一个非常重要的工具。本文将详细解析PyTorch中的nn.CTCLoss函数,包括其原理、原型和示例。
2024-08-08 04:15:00
1407
原创 【Python】torch.nn模块中函数详解和示例(一)
本文对nn.AdaptiveAvgPool1、2、3d,nn.AdaptiveLogSoftmaxWithLoss,nn.AdaptiveMaxPool1、2、3d,nn.AlphaDropout、nn.AvgPool1、2、3d,nn.BCELoss、nn.BCEWithLogitsLoss、nn.BatchNorm1、2、3d、nn.Bilinear 17个nn模块的函数进行详解,包括函数原理、详解和示例。
2024-08-06 04:30:00
1291
原创 【Python】多线程详解和示例
在Python编程中,多线程是一个强大的工具,它允许程序同时执行多个任务。尽管Python的全局解释器锁(GIL)在一定程度上限制了多线程在CPU密集型任务中的并行性,但在I/O密集型或等待密集型任务中,多线程仍然能够显著提高程序的执行效率。本文将详细介绍Python中多线程的基本原理、函数使用、示例代码,并在最后给出总结。
2024-08-03 04:30:00
1159
原创 【C++】pthread函数详解和示例
在现代软件开发中,多线程编程已成为提升程序性能和响应速度的重要手段。C++作为一种高效且功能强大的编程语言,通过POSIX线程(pthread)库支持多线程编程。本文将深入探讨C++中pthread库的主要函数,包括它们的原理、应用案例及代码详解,帮助读者更好地理解和应用多线程技术。
2024-08-02 05:00:00
1744
原创 【C++】std::make_shared函数的详解与示例
在C++中,智能指针是一种非常重要的资源管理技术,用于自动管理动态分配的内存,以防止内存泄漏。std::shared_ptr是C++标准库中的一个智能指针类型,它通过使用引用计数来确保当最后一个shared_ptr被销毁或重置时,它所指向的对象也会被自动删除。而std::make_shared则是C++11引入的一个模板函数,用于更高效地创建std::shared_ptr实例。本文将详细解析std::make_shared函数的原理,并提供相关示例。
2024-08-01 04:15:00
8678
1
原创 【C++】多态、继承和封装详解与示例
在C++中,多态、继承和封装是面向对象编程(OOP)的三大核心特性。它们共同支持了代码的复用、扩展和维护。本文将深入解析这三个特性的原理,并通过示例展示它们在C++中的应用。
2024-07-31 05:00:00
814
原创 【C++】std::shared_ptr智能指针详解和示例
在C++中,智能指针是一种用于自动管理动态分配内存的机制,旨在减少内存泄漏和野指针的风险。std::shared_ptr 是C++标准库提供的几种智能指针之一,它通过共享所有权的机制来管理动态分配的对象。本文将详细解析 std::shared_ptr 的工作原理、特性,并通过一个应用案例来展示其在实际开发中的使用。
2024-07-30 04:00:00
1535
原创 【Python】【功能模块化】判断多个目标检测的框与分割的掩码轮廓是否相交,并输出相交面积最大的框
为综合考虑目标检测和目标分割的结果,会将检测框和掩码轮廓综合考虑进行逻辑判断,需要判断目标框与掩码是否相交。本文对目标框与轮廓是否相交、相交面积对比、输出相交面积最大的目标框索引等功能进行实现,并对实现过程模块化前后代码进行展示,以及添加相应效果帮助大家理解和使用。最后把功能模块化,方便复用和调用。
2024-05-31 04:00:00
606
原创 【Python】图像批量合成视频,并以文件夹名称命名合成的视频
一个文件夹中有多个子文件夹,子文件夹中有多张图像。如何把批量把子文件夹中的图像合成视频,视频名称是子文件夹的名称,生成的视频保存到指定文件夹,效果记录。
2024-05-16 04:00:00
712
原创 yolov9文献阅读记录
本文记录了yolov9文献的阅读过程,对主要内容进行摘选翻译,帮助理解原理和应用,包括摘要、主要贡献、网络结构、主要模块,问题描述和试验对比等内容。
2024-04-04 04:15:00
1228
3
原创 多焦点图像融合文献学习(一)
本文介绍的是一篇明为"A convolutional neural network-based conditional random field model for structured multi-focus image fusion robust to noise."的文献,主要包括文献的摘要、前言摘选、主要贡献、网络结构、实验结果及结论等方面。
2024-03-29 04:00:00
1734
原创 微光图像增强算法学习记录(一)
微光图像增强(LLIE)旨在恢复照明并提高微光图像的可见性,本文对阅读的文献进行记录和分享,帮助回顾和大家建立学习资料。
2024-03-24 04:00:00
3026
原创 【Python】深度学习基础知识——梯度下降详解和示例
尽管梯度下降(gradient descent)很少直接用于深度学习,但它是随机梯度下降算法的基础,也是很多问题的来源,如由于学习率过大,优化问题可能会发散,这种现象早已在梯度下降中出现。本文通过原理和示例对一维梯度下降和多元梯度下降进行详细讲解,以帮助大家理解和使用。
2024-03-06 04:30:00
2599
3
原创 【Python】深度学习网络参数管理(查找参数,初始化参数和绑定参数)详解和示例
本文对深度学习网络的每一层参数值查看、初始化和不同层参数值绑定进行详解,并通过两个例子对过程进行可视化,以帮助大家理解和使用。
2024-03-05 04:00:00
2192
原创 【Python】【Opencv】形态学操作cv2.morphologyEx()函数详解和示例,实现腐蚀、膨胀、闭和开等运算
常用的形态学操作如腐蚀、膨胀、开运算、闭运算等,可以帮助我们解决一下图像不连接或消除图像中某些不想要的连接,对于图像处理使用方便,效果明显。本文通过示例对这些功能和效果进行演示,以帮助大家理解和使用。
2024-01-27 04:30:00
7847
2
原创 【Python】torch.no_grad()函数详解和示例
torch.no_grad() 是 PyTorch 中的一个上下文管理器,用于在进入该上下文时禁用梯度计算。这在你只关心评估模型,而不是训练模型时非常有用,因为它可以显著减少内存使用并加速计算。
2024-01-22 04:00:00
6034
原创 【Python代码】以线性模型为例,详解深度学习算法流程,包括数据生成、定义模型、损失函数、优化算法和训练
**使用带有噪声的线性模型构造数据集,并根据有限的数据恢复该线性模型的参数。****其中包括数据集构造、模型参数初始化、损失函数定义、定义优化算法和训练等过程**。是大多数算法实现过程的一个缩影,理解此过程有助于在开发或改进算法时更深刻了解其算法的构造和框架。
2024-01-21 15:46:21
1306
原创 【Python】【Numpy】np.ma.array()函数详解和运行示例
np.ma.array 是 NumPy 库中的一个函数,用于创建一个 Masked Array(带掩码的数组)。Masked Array 是一种特殊类型的数组,其中某些元素可能被标记为无效或缺失。在处理这些数组时,这些被标记为无效的元素将被忽略。
2024-01-20 05:00:00
1118
原创 【Python】箱型图和热图绘制详解和示例
箱型图(Box Plot)和热图(Heatmap)是两种常用的数据可视化工具,它们各自有着不同的特点和用途。在写总结和文献时对数据的表达更加直观,本文对这两种图像的绘制进行详解和示例。
2024-01-17 04:45:00
972
原创 【Python】【Opencv】cv2.findContours()、cv2.drawContours()和cv2.contourArea()函数详解和运行示例
为帮助大家理解和使用cv2.findContours()、cv2.drawContours()和cv2.contourArea()函数,本文通过对函数内容进行详解,并通过运行示例更直观表述。
2024-01-17 04:30:00
10444
1
原创 【Python】tensor格式数据转为图像,并保存图像详解和示例
在项目中遇到一个tensor格式的数据,要保存为图像,此文对转换过程通过示例分享,以记录学习过程和帮助大家遇到同类问题时使用。
2024-01-16 04:45:00
4665
原创 【Python】torch中的.detach()函数详解和示例
在PyTorch中,.detach()是一个用于张量的方法,主要用于创建该张量的一个“离断”版本。这个方法在很多情况下都非常有用,例如在缓存释放、模型评估和简化计算图等场景中。
2024-01-16 04:45:00
6237
原创 【Python】Sigmoid和Hard Sigmoid激活函数对比总结及示例
Sigmoid和Hard Sigmoid是两种常用的激活函数,它们在各自的场景下有着广泛的应用。本文将详细介绍这两种激活函数的基本特性、原型、示例以及它们之间的对比。
2024-01-11 04:30:00
2976
原创 【Python】AttributeError: module ‘torch.nn‘ has no attribute ‘HardSigmoid‘
AttributeError: module 'torch.nn' has no attribute 'HardSigmoid' 这个错误是因为PyTorch的torch.nn模块中并没有HardSigmoid这个函数。是拼写的大小写问题,换成`nn.Hardsigmoid()`即可。
2024-01-11 04:00:00
1317
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人