自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 RNN模型原理,代码实现

RNN又称循环神经网络,是一种在序列数据处理中广泛使用的神经网络模型。具有循环连接,允许信息在网络中持续传递。能够处理任意长度的输入序列,并且在处理序列时共享参数,这也是该模型在自然语言处理、语音识别、时间序列预测等任务中取得出色表现的主要原因。

2024-01-09 20:05:49 1369

原创 NLP常用编码方式--onehot、word2vec、BERT

BERT编码方式是依赖于huggingface官网所提供的预训练模型进行的,在使用时可以根据文字的具体类型和需要,在官网上下载,并使用pytorch调用模型对数据编码。在下面的示例中,我们首先加载了预训练的 BERT 模型和分词器(one-hot是一种词嵌入方式,编码方式较为较为简单,就是将每一个词或字都表示为一个向量,仅在该词或字所在的位置设置为1,其余位置均为零。在进行自然语言处理时,对文字进行编码一个十分必要的步骤文字编码的目的是将文本数据转换为计算机可以理解和处理的数字表示形式。

2024-01-04 21:51:17 1397 1

原创 (4)Dataset和Dataloader详解

首先让我们来看一下数据在这两个类中是如何流转的,这能够帮助我们更好的了解Dataset和Dataloader的作用方式。例如,选择合适的批次大小、是否打乱数据集、是否利用多进程加速数据加载等,以最优化数据处理的性能和效果。与Dataset相同,Dataloader类也是Pytorch预定义好的一个基类,是Dataset和sampler的组合。函数在每一次的迭代中循环取出数据,并转入到Dataset中对数据进行处理,也就是使用。的数据加载器实例,指定了批次大小、是否打乱数据集、以及加载数据的子进程数量。

2024-01-02 16:03:50 922

原创 隐式建模与显式建模

本文主要记录在阅读有关意图识别与槽位填充联合模型过程中,遇到的隐式建模和显式建模。

2023-12-26 15:36:48 2015 1

原创 自然语言处理入门0

自然语言处理(Natural Language Processing,NLP)是计算机科学和人工智能领域的一个分支,涉及处理和理解人类语言的能力。它致力于使计算机能够与人类语言进行交互、理解和生成自然语言。NLP涉及了多种技术和方法,用于处理和分析文本、语音和其他形式的人类语言数据。

2023-12-24 16:47:42 317

原创 (3)pytorch中构建一个分类器

分类器本质上是一种特殊的神经网络,用于判断输入数据的类别。通常,分类器是由神经网络的最后一层通过一个激活函数进行转换得到的结果。在神经网络中,数据通过多个层进行传递和转换,最终到达输出层。输出层的神经元数量通常与分类任务中的类别数量相匹配,每个神经元对应一个类别。输出层的激活函数决定了输出的形式。例如,在二分类任务中,常用的激活函数是Sigmoid函数,将输出限制在0和1之间表示概率;而在多分类任务中,常用的激活函数是Softmax函数,用于对输出进行归一化,表示每个类别的概率。

2023-12-24 15:15:36 391

原创 (2)pytorch中构建一个神经网络

本文主要讲述了在pytorch框架下,如何构建一个简单的神经网络,并将网络应用于数据的训练当中,主要描述了有关torch.nn常用函数,损失函数,反向传播,网络参数更新等内容。

2023-12-22 12:36:49 1040

原创 (1)pytorch数据处理

主要介绍了有关pytorch张量的数据操作,如何创建张量,如何张量的基础计算,张量的维度变化等信息

2023-12-17 16:52:25 788 1

原创 中文分词(2)--正向、反向、双向匹配

介绍了有关正向、反向和双向最大匹配算法的基础知识,并手动描述具体的实现流程。并使用python分别实现这三种算法

2023-12-12 21:00:14 1754

原创 中文分词(1)--正则表达式

正则表达式是由一系列字符和特殊字符组成的模式,用于描述和匹配字符串的规则。这些函数和方法提供了基本的正则表达式功能,可以用于字符串的匹配、搜索、替换等操作。在编程语言中,通常会提供正则表达式的库或模块,用于处理正则表达式的操作。:在字符串中搜索匹配模式的第一个位置,如果匹配成功则返回一个匹配对象,否则返回。:返回一个迭代器,包含字符串中所有与模式匹配的非重叠子字符串的匹配对象。:从字符串的开头开始匹配模式,如果匹配成功则返回一个匹配对象,否则返回。:返回字符串中所有与模式匹配的非重叠子字符串的列表。

2023-12-12 16:46:01 976

原创 FIFO和LRU实现(含代码)

#include <iostream>using namespace std; const int MAX=6; //主存块数不超过6 int FS=0; //缺页中断次数 double FSL=0.00; //缺页中断率 int M[MAX]; //主存中的内容 int n; //主存块数 struct pro{ int time; //时刻 int P; //页面走向 int F; //缺页中断表示 };//输入信息函数void input(

2021-11-29 10:46:15 457

原创 排序算法的实现与性能比较

任务要求利用随机函数产生不少于30000个随机整数,利用直接插入排序、起泡排序、选择排序、快速排序、堆排序、归并排序等排序方法进行排序,并统计每一种排序上机所花费的时间。系统功能本系统通过rand函数产生相应的随机数,并键盘输入相应的指令来选择相应的排序方式,如直接插入排序、起泡排序、选择排序、快速排序、堆排序、归并排序等。同时利用函数计算不同排序方式排序所需要的时间。系统功能数据的逻辑结构为线性表,直接插入排序的存储结构是顺序存储结构;起泡排序的存储结构是顺序存储结构;选择排序的存储结构是顺序存

2021-01-02 14:53:30 1930 2

编译原理-KMP算法-C++

3.1 KMP算法综述 KMP算法是一个非常优秀的模式匹配算法,其对于任何模式和目标序列,都可以在线性时间内完成匹配查找﹐而不会发生退化,其时间复杂度为o ( mtn)。该算法相对于普通匹配算法的改进在于:每当一趟匹配过程中出现字符比较不等时,不许回溯指针i,而是利用已经得到的部分匹配的结果将模式向右滑动尽可能远的一段距离后,继续进行比较。 3.2 next数组的计算 正确求得next数组是实现KMP算法的关键,它决定了在匹配过程中出现字符不等时,模式串应该向右滑动的距离。next 数组定义如下: 求得next数组后,匹配按照如下方式进行:假设指针﹔和j分别指示主串和模式串中正待比较的字符,令i初值为pos,j的初值为l,若在匹配过程中对应位置字符相等,则i和j增1﹔如果出现不相等的情况,则j退到nextlj的位置继续进行比较。 3.3一行多次匹配的实现 由于原始的MP算法在完成一次模式匹配后会推出算法,想要实现一行多个的模式匹配,需要设计结构存储每一行模式匹配中,模式串出现的位置。因此定义数组linepos[20]来存储模式串在每一行出现的位置。

2023-12-11

编译原理-DFA最小化-C++

(1)分割原理:化简DFA关键在于把它的状态集分成一些两两互不相交的子集,使得任何两个不相交的子集间的状态都是可区分的,而同一个子集中的任何两个状态都是等价的,这样可以以一个状态作为代表而删去其他等价的状态,然后将无关状态删去,也就获得了状态数最小的DFA。 (2)DFA的化简算法 1.首先将DFAM的状态划分出终止状态集K1和非终止状态集K2。 2.对各状态集每次按下面的方法进一步划分,直到不再产生新的划分。 设第i次划分已将状态集划分为k组,即: 对于状态集中的各个状态逐个检查,设有两个状态、,且对于输入符号a,有: F(,a)= F(,a)= 如果和属于同一个状态集合,则将和放到同一集合中,否则将和分为两个集合。 3.重复2直到每一个集合不能再划分为止,此时每个状态集合中的状态均是等价的。 4.合并等价状态,即在等价状态集中取任意一个状态作为代表,删去其他一切等价状态。 5.若有无关状态,则将其删去。 根据以上方法就将确定有限自动机进行了简化,而且简化后的自动机是原自动机的状态最少的自动机。

2023-12-11

操作系统-调度算法-C++

实验实现的是先来先服务和短进程优先这两种调度算法。 先来先服务调度算法是指哪一个进程先到达就先运行那一个进程。 短进程优先调度算法是指除第一个到达的进程外,其余的进程在上一个进程结束之前到达的,谁执行的长度最短就先执行那一个进程。 本次实验使用结构体去存储不同进程的各种信息,同时利用指针去指向不同的进程。利用循环函数去输入和输出不同进程的信息。使用冒泡排序将进程按照到达时间和执行时间去排序。 先来先服务算法只需要将进程按照到达的时间去排序,短进程优先调度算法在按照到达时间排序后,还要按照执行长度将最先到达之外的进程进行排队。

2023-12-10

操作系统-电梯调度算法-C++

扫描算法(SCAN)又称电梯调度算法,是从移动臂当前位置开始沿着臂的移动方向去选择离当前移动臂最近的那个柱访问者,如果沿臂的移动方向无请求访问时,就改变臂的移动方向再选择。

2023-12-10

操作系统-C++-银行家算法

银行家算法主要是为了解决死锁问题。 在有进程提出资源需求的时候,进过计算看将资源给该进程会不会造成死锁,如果不会就分配给该进程,如果会就拒绝进程的资源请求。 使用二维数组来存储进程所需要的资源数量已有资源数量以及进程向计算机提出申请的进程资源数量。同时通过数组和数组之间的计算来比对能不能满足进程的资源需求。 设置一个判断标志check,在判断开始时check=0,第一个进程申请过资源后,一个资源一个资源的进行判断,每满足一个check++,判断到最后如果check的值等于资源的种类,那么就判断剩余资源可否使其他的进程继续进行。 这个时候设置一个判断标识check1,开始时使check1=1,如果不满足其他资源的需求就将check置为0,并输出没有安全序列。如果所有的进程都判断完成,check1=1,就输出一个安全序列。

2023-12-10

空空如也

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

TA关注的人

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