自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 干货获取指南

干货满满

2023-09-06 23:51:08 120

原创 可变形卷积简介(Deformable Convolution)

可变形卷积通过动态调整卷积核的采样位置,增强模型对几何形变(如旋转、缩放)的适应能力。

2025-05-14 22:27:44 1274

原创 LayerNorm vs RMSNorm 技术对比

μ0σ1。

2025-05-12 22:04:41 922

原创 常用激活函数总结

注:门控类激活函数(如SwiGLU)虽性能优,但计算量较大,需权衡效率与效果。

2025-05-12 16:57:40 1090

原创 Python与C++类型对照及常用操作

intint64_ta = 42b = 3.14boolc = Trued = "你好"

2025-05-07 23:54:25 269

原创 C++智能指针简介

智能指针就像你的"智能小管家",帮你自动管理内存,不用再担心忘记释放内存导致泄漏的问题。

2025-05-03 11:23:53 185

原创 如何在纯C中实现类、继承和多态(小白友好版)

个人水平有限,有问题随时交流~

2025-05-02 17:06:41 294

原创 C++ 中 `struct` 和 `class` 的区别(小白友好版)

publicprivatepublicprivatestruct默认全公开,class默认全私有struct其实struct完全可以像class一样使用!下面是一个用structstructclass用struct的情况:• 只是简单存储几个数据(如坐标点、RGB颜色)• 需要所有成员默认可以公开访问• 写小程序图方便时用class的情况:• 需要封装复杂功能(如游戏角色、银行账户)• 需要隐藏内部实现细节• 正式项目开发中更推荐点击查看答案会报错,因为class默认成员是。

2025-05-02 16:41:34 190

原创 Python协程入门指北

协程(Coroutine)就像,能够在执行过程中主动让出控制权,等准备好后再继续执行。

2025-05-01 23:36:42 971

原创 DeepSeek 多头潜在注意力(Multi-Head Latent Attention, MLA)技术

多头潜在注意力(MLA)是Transformer架构的扩展技术,通过。将原始高维注意力矩阵投影到低维潜在空间,降低计算复杂度(从。每个注意力头使用独立的潜在空间基向量,捕获不同语义特征。增强模型对长序列和复杂特征的建模能力。通过可学习参数自动加权各注意力头的输出。个头的潜在空间投影矩阵。

2025-04-27 23:20:49 837

原创 注意力机制全面解析:从MHA到GQA的技术演进

注:在h=64的配置下,GQA(g=8)相比MHA可减少35%内存占用,同时保持98%的模型精度。

2025-04-27 00:20:30 795

原创 【Math】奇异值分解(SVD)详解及 Python 实现

奇异值分解(Singular Value Decomposition,简称 SVD)是矩阵分解的一种方法,它将任意矩阵AAUΣVTAm×nUm×mAATΣm×nAVTn×nATA奇异值分解不仅适用于方阵,也适用于任意矩阵。它在信号处理、图像压缩、降维和推荐系统等应用中有着广泛的应用。

2024-12-01 17:59:19 1970

原创 CycleGAN算法简述

CycleGAN是一种图像到图像的翻译模型,旨在无配对训练数据的情况下完成跨域图像转换。传统方法需要成对的输入-输出数据,但这种配对数据的获取往往代价高昂且难以实现。CycleGAN通过使用无配对数据的训练策略,实现从一个图像域到另一个域的有效转换,使其在艺术风格迁移、季节变化和对象转换等任务中表现出色。

2024-11-09 21:39:07 1633

原创 【Datasets】LLM数据集总结

本文旨在介绍多个用于测试大模型能力的数据集,包括数据集内容、数据量、格式、题型和链接。

2024-10-28 17:13:49 1491

原创 矩阵迹(Trace)的性质及简单推导

迹(Trace)是一个矩阵的对角线元素之和。对于矩阵AAATraceA∑iAiiTraceAi∑​Aii​TraceABTraceBATraceABTraceBA即两个矩阵相乘后的迹不依赖于它们的顺序。∂∂XTraceAXAT∂X∂​TraceAXAT迹函数可以通过矩阵元素的线性组合进行转换,导数为AAA的转置。

2024-10-22 11:32:16 2807

原创 【pytorch】评估计算 PyTorch 模型的 FLOPs 和参数量

在深度学习模型中,评估模型的复杂性和效率时,FLOPs(每秒浮点运算次数)和参数量是两个重要指标。FLOPs 可以衡量模型的计算量,参数量则决定模型的规模和存储需求。将以一个简单的卷积神经网络(CNN)为例,演示如何计算这些指标。

2024-10-16 12:14:18 1301 2

原创 匈牙利算法详解与实现

行减法:每行减去该行的最小值,使每行至少有一个零。列减法:在行减法的基础上,每列再减去该列的最小值,使每列至少有一个零。

2024-09-24 00:48:35 1723

原创 Docker(19.03及其以上版本)配置nvidia-docker指南

确保你的系统上安装了 NVIDIA GPU 驱动程序,并且版本与 Docker 期望的版本兼容。命令,检查输出中是否有 NVIDIA GPU 支持的信息。对于 Docker 版本 19.03 及以上,使用。后,都需要重启 Docker 服务。编辑 Docker 的配置文件。

2024-08-21 14:26:26 2016

原创 torch.einsum详解

用于计算queries和keys张量在注意力机制中的点积,相似性得分。它通过爱因斯坦求和约定指定了如何在多维张量上执行这些操作,使得代码更简洁、效率更高。

2024-08-20 21:41:22 2463 1

原创 【AIGC】因果注意力(Causal Attention)原理及其代码实现

因果注意力(Causal Attention)是一种自注意力机制,广泛应用于自回归模型中,尤其是在自然语言处理和时间序列预测等任务中。它的核心思想是在生成每个时间步的输出时,只关注当前时间步及之前的时间步,确保生成过程的因果性,从而避免模型在预测时依赖未来的信息。

2024-08-15 13:35:33 5699 2

原创 【深度学习】Layer Normalization原理及其代码实现

Layer Normalization 是一种用于归一化神经网络内部激活的技术,旨在提高训练稳定性和速度。与 Batch Normalization 不同,Layer Normalization 对每个样本的特征维度进行归一化,而不是对整个 mini-batch 进行归一化。它特别适用于处理序列数据,如自然语言处理中的模型。

2024-08-05 20:31:52 1256

原创 N-gram 相似度计算与评估

\text{Precision}_{\text{Unigram}} = \frac{\text{重叠的Unigram数量}}{\text{生成文本中的总Unigram数量}} = \frac{5}{6} \approx 0.83 ]\text{Recall}_{\text{Unigram}} = \frac{\text{重叠的Unigram数量}}{\text{参考文本中的总Unigram数量}} = \frac{5}{6} \approx 0.83。

2024-08-02 16:59:09 1735

原创 【目标检测】非极大值抑制(Non-Maximum Suppression, NMS)步骤与实现

计算两个边界框的交集坐标# 计算交集面积# 计算每个边界框的面积# 计算并集面积# 计算IoU= 0 else 0return ioupicked = [] # 存储被选择的边界框索引indexes = np.argsort(scores)[::-1] # 按分数降序排列索引picked.append(current) # 选择当前最高分的边界框indexes = indexes[1:] # 移除当前最高分的索引。

2024-07-25 21:56:26 712 1

原创 【AIGC】多头注意力机制(MHA)的NumPy实现

MHA是Transformer架构中的关键组成部分,它允许模型在多个位置并行地捕捉输入序列的不同方面。与传统的注意力机制相比,MHA通过将输入数据分割成多个头,每个头学习不同的表示,从而增强了模型的表达能力。

2024-07-25 02:21:01 835

原创 浅显理解 线性与非线性

一个函数。

2024-07-01 20:28:49 1541 1

原创 多头注意力模块 (Multi-Head Attention, MHA) 代码实现(pytorch)

定义一个继承自nn.Module的类。定义四个线性层,分别用于查询(Q)、键(K)、值(V)的变换和最终输出的投影。同时定义一个dropout层。

2024-07-01 01:01:53 1907

原创 【深度学习】 卷积(Convolution2D)、最大池化(Max Pooling)和 Dropout 的NumPy实现

水平有限,有问题随时交流~

2024-06-05 21:48:40 493

原创 【机器学习】之 kmean算法原理及实现

K-Means 是一种简单有效的聚类算法,适用于许多实际问题。然而,它也有一些局限性,因此在选择聚类算法时应考虑数据集的特性和具体需求。

2024-05-30 21:45:55 483

原创 【机器学习】之 K-最近邻(KNN)算法原理及实现

K-最近邻(KNN)是一种经典的机器学习算法,适用于分类和回归任务。尽管其简单性和直观性使其在许多应用中表现良好,但在处理大规模数据集和高维数据时,KNN的计算复杂度和存储需求成为其主要限制因素。通过合理选择K值和使用适当的距离度量,KNN可以在许多实际问题中取得令人满意的效果。

2024-05-30 21:36:59 1953

原创 基于BERT模型的文本分类示例

定义一个继承自Dataset的类,用于封装文本数据和标签。# ...(省略类定义的代码以节省空间)使用AdamW作为优化器,并定义交叉熵损失函数。num_training_steps = len(dataloader) * 3 # 假设我们训练3个epoch。

2024-05-21 21:19:06 516

原创 双向长短期记忆网络(BiLSTM)简介

双向长短期记忆网络(Bidirectional Long Short-Term Memory, BiLSTM)是一种改进的循环神经网络(Recurrent Neural Network, RNN),专门设计用于处理序列数据。BiLSTM 能够通过结合前向和后向两个 LSTM 网络的输出来捕捉序列中的双向依赖关系。

2024-05-17 16:16:55 13407

原创 maxpooling2d的C++细节实现

/ 最大池化函数// 实现代码// 计算输出张量的大小// 初始化输出张量float// 对输入张量进行最大池化++i) {++j) {// 计算当前池化窗口的位置// 找到池化窗口内的最大值h < end_h;++w) {

2024-05-09 20:45:56 424

原创 LoRA(Low-Rank Adaptation)原理与应用

LoRA是一种用于调整和微调大型神经网络的技术,特别适用于直接微调整个网络参数成本高昂或不切实际的情况。

2024-04-23 22:08:53 1518

原创 `extern` 关键字的用法cpp

extern关键字在 C 和 C++ 中用于声明变量或函数是在其他地方定义的,它有助于跨源文件共享数据和函数,以及在 C++ 中与 C 语言代码进行互操作。

2024-04-16 17:39:01 568

原创 统计Excel文件中的答案选项和类别

通过这个脚本,我们可以快速地从Excel文件中提取和统计答案选项及职务类别的分布情况,并将结果以JSON格式保存,便于进一步的分析和处理。上述代码和文档中的文件路径和问题列表是示例性的,需要根据实际情况进行调整。在运行脚本之前,请确保您的环境中已安装了。脚本将自动执行统计操作,并将结果保存到指定的JSON文件中。水平有限,有问题随时交流;

2024-04-07 18:37:52 681

原创 Python 中的 `deque` 用法介绍

deque(双端队列)是 Python模块中的一个数据结构,它允许你在队列的两端进行添加(append)和弹出(pop)操作。deque是一个线程安全的双向链表,适用于需要快速添加和删除元素的场景。以下是deque的一些基本用法和特性。

2024-04-02 15:38:39 991

原创 C++ STL中Queue和Stack的用法

队列(Queue)是一种先进先出(FIFO)的数据结构,在C++的STL中由queue模板类实现。// 创建一个整数类型的队列栈(Stack)是一种后进先出(LIFO)的数据结构,在C++的STL中由stack模板类实现。// 创建一个整数类型的栈。

2024-04-02 14:16:55 475

原创 C++ STL中Vector的常用函数和用法

/ 直接初始化一个包含5个整数的Vector。

2024-04-02 12:24:50 473

原创 BERT模型中句子Tokenize和ID转换的过程

当我们使用BERT或其他类似的预训练语言模型时,将句子转换为token的过程通常涉及以下几个步骤:初始化Tokenizer:首先,我们需要导入相应的Tokenizer类,并根据需求选择合适的预训练模型进行初始化。分词(Tokenization):分词是将句子分割成单词或者子词(subword)的过程。这个过程通常包括将句子转换为小写(如果使用的模型支持小写输入)、识别并标记单词边界、将单词分割为子词(如果使用的是基于WordPiece或Byte-Pair Encoding的模型),等等。

2024-03-26 19:10:40 1210

原创 Embedding层的简述及其代码实现

Embedding层是深度学习中常用的一种层类型,主要用于将离散的符号(如单词、字符等)映射到连续的低维稠密向量空间中。它在自然语言处理(NLP)任务中得到广泛应用,用于将词汇表中的单词映射为向量表示,从而方便神经网络模型理解和处理文本数据。

2024-03-26 17:30:37 925

空空如也

空空如也

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

TA关注的人

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