自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 干货获取指南

干货满满

2023-09-06 23:51:08 103

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

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

2024-12-01 17:59:19 1813

原创 CycleGAN算法简述

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

2024-11-09 21:39:07 1471

原创 【Datasets】LLM数据集总结

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

2024-10-28 17:13:49 1277

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

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

2024-10-22 11:32:16 2011

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

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

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

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

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

2024-09-24 00:48:35 1528

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

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

2024-08-21 14:26:26 1717

原创 torch.einsum详解

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

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

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

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

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

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

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

2024-08-05 20:31:52 1079

原创 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 1474

原创 【目标检测】非极大值抑制(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 649 1

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

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

2024-07-25 02:21:01 696

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

一个函数。

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

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

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

2024-07-01 01:01:53 1580

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

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

2024-06-05 21:48:40 431

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

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

2024-05-30 21:45:55 437

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

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

2024-05-30 21:36:59 1773

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

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

2024-05-21 21:19:06 477

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

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

2024-05-17 16:16:55 9987

原创 maxpooling2d的C++细节实现

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

2024-05-09 20:45:56 375

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

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

2024-04-23 22:08:53 1238

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

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

2024-04-16 17:39:01 546

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

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

2024-04-07 18:37:52 607

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

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

2024-04-02 15:38:39 895

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

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

2024-04-02 14:16:55 452

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

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

2024-04-02 12:24:50 422

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

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

2024-03-26 19:10:40 1078

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

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

2024-03-26 17:30:37 838

原创 C++ 中的 unordered_map 用法文档

是 PyTorch 中用于生成标量张量的函数之一。它会创建一个包含一个元素且值为1的标量张量,通常用于表示单个数值,比如损失函数的值或者模型的参数初始化值。

2024-03-25 20:06:51 436

原创 细节之PyTorch 中的 torch.ones([])

是 PyTorch 中用于生成标量张量的函数之一。它会创建一个包含一个元素且值为1的标量张量,通常用于表示单个数值,比如损失函数的值或者模型的参数初始化值。

2024-03-25 16:01:31 836

原创 注意力机制与交叉注意力:理论、公式与实现

在自然语言处理(NLP)和深度学习领域,注意力机制和交叉注意力是两种强大的技术,它们允许模型在处理序列数据时动态地聚焦于最重要的部分。本文将介绍这两种机制的数学原理,并通过代码示例展示如何在PyTorch中实现它们。

2024-03-22 11:53:31 5083

原创 解决 Jupyter Notebook 中没有显示想要的内核的问题

如果在 Jupyter Notebook 的 “Kernel” 菜单中没有显示你想要的内核(kernel),可能是因为该内核没有正确安装或配置到 Jupyter Notebook 中。:如果内核仍然没有出现在 “Kernel” 菜单中,你可以尝试手动将内核添加到 Jupyter Notebook 中。是你想要添加的内核的名称,安装完成后,重新启动 Jupyter Notebook,然后尝试切换到你添加的新内核。安装完成后,重新启动 Jupyter Notebook,然后尝试切换内核。

2024-03-21 16:21:56 4902 1

原创 FLOPS 与 FLOPs 的区别解析

概念不同:FLOPS 表示每秒浮点运算次数,是计算设备的计算性能指标;而 FLOPs 表示模型中的浮点运算操作总数,是模型计算复杂度的指标。应用不同:FLOPS 用于评估计算设备的处理能力和性能;FLOPs 用于衡量模型的计算复杂度和计算量。单位不同:FLOPS 的单位是每秒浮点运算次数(如 TFLOPS、GFLOPS);FLOPs 的单位是浮点运算操作总数(如 MFLOPs、GFLOPs)。水平有限,有问题随时联系;

2024-03-21 15:32:47 2951

原创 Domain Adaptation模型之pix2pix原理简介

pix2pix和CycleGAN是两种基于深度学习的图像到图像翻译模型,它们在图像风格转换、图像修复、图像增强等多个方面都有广泛的应用。通过理解它们的原理和网络结构,我们可以更好地应用这些模型来解决实际问题,并推动计算机视觉领域的发展。

2024-03-18 20:00:07 755

原创 多模态模型之CLIP模型简介

CLIP 模型通过对比学习实现了图像和文本之间的跨模态理解,为多种任务提供了强大的支持。

2024-02-27 21:53:43 6979

原创 快速排序、归并排序和堆排序的原理与实现

归并、快速,堆排序

2024-02-23 19:39:44 476

原创 如何在python中找到函数所在文件的位置

Python中如果我们想知道api函数所在文件的位置,可以如下操作。

2024-02-23 11:12:05 919

原创 直方图均衡化原理与代码实现

直方图均衡化是一种有效的图像增强技术,通过调整图像的灰度级别分布,改善图像的对比度和细节。在实际应用中,根据具体任务需要,可以选择是否使用直方图均衡化以及调整参数以达到最佳效果。

2024-01-31 21:58:11 668

空空如也

空空如也

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

TA关注的人

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