- 博客(93)
- 问答 (10)
- 收藏
- 关注
原创 大模型推理两种实现方式的区别:model.generate()和model()
简而言之,`model()`更通用,用于标准的前向运算,而`model.generate()`则专门用于自动文本生成任务,提供了多种文本生成策略的支持。- **`model.generate()`的使用场景**:当你需要模型自动生成文本或序列,尤其是在语言模型中,如GPT、T5等。- **`model()`的使用场景**:当你需要对输入数据执行一次完整的前向计算时使用,如分类任务、特征提取等。- `token_type_ids`: (可选,主要用于BERT等模型)区分句子A和句子B的二进制张量。
2024-04-30 12:14:04
6452
1
原创 大模型推理--KV cache解读
在大型模型推理过程中,尤其是在使用Transformer架构的语言模型中,KV缓存(Key-Value缓存)是一种重要的技术,用于存储和重用在模型的自注意力(Self-Attention)层中计算得到的信息。这种缓存机制在生成性大型语言模型(如GPT系列)进行连续令牌生成时尤为关键。
2024-04-05 16:02:49
1463
原创 nn.Embedding详解
是 PyTorch 中的一个模块,用于将离散的单词或标签等转换成一个固定大小的连续向量,通常在处理自然语言处理任务时用于单词的向量表示。创建了一个嵌入矩阵,每一行代表一个单词的向量。当索引通过嵌入层时,它会返回相应的词向量。包含了词汇表中的单词索引,
2024-02-16 11:08:57
829
原创 马尔科夫链--基础知识
马尔可夫链(Markov Chain)是一种数学系统,它经过从一个状态到另一个状态的转换,这些转换遵循马尔可夫性质,即未来的状态只依赖于当前的状态,而与过去的状态(即如何到达当前状态)无关。马尔可夫链最核心的特点是它的无记忆性,这意味着过程的未来仅与当前状态有关,这与许多自然和人工过程的特点相符。这个矩阵表示,如果今天是晴天,那么明天有 90% 的几率还是晴天,10% 的几率变成雨天;如果今天是雨天,明天有 50% 的几率是晴天,也有 50% 的几率仍然是雨天。马尔可夫链是指具有马尔可夫性质的随机过程。
2024-02-05 08:30:35
821
原创 概率论中的全概率公式、贝叶斯公式解析
全概率公式是用来计算一个事件的概率,这个事件可以通过几个互斥事件的并集来表示。这几个互斥事件称为“完备事件系”。实质是由原因推结果。贝叶斯公式是条件概率的一个应用,它描述了两个事件的关系,其中一个事件发生后,对另一个事件概率的影响。实质是由结果推原因。
2024-02-02 15:43:40
1870
原创 repeat()和expand()函数详解
方法常用于将一个小尺寸张量扩展为更大尺寸以进行广播操作,特别是在矩阵运算或批处理中。一个新的视图,它在不复制数据的情况下呈现了更大尺寸的张量。一个新的张量,是原始张量沿着各个维度重复后的结果。方法可以创建重复元素的新张量,用于各种批处理或数据增强操作。方法返回一个新的视图,它将张量的大小扩展到更大的尺寸。方法对张量的元素沿着指定的维度进行重复。
2024-02-02 13:37:24
935
原创 PyTorch的 torch.unsqueeze() 和 torch.squeeze()方法详解
注意:在实际代码中,返回的张量通常会共享输入张量的数据,除非必须复制(比如要求返回一个不同内存的张量)。: 减少张量的维度,常用于移除批处理维度或任何大小为1的维度。: 增加张量的一个维度,常在希望增加一个批处理维度时使用。一个新的张量,它与输入张量。一个新的张量,它与输入张量。有着相同的数据,但是移除了所有指定的单维度。有着几乎相同的数据,但是增加了一个维度。返回一个新的张量,该张量为指定位置。返回一个新的张量,它会移除。增加了一个大小为1的维度。
2024-02-01 14:21:45
1005
原创 Python中 pickle 模块的 dump() 和 load() 方法详解
定义: 将 Python 对象序列化并写入到文件对象。参数:返回值: 无返回值。用途: 将 Python 对象序列化保存到文件中。代码示例: 定义: 从文件对象中读取序列化的数据,并将其反序列化为 Python 对象。参数:返回值: 反序列化后的 Python 对象。用途: 从文件中恢复 Python 对象。代码示例:
2024-02-01 14:07:05
2178
原创 机器学习和深度学习中的normalization(归一化)
在机器学习和深度学习中,normalization(归一化)是一种重要的数据预处理步骤,它的目的是改变数值数据的形式,以使其在一个固定的范围内,通常是 0 到 1,或者使其均值为 0,标准差为 1。归一化对于优化算法(如梯度下降),以及能够有效地训练深度学习网络是非常重要的。
2024-01-30 16:37:19
932
5
原创 PyTorch中torch.cat函数和torch.stack函数说明
定义: → Tensor参数:返回值:用途:定义: → Tensor参数:返回值:用途:
2024-01-19 16:20:07
847
原创 pandas中iloc和loc的用法和区别
都是用于数据选择的方法,它们是 DataFrame 和 Series 对象的索引选项。,因为它使代码更容易理解。当你需要基于位置进行纯粹的基于位置的索引时,比如选择第n行或第n列,不管它们的标签是什么,使用。更适合你只知道行或列的位置索引时使用。在处理有具体行索引或列索引名的DataFrame时,通常更倾向于使用。需要注意的是,如果行标签恰好也是整数,这可能会导致一些混淆,因为。这时,清晰地知道何时使用基于标签的索引(更适合当你知道具体的行标签或列名时使用,而。)和何时使用基于位置的索引(
2024-01-16 16:57:47
665
原创 Pytorch中torch.rand()、torch.randn()、torch.randint()、torch.randperm()几个函数的说明
斯分布)的随机数张量。这在需要正态分布随机数的场景下使用,如权重初始化或概率模型的输入。
2024-01-15 17:26:08
1535
原创 Pytorch中的标准维度顺序
这种维度顺序在处理图像数据时特别常见,尤其是在使用卷积神经网络(CNN)时。例如,一个包含64张RGB图像(每张图像分辨率为28x28像素)的批次将会有一个形状为。在PyTorch中,如果一个张量包括通道数(C)、宽度(W)、高度(H)和批量大小(N),那么它的标准维度顺序是。
2024-01-14 19:37:20
1127
原创 pytorch中tensor的shape属性输出结果解析
在每种情况下,这些数字表示张量在各个维度上的长度或大小,它们的具体含义取决于张量在模型或计算中的角色。例如,在处理图像数据时,维度通常对应于颜色通道、像素的高度和宽度;而在处理一般的数据集时,它们可能对应于样本数和特征数。表示张量在其两个维度上的大小。在不同的上下文中,这可以有不同的含义。例如,它可能表示一个25x25的矩阵,或者是一个包含25个样本的数据集,每个样本有25个特征。中的位置和它们的值有特定的含义,这些含义通常与张量在何种计算中使用有关。属性描述了张量的维度。在PyTorch中,张量的。
2024-01-14 19:32:34
1665
4
原创 基础算法---排序
基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。复杂度:时间复杂度O(nlogn)
2023-12-26 21:15:55
527
原创 PyTorch中关于dataset和dataloader长度问题
下面所述,均基于FahsionMNIST数据集的训练集而言,该数据集包含60000个训练样例和10000测试样例,分为10个类别。
2023-12-26 21:10:44
2094
4
原创 基础算法---差分
说明:二维差分是指对于一个n*m的矩阵a,要求支持操作pro(x1,y1,x2,y2,a),表示对于以(x1,y1)为左上角,(x2,y2)为右下角的矩形区域,每个元素都加上常数a。// 假设数组a的差分数组为b,即b[i] = a[i] - a[i - 1], 当i = 0时,b[i] = a[i]// 给以(x1, y1)为左上角,(x2, y2)为右下角的子矩阵中的所有元素加上c。
2023-10-05 10:12:22
249
1
原创 基础算法---前缀和
preSum[ i] [ j] = preSum[i - 1] [ j] + preSum[ i] [ j - 1] - preSum[i - 1] [ j - 1] + a[ i] [ j] (当i,j= 0时,preSum[ i] [ j] = a[ i] [ j]) || preSum[i] = preSum[i - 1] + a[i] (当i = 0时,preSum[i] = a[i]) |// 预处理之后,求[l, r]的区间和为preSum[r] - preSum[l - 1];
2023-10-05 10:10:35
226
原创 图论---拓扑排序
如果图中有入度为 0 的点,就把这个点删掉,同时也删掉这个点所连的边。一直进行上面的处理,如果所有点都能被删掉,则这个图可以进行拓扑排序。重复上面两步,直到所有顶点都输出,拓扑排序完成,或者图中不存在入度为零的点,此时说明图是有环图,拓扑排序无法完成,陷入死锁。(有向无环图)上的节点进行排序,使得对于每一条有向边u->v,u 都在v之前出现。for (auto v : G[u]) { // 删除与节点u直接相连的边。if (--in[v] == 0) { // 出现新入度为零的节点入队。
2023-10-04 16:08:21
707
原创 图论---图的遍历
visited[tx][ty]) { // 如果节点没被访问过。i++) { // 开始想当前节点的四个方向左右上下去遍历。// 队列添加该节点为下一轮要遍历的节点。// 只要加入队列,立刻标记为访问过的节点。que.empty()) { // 开始遍历队列里的元素。// 起始节点加入队列。
2023-10-04 15:03:29
656
原创 图论---图的存储
/ j为a的出边, v为权重。// ne 数组:由于是以链表的形式进行存边,该数组就是用于找到下一条边;// he 数组:存储是某个节点所对应的边的集合(链表)的头结点;// 代表从 a 到 b 有一条权重为 c 的边。// 为每一条边进行编号。// e 数组:用于访问某一条边指向的节点;// w 数组:用于记录某条边的权重为多少。g[a][b] 存储边a->b的距离。// 又叫做链式向前星存储(头插法)// 添加一条a到b的边,权重为c。
2023-10-04 15:01:26
573
3
原创 图论---最小生成树问题
在连通网的所有生成树中,所有边的代价和最小的生成树,称为最小生成树。解决最小生成树问题一般有两种算法:Kruskal算法和Prim算法。
2023-10-03 09:59:21
766
原创 图论---最短路径问题
原理:Floyd本质上是一个动态规划的思想,每一次循环更新经过前k个节点,i到j的最短路径。用途:Floyd算法是求解多源最短路时通常选用的算法,经过一次算法即可求出任意两点之间的最短距离,并且可以处理有负权边的情况(但无法处理负权环时间复杂度为O(n3)。代码框架:// 代码初始化,共有n个顶点i < n;i++){j < n;// 将每条边的值加入到dis中去,这里不再赘叙// Floyd算法k < n;k++){i < n;i++){j < n;
2023-10-03 09:55:53
1750
原创 计算机网络套接字编程实验-TCP多进程并发服务器程序与单进程客户端程序(简单回声)
学生客户端与服务器收发数据时均未进行PDU字节序转换,本地测试看起来一切正常,但究其根本,是因为学生客户端与服务器程序虽未遵循网络字节序规范,但相当于遵循了无需字节序转换的自定义协议规范,且客户端、服务器进程都运行在同一主机上,因此字节序问题并不会暴露。·若服务器启动时设定 Established Queue的长度,即listen()第二个参数backlog为2,则最多可 以有2个客户编同时连上服务器并开展交互,此时,再启动另一个客户端连接服务器,观察体验是什么现象,并尝试分析现象背后的底层逻辑。
2023-06-30 10:42:46
1869
1
原创 计算机网络套接字编程实验-TCP单进程循环服务器程序与单进程客户端程序(简单回声)
本实验不考核以下内容:SIGPIPE信号处理、基于多次读取的PDU完整获取、PDU完整设计(仅要求PDU负载,不涉及头部以及头部的长度字段)、PDU字节序转换(本实验仅涉及套接字地址的字节序转换)。当网络与主机环境均比较理想时,可以支持客户端与服务器实现对于PDU的「一次性收发」,即仅通过 read()/write()的一次调用,即可实现PDU(本实验中即消息/消息回声)的「完整收发」。本实验不设置复杂业务,仅要求实现简单的消息回声服务,以帮助理解并构建单进程循环服务器程序与单进程客户端程序的基本框架。
2023-06-30 10:15:47
2917
3
原创 ARM第五章平时作业
(注:只需写出相关指令代码,不需要写出完整的汇。(注:只需写出相关代码,不需要写出完整的程序结构)(双缓冲模式:脉宽调制定时器有一个双缓冲功能 ,在这种情况下,改变。因此,尽管设置一个新的定时器值,当前定时器的操作将会继。请求信号仍然有效,则传输马上再次开始,否则等待;中相关接口的控制寄存器的访问,可以直接使用该。源设备在系统总线,而目标设备位于外围总线;源设备在外围总线,而目标设备位于系统总线。请求信号变得无效后,下一次请求到来时,不会进行下一次传送,而是要等待,直到。在握手模式下:如果一次传送结束,
2023-06-30 09:39:44
668
原创 ARM第三、四章平时作业
器间接寻址、基址变址寻址、多寄存器寻址、堆栈寻址、相对寻址。:分支指令、数据处理指令、存储访问指令、协处理器指令和。:立即数寻址、寄存器寻址、寄存器移位寻址、寄存。经编译后,所得到的机器码的低。寄存器中的内容将存放在地址为(存器中的内容将存放在地址为()的存储单元的值,将出栈到。
2023-06-30 09:28:29
1266
原创 ARM第二章平时作业
来使用,而不必与被中断服务程序使用同一组寄存器,这样就免去了因寄存器冲突而必需的。(2)内嵌的桶形移位器产生了更为复杂的指令,扩展了指令的功能,因此改善了内核。(1)专门为快中断配置了较多的私有寄存器,从而可使中断服务程序有足够的寄存器。当异常发生,进入异常运行模式的时候,处理器会自动禁用中断和快中断,以确保异常。中断控制器用于中断源和处理器之间,主要用于对处理器可以接收中断源的数目进。级流水线设计中,计算访存指令访问存储器的地址的操作,是在哪个阶。:中断、快中断、复位中断、软中断异常、预取指。
2023-06-30 09:22:58
923
原创 ARM第一章平时作业
(7)Zephyr:Zephyr 是一个轻量级的、实时的、开源的嵌入式操作系统,支持多种 CPU 架构和硬件平台。它提供了丰富的任务调度、同步和通信机制、文件系统和驱动程序等功能,并具有灵活的可裁剪性和易于使用的 API。它具有可裁剪的内核、简单易用的 API 和可靠的内存管理机制,并支持多个 CPU 架构和硬件平台。它具有可裁剪的内核、低开销的任务切换机制和优秀的性能和可靠性。(5)QNX:QNX 是一个实时的、分布式的嵌入式操作系统,被广泛应用于工业控制、汽车、医疗设备等领域。
2023-06-30 09:18:47
789
原创 ARM实验-ARM主程序调用ARM/C语言子程序
2)调用C语言函数前SP寄存器的值以及C函数返回后SP寄存器的值没有发生变化,进入C语言函数时,会先进行现场保护将会用到的寄存器压栈保存,此时SP的值变小,C语言函数执行完之后,会进行恢复现场的出栈操作,SP值变大,恢复到调用C语言函数前的值。函数的接收到的六个参数分别为0x01、0x02、0x03、0x04、0x05、0x06,经(i1+i2+i3+i4)*i5-i6运算后结果为0x2C并返回,从R0的值为0x2C可以看出,ARM程序成功接收到C语言函数返回值。把调用子程序的程序称为“主程序”。
2023-06-29 09:36:41
1851
原创 ARM实验-C语言主程序调用ARM子程序
与内联汇编不同,嵌入式汇编具有真实汇编的所有特性,数据交换符合 ATPCS 标准,同时支持 ARM 和Thumb,所以它可以对目标处理器进行不受限制的低级访问。所谓内联汇编程序,就是在 C 程序中直接编写汇编程序段而形成一个语句块,这个语句块可以使用除了 BX 和 BLX之外的全部ARM指令来编写,从而可以使程序实现一些不能从C获得的底层功能。(1)C语言调用ARM子程序时,在输入参数多余4个(比如是6个)的情况下前四个参数通过R0-R3传递,后面多余的参数会按照从右向左的顺序压栈。
2023-06-29 09:33:46
1655
原创 操作系统综合题
(3) 由于文件的索引结点已在内存,为了访问文件中的某个位置的内容,最少需要1次访问磁盘(即通过直接地址直接读文件盘块),最多需要4次访问磁盘(第一次是读三次间址块,第二次读二次间址块,第三次读一次间址块,第四次是读文件盘块)(2分)答:问题1)由已经分配的资源数可知,当前可用资源的数量为(0,2,1),即初始Work=(0,2,1),按照银行家算法可以得出如下的分配过程:(后两列每空0.5分)2)现在进程P2再发出请求(A=0, B=2, C=0),请问是否可以满足该分配请求。
2023-06-28 20:44:28
691
原创 数据库原理及应用第四次课程大作业
(2)使用DriverManager.getConnection(String url, String user, String pwd) 建立与数据库的连接,返回表示连接的Connection对象,url指明数据库服务器名、端口号及数据库名, user 指明具有连接权限的用户名,pwd是指明用户user的口令;从技术层面如何保护用户个人隐私和机构商业机密?(1)保护用户权益:作为信息服务的提供者,运营者和维护管理人员需要遵守相关的法规和职业道德规范,确保用户的个人隐私得到保护,并且不会被滥用或泄露。
2023-06-28 20:42:39
1088
原创 数据库原理及应用第三次课程大作业
总之,为了应对电商系统的高并发访问、高性能存取和可扩展应用需求,在商品销售数据库设计与实现中,需要使用适合高并发、高性能和可扩展应用的数据库,并采用一系列优化措施,例如缓存技术、数据库分表和分区、数据库索引优化、数据库集群和读写分离、异步处理和队列技术等。(1)数据库选择和架构设计:选择适合高并发、高性能和可扩展应用的数据库,例如MySQL、PostgreSQL等,使用分布式数据库架构设计,利用多个节点分摊读写请求,提高数据库的性能和可扩展性。开发人员还应该保持透明度,告知用户数据是如何使用和共享的。
2023-06-28 20:23:51
850
原创 数据库原理及应用第二次课程大作业
首先进行笛卡尔积操作,将College表和Teacher表进行连接,得到的结果集再进行筛选,选出CollegeName为“软件学院”的记录,最后进行投影操作,输出需要的三个属性。首先进行连接操作,连接College表和Teacher表,得到结果集后再进行筛选操作,选出CollegeName为“软件学院”的记录,最后进行投影操作,输出需要的三个属性。代价包括两个关系表的I/O代价和连接代价,连接代价为O(Teacher),筛选代价为O(Teacher),投影代价为O(Teacher)。
2023-06-28 20:09:29
710
原创 数据库实验-图书销售管理系统数据库安全管理
在数据安全存取模型中,需要设计数据库的角色、角色的数据库对象操作权限、数据库用户、数据库用户的角色赋予,以及数据库对象的操作权限集合。通过本次实验,我了解了该DBMS系统对数据库管理的内容与方法,特别是理解了数据库安全机制和作用,以及PostgreSQL数据库角色管理、用户管理、权限管理的基本方法,培养了我的数据库管理能力。了解该DBMS系统对数据库管理的内容与方法,特别是理解数据库安全机制和作用,以及PostgreSQL数据库角色管理、用户管理、权限管理的基本方法,培养数据库管理能力。
2023-06-28 17:47:24
781
空空如也
大型程序划分成源文件和头文件出现问题
2021-12-25
C语言一个全局变量突然数值变得很大
2021-12-24
赋值后程序运行到此处就停止了
2021-12-17
链表读入商品信息,编译发生错误
2021-12-01
链表读入商品信息,编译发生错误
2021-12-01
链表:02-初始化 函数原型:void init_list(GoodsList **L)
2021-11-26
求解答C语言中最大最小单词简略版的问题
2021-11-11
TA创建的收藏夹 TA关注的收藏夹
TA关注的人