自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 控制单元CU

控制单元功能之一就是完成指令的解释过程,包括取指、分析、响应中断等一、微操作命令分析我们知道完成一条指令一共需要4个工作周期:取指:把指令从给定内存单元中取出间址:如果寻址的时候采用的是间址寻址的方式,那就利用间址周期去取指令,然后放到指令的地址码部分执行:完成对操作数的读取和操作中断:有中断的话,就去响应中断,包括保存断点、形成中断服务程序的入口地址、关中断在这四个周期中微操作命令要做什么呢?1、取指还是熟悉的cpu结构图,不过没有了ALU,因为取指阶段我们不需要

2022-10-24 15:15:10 2096

原创 进程互斥的软硬件实现方法

一、单标志法算法思想:两个进程在访问完临界区后会把使用临界区的权限转交给另一个进程。也就是说每个进程讲入临界区的权限只能被另一个进程赋予。特点:每次只允许一个进程进入临界区用turn用于指示被允许进入临界区进程编号,turn=0此时就是P0进入临界区,假设先设置初值为0,让P1先上处理机,那么P1满足while(turn!=1),就会进入循环,直到时间片用完发生调度,换P0上处理机,P0进入临界区,到turn=1这行之后如果要让P1上处理机,P1就可以进入临界区

2022-08-22 11:47:35 1158 1

原创 【数据结构】有向无环图

总结规律有向无环图中,未知变量不能重复,比如上例,只会有一个a、b、c、d、e,但符号个数不变,做题时,我们先根据表达式画出最原始的图,然后再逐步简化,保证变量不重复,即可得到有向无环图最少的顶点个数。有向无环图若一个有向图中不存在环,则称为有向无环图,简称DAG图。比如有一棵树长这样,我们会发现它有重复的地方。还是有重复的地方,再次合并。...

2022-07-19 15:30:03 897

原创 python使用log1p可帮助解决数值右偏问题

在数据预处理时可以对偏度比较大的数据用log1p函数进行转化,使其更加服从高斯分布,此步处理可能会使我们后续的分类结果得到一个更好的结果; 平滑处理很容易被忽略掉,导致模型的结果总是达不到一定的标准,同样使用逼格更高的log1p能避免复值的问题——复值指一个自变量对应多个因变量;log1p的使用就像是将一个数据压缩到了一个区间,与数据的标准化类似。举例用图像表示出来会更加清楚:import numpy as np import matplotlib.pypl...

2022-04-06 19:07:52 2981

原创 三种I/O设备与主机信息传送的控制方式

一、程序查询流程单个设备:cpu首先执行一个输入输出指令,由这个指令发出启动设备的命令,响应的设备接收到信号就开始准备数据,数据准备好再发给cpu,cpu发出启动设备命令,然后检查状态标记,如果准备就绪就开始信息交换,没有就一直等待并循环反复访问检查状态这个过程一共用到三个命令多个设备:按照设备优先级来检查,先检查级别高的整个程序的流程:计数器的值初始设为N,每完成一个字的传输,-1,直到为0,或者也可以设为-N,并且这个负数用补码来表示,每完成一个字...

2022-03-17 19:36:56 3946

原创 【计算机组成原理】 输入输出系统

一、 I/O系统的发展随着计算机的发展,输入输出系统越来越从cpu中分离出来,成为一个独立的个体二、I/O系统的组成分为软件和硬件I/O指令:cpu执行这些I/O指令控制外部设备 格式: 操作码:标志着这条指令是个I/O指令 命令码:指出了这条I/O指令要执行什么样的操作(查询/输入/输出) 控制码:I/O设备的编码(地址)通道指令:通道相当于是个小...

2022-03-16 14:47:10 2684

原创 字符数组简单操作

定义字符是char ,一定是单引号,每次只能赋值一个字符【单引号和双引号在C语言中用于创建两种不同的数据类型】如果希望使用能够容纳不止一个字符的变量,那就要用到字符数组ASCII表 字符数组char c[6]={'h','e','l','l','o'} //这里为什么申请5个空间呢,因为字符数组还会有一个'\0'字符占位,所以5个长度的字符需要6个存储空间字符数组存储字符串,必须存储结束符'\0' scanf读取整个字符串时使用%s,单个字符...

2022-03-04 15:45:59 898

原创 【数据结构】数组与稀疏矩阵

1、数组的存储假如有一个二维数组a[m][n],第一个数据元素a[0][0] 存储地址为 loc(a[0][0]),每个元素所占存储单元为k,则按行存储 loc(a[i][j]) = loc(a[0][0]) + ( i*n + j) * k例:同理可得按列存储 loc(a[i][j]) = loc(a[0][0]) +( j*m +i) * k特殊矩阵的压缩(1)第一类:特殊矩阵的压缩存储(2)第二类:稀疏...

2022-03-03 21:10:54 897

原创 【数据结构】 字符串模式匹配

模式匹配目前有两种方法: BF算法和KMP算法BF算法思路:从目标串的第一个字符和模式串的第一个字符开始,依次比较每个字符,如果相同指针同步后移比较后续字符,如果不同i指针后移一个,j指针回到第一个字符重新匹配,若匹配成功就返回模式串t中第一个字符在目标串中的位置,失败返回0代码:int index(Sqstring s,Sqstring t){ int i=j=1; //下标从1开始 while(i<=s.length&&j<=t...

2022-02-28 13:21:47 1552

原创 【计算机组成原理】总线BUS

为什么用总线??早期计算机都是分散连接,每两个需要通信的设备间会有几百条线进行连接,如果突然加入一个新I/O设备的话,就要再去找很多很多线非常不方便,所以用一条总线把所有要用的设备都连在一起概述总线是连接各个部件的信息传输线,是各个部件共享的传输介质按照计算机所传输的信息种类,计算机的总线可以划分为数据总线,地址总线和控制总线,分别用来传输数据、数据地址和控制信号。总线结构1、 单总线结构框图在许多单处理器的计算机中,使用一条单一的系统总线来连接CPU、主存...

2022-02-26 19:20:26 2549

原创 【计算机组成原理】CPU中断系统

一、中断系统概述1、引起中断的各种因素(1)人为设置的中断这种中断一般称为自愿中断,因为它是程序中人为设置的,故一旦机器执行这种人为中断,便自愿停止现行程序而转入中断处理。(2)程序性事故如定点溢出、浮点溢出、操作码不能识别、除法中出现“非法”等,这些都属于由程序设计不周而引起的中断。(3)硬件故障如插件接触不良,通风不良、磁表面损坏、电源掉电等,这些都属寸硬发备故障。(4)I/O设备I/O设备被启动以后,一旦准备就绪,便向CPU发出中断请求。(5)外部事...

2022-02-26 13:06:14 6261 2

原创 Hive分布式数据仓库

简介Hive是基于静态批处理Hadoop的一个数据仓库工具,通过Hive可以实现将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,同时将sql语句转换为MapReduce任务进行运行,所以其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计。Hive具有sql数据库的外表,但应用场景完全不同,Hive 适合高延迟的查询,Hive并不提供实时的查询和基于行级的数据更新操作,所以Hive 的最佳使用场合是大数据集的批处理作业,例如,网络日志分析Hive特性

2022-02-13 14:50:31 2279

原创 R语言实验三列表和数据框

列表1、创建1.1 创建一个列表L1,记录三位同学的姓名(A,B,C),编号(1,2,3),数学成绩(80,90,95),语文成绩(75,95,80)L1<-list(`姓名`= c('A','B','C'),`编号`= c(1,2,3),`数学成绩`=c(83,77,90),`语文成绩`=c(73,65,82))L11.2 将L1个组件名更改为英文,记为L2L2 <- L1names(L2) <- c('name','id','math','...

2022-02-11 13:52:23 1597

原创 【计算机组成原理】指令流水与指令周期

一、CPU的功能CPU由运算器和控制器构成这些指令还有执行的先后顺序2、CPU结构框图(1)CPU与系统总线只有地址线是单向的

2022-02-07 21:45:15 7124 2

原创 Bert模型

语言表示语言表示有两种类型:1、上下文无关的语言表示,例如 Glove 和 Word2vec,其中词汇表中每个标记的嵌入是恒定的,并且不依赖于单词的上下文。缺点:具有完全不同含义的同一个词将具有相同的表示2、上下文有关的语言表示,例如 Elmo 和 OpenAI-GPT,其中令牌表示取决于使用它的单词的上下文BERT 模型有助于生成每个令牌的上下文表示。它甚至能够获取整个句子、句子对或段落的上下文。BERT 基本上使用了在非常大的数据集上以无监督的方式对模型进行预训练的概念进行...

2022-02-06 14:40:24 892

原创 Python之高阶Pandas的使用(二)

transform今天学习另一个内建方法transform,它与apply方法类似但稍有不同,主要表现在:>transform可以产生一个标量值,并广播到各分组的尺寸数据中>transform可以产生一个与输入分组size相同的对象>transform不可改变它的输入举例df=pd.DataFrame({'key':['a','b','c']*3, 'value':np.random.rand(9)})df按照key分组

2022-01-27 10:15:00 992

原创 python之高阶pandas的使用(一)

用维度表表示重复的值values=pd.Series(['apple','orange','lemon','apple']*2)values去重pd.unique(values)计算每个种类出现次数pd.value_counts(values)我们可以用不同的数字来编码不同的值value=pd.Series([0,1,2,0]*2)valuetake用于恢复之前的字符串dim=pd.Series(['apple','e...

2022-01-19 17:05:17 1275

原创 Python的三个重要函数

一、遍历函数(map)map函数用于遍历序列,对序列中每个元素进行操作,最终获取新的序列。lis=[2,3,4,5]new_list=map(lambda x:x+10,lis)list(new_list)a=[7,8,9,10]b=[10,15,20,25]new_ab=map(lambda x,y:x+y,a,b)list(new_ab)二、筛选函数(filter)filter函数用于对序列中的元素进行筛选,最终获取符合条件的序列ne...

2022-01-17 19:29:26 701

原创 R语言实验二矩阵和数组

1、创建1.1 利用array函数,创建二维数组m1,每一行记录不同人(A,B,C)的各科成绩(math,english,physics),成绩请随意输入(要求每行至少有一个90分以上)m1<array(c(95,40,80,55,92,98,86,93,55), dim=c(3,3), dimnames=list(c('A','B','C'), c('math','english','physics')))m11.2 利用matrix函数,创.

2022-01-03 17:29:16 1997

原创 Bert预训练

Bert模型的目的:预训练Transformer的encoder网络,从而大幅提高准确率1、预测遮挡单词:随机遮挡一个词或多个词,让encoder根据上下文来预测被遮挡的单词2、预测下一个句子:把两个句子放在一起,让encoder判断是否是原文中相邻的两个句子...

2022-01-02 21:48:28 6436

原创 R语言实验一向量

1、创建1.1.1 请利用c函数,输入5门专业课程的名称,组成向量nms。names <- c('语文','数学','英语','历史','物理')print(names)1.1.2 请利用vector函数初始化score向量,记录问题1中5门专业课程的成绩。score <- vector(mode='numeric',length=5)score <- c(85,90,95,75,80)score1.1.3 请创建一向量grade,用逻辑值表示问题1中

2021-12-29 13:39:45 1493

原创 Transformer

Transformer不是循环神经网络,没有循环结构,它也是一种seq2seq模型,主要依赖attention现在的机器翻译一般都用Transformer+bertattention 中有三个参数矩阵 Wk,Wq,Wv【encoder中有Wk,Wv】【decoder中有Wq】值越大,说明q:j与K:i匹配程度越高权重(相关性系数)公式:系数公式:总结一下全过程:根据Sj,先算出q:j ,然后计算k:i(m个k向量,for i=1,2..m),将所...

2021-12-28 19:45:07 1291

原创 attention与self-attention

因为seq2seq模型容易遗忘掉部分信息,引入attention模型,它可以大幅度提高seq2eq模型下图横轴是输入得句子长度,纵轴是模型评价值,BLEU越高说明翻译越准确,可以看到,当字数很长时,翻译得准确率就会降低优点:在attention的机制下,decoder每次更新状态时都会看一眼encoder的所有状态向量避免遗忘,attention还会告诉decoder应该关注哪一个状态(这也是名字的由来)缺电:计算量非常大过程:在encoder输入完最后一个状态向量hm时,de

2021-12-25 21:44:59 852

原创 文本生成与机器翻译

自然语言处理开始形成“基于规则”和“基于统计”的两大阵营基于统计代表:以LSA/PLSA/LDA为代表的先验概率模型 以HMM/CRF为代表的条件概率模型文本预处理主要环节: ◆文本处理的基本方法:分词、命名实体识别、词性标注 ◆词向量表示方法 ◆文本语料的数据分析 ...

2021-12-25 18:34:57 869

原创 流水调度作业问题【回溯】

首先需要明确,流水调度作业问题最佳算法应该是用贪心,这里先介绍回溯再介绍贪心【问题描述】有n个作业(编号为1~n)要在由两台机器M1和M2组成的流水线上完成加工。每个作业加工的顺序都是先在M1上加工,然后在M2上加工。M1和M2加工作业i所需的时间分别为ai和bi (1≤i≤n) 。流水作业调度问题要求确定这n个作业的最优加工顺序,使得从第一个作业在机器M1上开始加工,到最后一个作业在机器M2上加工完成所需的时间最少。可以假定任何作业一旦开始加工,就不允许被中断,直到该作业被完成,即非优先调度。.

2021-12-20 00:37:34 2699 1

原创 【计算机组成原理】寻址方式

为什么要设置多种类型的寻址方式?所谓寻址方式是指:确定本条指令的操作数地址,下一条要执行指令的指令地址寻址方式分为指令寻址和数据寻址两大类。一、指令寻址1、顺序寻址:取完一条,顺序取下一条指令的地址保存在PC中如果内存单元的编制单位是字节:每一条指令的长度是32位(4个字节),顺序寻址时每次就+4;如果是64位(8个字节),每次就+8, 2、跳跃寻址:由转移指令指出它的下一条指令例如图中的第三行,它的目标地址是7,显然就由跳跃寻址来完成...

2021-12-14 16:29:29 4756 2

原创 【计算机组成原理】指令系统

一、机器指令指令由操作码和地址码两部分构成指令的字长:一条指令的长度是多少,分固定字长、可变字长指令的一般格式:1. 操作码操作码用来指明该指令索要完成的操作或是对什么样的数据操作,如加法、减法、传送、移位、转移等。通常,其位数反映了机器的操作种类,也即机器允许的指令条数。(1)当长度固定时:用于指令字长较长的情况,将操作码集中放在指令字的一个字段内,这种格式便于硬件设计,指令译码时间段,广泛用于字长较长的、大中型计算机和超级小型计算机以及RISC中,如IBM370----&gt

2021-12-09 15:36:02 6059

原创 LSTM模型

LSTM比RNN复杂很多,RNN只有一个参数矩阵A,LSTM有4个(遗忘门,输入门,更新值,输出门)LSTM有一个非常重要的传输带Ct,过去的信息通过这个传输带送给下一时刻,不会发生太大变化,并且通过这个传输带避免梯度消失的问题LSTM有很多门让信息有选择的通过遗忘门:将a向量待入sigmod函数得到相对应的f值,然后将这个f值与c传输带相乘得到output,当的值为0时,output也会相应的等于0,那么该条信息就不通过,当值为1时,output输出c本身,该条信...

2021-12-08 20:48:29 10745

原创 Simple RNN模型

适用于:小规模数据集如何对序列数据进行建模?-----> RNN(many to one/many to many)模型我们知道,将一段文字整体输入逻辑斯蒂回归模型时,是属于一对一(one to one)模型,一个输入对应一个输出,这种一对一模型非常适合图片类数据,但不太适合文本数据

2021-12-08 17:38:11 1859 1

原创 R语言之可视化1

导入vcd包,不过暂时不用它画图,我们只是需要vcd包中的Arthritis数据集简单的条形图条形图通过垂直的或水平的条形展示了类别型变量的分布(频数),函数barplot ()的最简单用法是:barplot (height),其中的height是一个向量或一个矩阵。向量载入我们要用到的数据,在关节炎研究中,变量Improved记录了对每位接受了安慰剂或药物治疗的病人的治疗结果:library(vcd)counts<-table(Arthritis$Improved)coun

2021-12-07 17:04:35 3255

原创 【计算机组成原理】存储器原理全章归纳总结

一、存储器的分类 MAR MDR每一行是一个存储单元,由若干存储元构成,每个存储元能寄存一位二进制代码“0”或“1”,由下图可见,一个存储单元可存储一串二进制代码0、1,称这串二进制代码为一个存储字,这串二进制代码的位数称为存储字长。多行构成一个存储体。存储字长可以是8位、16位或32位等,必须是...

2021-12-04 17:27:00 3626

原创 【数据结构】队列相关算法总结

顺序队1、栈与队列的区别栈是允许在一端进行插入和删除队列是在一端插入,另一端删除2.1 非循环非循环初始时front = rear = -1队空: qu.rear==qu.front队满: qu.rear==Maxsize-1元素x进队: 尾指针先后移: qu.rear++ 赋值: qu.data[qu.rear]=x元素x出队: 首...

2021-12-03 16:20:54 2574 1

原创 【回溯法】简单装载问题与复杂装载问题

[问题描述]有n个集装箱要装上一艘载重量为W的轮船,其中集装箱i ( 1≤i≤n)的重量为wi。不考虑集装箱的体积限制,现要这些集装箱中选出若干装上轮船, 使它们的重量之和等于W ,当总重量相同时要求选取的集装箱个数尽可能少。对于第i层的某个分枝结点,对应的调用状态是dfs (num, tw, rw, op,i) ,对应的扩展结点有2个:●选择第i个➢op[i]=1 , num=num+1, tw=tw+w[i], rw=rw-w[i],转到下一个状态dfs(num, tw, rw,op..

2021-11-23 17:49:27 14721 7

原创 R语言之lubridate包的使用

2021-11-20 15:34:43 1320

原创 判断一个数是不是完全平方数的巧妙方法(不用库函数)

给定一个 正整数 num ,编写一个函数,如果 num 是一个完全平方数,则返回 true ,否则返回 false 。不要 使用任何内置的库函数,如sqrt示例 1:输入:num = 16输出:true示例 2:输入:num = 14输出:false妙解完全平方数可以通过累加从1往后的奇数找到,1 = 1;4 = 1 + 3;9 = 1 + 3 + 5;16 = 1 + 3 + 5 + 7;25 =1 + 3 + 5 + 7 + 9;......

2021-11-14 23:03:21 1743 1

原创 【动态规划】leetCode309.买卖股票时机含冷冻期 C语言版

给定一个整数数组,其中第i个元素代表了第i天的股票价格 。​设计一个算法计算出最大利润。在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股票):你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。卖出股票后,你无法在第二天买入股票 (即冷冻期为 1 天)。示例:输入: [1,2,3,0,2]输出: 3解释: 对应的交易状态为: [买入, 卖出, 冷冻期, 买入, 卖出]dp[i]表示第i天可以获得的最大股票利润,为什么用二维数组表示状态呢,因...

2021-11-11 17:38:31 176

原创 【回溯法】n皇后问题并输出每种解的情况 C语言版

问题描述:在n×n的方格棋盘上,放置n个皇后,要求n个皇后两两不在一行,不在一列,不在同一对角线上PS:行不用检测,因为皇后本身就是一行一行往下放的,并且一行只能放一个,所以当放好一个皇后后,只需检测列及对角线的位置有无皇后,如下图这些位置思路 【回溯法】1. 从棋盘的第一行开始,依次遍历所有位置,依次判断当前位置是否能够放置皇后,判断的依据为:同该行之前的所有行中皇后的所在位置进行比较,是否在同一列,或者在同一条斜线上(斜线有两条,为正方形的两个对角线)。...

2021-11-09 21:49:34 5181 1

原创 【数据结构】链栈相关算法总结

1. 假设用I、O表示入栈和出栈操作,栈的初态和终态都为空时合法,设计一个算法判断是否合法区分:判断带头节点的栈空:lst->next=NULL判断不带头节点的栈空: lst=NULL代码int judge(char a[],int n) { //n为元素个数 int i; LiStack *lst; InitStack(LiStack *&lst); //先初始化栈 for(i=0;i<n;i++){ if(A[i]=='I') pu...

2021-11-09 15:39:01 605

原创 【数据结构】详解栈的应用之表达式求值

首先明白:前缀表达式:符号在前,如+ab中缀表达式:符号在中间,如a*b后缀表达式:符号在最后,如ab-举例:求5+7*3*(2+1)思路:准备两个栈,将所有的数字放入左栈,所有的符号放入右栈中缀表达式转后缀表达式的方法:1.遇到操作数:直接输出(添加到后缀表达式中)2.栈为空时,遇到运算符,直接入栈3.遇到左括号:将其入栈4.遇到右括号:执行出栈操作,并将出栈的元素输出,直到弹出栈的是左括号,左括号不输出。(删除)5.遇到其他运算符:加减乘除:弹出所有优先

2021-11-04 16:24:58 11071 10

原创 【剑指 Offer 】11. 旋转数组的最小数字(详细思路+图解+代码)

把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组[3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转,该数组的最小值为1。示例 1:输入:[3,4,5,1,2]输出:1示例 2:输入:[2,2,2,0,1]输出:0思路如下图所示,寻找旋转数组的最小元素即为寻找右排序数组的首个元素nums[x],称x为旋转点。算法流程1.初始化: 声明 ii, jj...

2021-11-03 21:41:52 110

空空如也

空空如也

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

TA关注的人

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