自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 大模型微调——LoRA微调

在了解LoRA微调的概念之前,我们先来了解一下什么是全量微调:全量微调是传统且直观的微调方法,他需要更新预训练模型的所有参数,一次微调需要消耗大量的资源,并且会造成知识遗忘,模型可能会为了学好新任务而忘记在原来预训练过程中学到的知识。

2025-09-24 19:19:17 399

原创 Bert模型详解与应用

BERT(Bidirectional Encoder Representations from Transformers)是Google在2018年提出的革命性自然语言处理模型。它的核心思想是通过来学习深层的语言表示。

2025-09-04 16:47:14 1362

原创 Transformer详解

Transformer是一种深度学习模型架构,专门为处理序列数据而设计,尤其是在自然语言处理(NLP)领域取得了革命性的成功。它在2017年由Google Brain团队在论文《Attention Is All You Need》中首次提出。完全摒弃了传统的循环神经网络(RNN)和卷积神经网络(CNN),仅依赖一种名为“自注意力(Self-Attention)”的机制来捕捉序列中各个元素之间的全局依赖关系。

2025-09-02 19:36:27 752

原创 RNN、LSTM与GRU

我们先来了解一下RNN、LSTM与GRU的定义,后面会有具体的简单例子来介绍这三者的区别循环神经网络(Recurrent Neural Network, RNN)是一类具有内部环状连接的人工神经网络,用于处理序列数据。4输入层:RNN能够接受一个输入序列并将其传递到隐藏层。隐藏层:隐藏层之间存在循环连接,使得网络能够维护一个“记忆”状态,这一状态包含了过去的信息。输出层:RNN可以有一个或多个输出,例如在序列生成任务中,每个时间步都会有一个输出。

2025-08-26 18:25:26 996

原创 sklearn之朴素贝叶斯

预测新邮件X=(X_1=1, X_2=0)是否为垃圾邮件。对每个类别计算后看概率P(Y|X),选择概率最大的类别。:在特征X出现条件下,类别Y的概率(后验概率)。$P(X_1=1|Y=否) =0/2 = 0。:P(是|X) > P(否|X) ⇒ 判定为。:类别Y的先验概率(数据中$Y$的频率)。$P(X_2=0|Y=是) = 1/3。:在类别Y下,特征$X$的条件概率。$P(X_2=0|Y=否) =1/2。P(X_1=1|Y=是) =2/3。P(Y=否) = 2/5。P(Y=是) =3/5。

2025-08-14 17:17:54 303

原创 sklearn之KNN--实现机器学习

存在一个样本数据集合,也称作训练样本集,并且样本集中每个数据都存在标签,即我们知道样本集中每一数据 与所属分类的对应关系。输人没有标签的新数据后,将新数据的每个特征与样本集中数据对应的 特征进行比较,然后算法提取样本集中特征最相似数据(最近邻)的分类标签。(1)如图我们要判断中间的绿点为什么类型的,如果K=3的话。按照实线圈里的三个近邻,两个红三角,一个蓝方块,按照投票,最终绿点的预测结果为红三角。(2)如果K=5,按照虚线框的五个近邻,三个蓝方块,两个红三角,中间的绿点应为蓝方块。

2025-08-14 15:26:35 520

原创 sklearn之随机森林--实现机器学习——RandomForestClassifier

随机森林其实是通过继承学习的思想将多个树集成,基本单元是决策树随机森林在训练集中随机选择样本和特征来训练多棵决策树,可以防止过拟合当对新数据进行预测时,随机森林会让每棵树进行预测,最后对所有树的预测结果进行投票,返回票数最多的类别作为最终的预测结果。

2025-08-14 12:26:00 577

原创 Xshell与xftp部署java项目

4.java后台打包成jar包 用maven直接打包 先clean再package 生成的jar包在target路径下。2.Xshell新建会话 ssh root @xxx.xxx.xxx.xxx。5.通过xftp将jar包上传到服务器的特定路径。3.安装JDK、安装MYSQL、安装redis。7.使用nohup 运行jar包。6.进入到jar包的存放路径。8.查看日志运行结果。

2025-07-19 15:48:16 232

原创 报错:error Mixed spaces and tabs

这说明代码同时混有 tab 缩进和空格缩进,我们要找到这个位置,将前面的多余部分删除。Ctrl+F搜索\t或者\t+空格,及定位到报错位置,见前面的删除即可。

2023-07-25 17:20:14 673

原创 力扣——四数之和Ⅲ(JavaScript)

我们先计算数组1和数组2的各个元素的和sum1以及他们出现的次数,将其放在一个数组中newMap中,随后计算数组3和数组4中各个元素的元素和sum2,判断0-sum2在数组newMap中出现的次数。

2023-06-09 01:34:23 270

原创 vue-cli 脚手架的使用

3、安装 vue-cli,在cmd中输入vue -V查看是否安装成功。4、创建项目: vue create 项目名 (注意不能用大写)2、安装npm的镜像或者使用yarn。

2023-06-08 00:33:38 244

原创 java基础(一)

数据类型:整数(byte、short、int、long)浮点数(float、double)字符(char)、布尔(boolean)Continue:跳过某次循环内容的执行,继续下一次执行。强制类型转换:上图反过来(不建议,会造成数据的丢失)for(初始化语句;目标数据类型 变量名 = (目标数据类型)变量名。Break:终止循环体内容的执行,结束当前循环。While(条件判断语句){While(条件判断语句)按照等级进行自动提升。if(关系表达式){if(关系表达式){if(关系表达式){

2023-06-05 02:29:28 218

原创 VUE面试常考知识点

computed:computed时计算属性,computed中的函数所依赖的属性没有发生变化,那么调用当前的函数的时候会从缓存中读取,且computed中的函数必须要用return返回。所以一般来说需要依赖别的属性来动态获得值的时候可以使用 computed,对于监听到值的变化需要做一些复杂业务逻辑的情况可以使用 watch。(2)beforeMount:在挂载开始前被调用,可以访问数据,虚拟dom已存在,不能拿到节点。树上的节点,来联动控制真实dom上的节点,从而控制元素的显示、隐藏。

2023-06-01 01:48:49 101

原创 页面性能优化的几种方法

(2)减少图片每个像素显示的颜色。(1)减少图片的像素点。

2023-06-01 00:48:05 150

原创 力扣——两数之和(JavaScript)

给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。利用哈希函数中的map()方法,map中的存储结构为 {key:数据元素,value:数组元素对应的下标}。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。

2023-05-26 16:33:39 379

原创 力扣——快乐数(JavaScript)

力扣编写一个算法来判断一个数 n 是不是快乐数。「快乐数」 定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果这个过程 结果为 1,那么这个数就是快乐数。如果 n 是 快乐数 就返回 true;不是,则返回 false。

2023-05-26 01:50:54 122

原创 力扣——两个数组的交集(JavaScript)

力扣给定两个数组nums1和nums2,返回它们的交集。输出结果中的每个元素一定是的。我们可以。tips:1、Array.from()方法就是将一个类数组对象或者可遍历对象转换成一个真正的数组2、Set()作用:Set() 函数创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集、差集、并集等题目分析:(1)利用哈希函数的Set()对数组进行去重(2)循环比较nums1中是否含有nums2的元素,若存在,则将其添加到新数组中。

2023-05-26 01:20:19 150

原创 力扣——有效的字母异位词(JavaScript)

【代码】力扣——有效的字母异位词(JavaScript)

2023-05-24 23:08:03 112

原创 力扣——长度最小的子数组(JavaScript)

(2)利用for循环,j一直向后移动,同时分析i,j中间的数组和是否>=target(若不大于,j继续向后移动)(3)若和>=target,i向后移动,j停止,同时继续进行循环判断。(1)定义两个指针i,j。

2023-05-23 18:41:38 225

原创 力扣——有序数组的平方(JavaScript)

(1)由于原数组按照递增顺序排列,所以,平方的最大值一定在数组的两端,所以首先定义一个双指针i,j使其分别指向数组第一项,和最后一项。(3)nums[i]的平方与nums[j]的平方比较大小,同时向中间移动,大的数据存入新数组,k--(2)定义一个空数组res,定义一个指针k使其指向res的最后一项(及最大值)

2023-05-22 15:01:49 192

原创 力扣——移除元素(JavaScript)

给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。

2023-05-21 16:55:34 216

原创 力扣——二分查找(JavaScript)

提示:(1)你可以假设 nums 中的所有元素是不重复的。(2)n 将在 [1, 10000]之间。(3)nums 的每个元素都将在 [-9999, 9999]之间。注意:1、进行二分查找时,我们要注意区间是[left,right]还是[left,right)在本题中我用的是[left,right]2、在求mid时,我们用的是位运算((right-left)>>1),相当于二进制向右移一位,相当于(left+right)/2,目的是防止运算溢出。

2023-05-21 16:24:16 120

原创 力扣——环形链表Ⅱ(JavaScript)

(1)在头节点处定义两个指针slow和fast(2)fast一次移动两个节点,slow一次移动一个节点,如果slow指针与fast指针相遇说明链表中存在环。无环的情况:有环的情况:fast与slow在环内相遇(3)相遇后的节点不一定是进入环的节点,我们将solw节点移到头节点,随后slow与fast节点每次向后移动一个节点,当fast与slow再次相遇的节点即为进入环的节点。

2023-05-20 16:23:29 290

原创 力扣——链表相交(JavaScript)

请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回。给你两个单链表的头节点。

2023-05-20 15:21:54 399 1

原创 力扣——删除链表的倒数第 N 个结点(JavaScript)

(4)删除slow => next 节点 使slow.next = slow.next.next。(1)首先,定义fast指针和slow指针,初始值为虚拟头结点。(3)slow与fast同时前进,当fast到null时停止。(2)将fast指针向前移动n+1步。

2023-05-18 23:16:10 265 1

原创 力扣——两两交换链表中的节点(JavaScript)

分析过程:/***///定义虚拟头节点temp = cur;

2023-05-18 22:45:07 124 1

原创 力扣——设计链表(JavaScript)

若直接让ret -> next = node , node ->next = ret ->next(原来的ret的下一个节点——head)但是我们已经获取不到head节点了,因为原来的ret.next已经被我们更改了,所以我们再插入节点的时候要注意顺序:node ->next = ret ->next ret -> next = node。

2023-05-17 19:54:33 176 1

原创 力扣题目——移除列表元素(JavaScript)

给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点。给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点。//初始化一个空节点,初始赋值为0,并且list的下一个next指针指向head,指针指向为list。输入:head = [1,2,6,3,4,5,6], val = 6。// 终止while循环。输出:[1,2,3,4,5]

2023-05-17 16:12:22 147 1

原创 node_modules一直报错

原因有可能是自动添加了express 删除就可以了

2023-05-16 21:22:42 691 1

原创 力扣热题100之链表回文数(JavaScript)

/定义双指针从头和尾开始移动,比较两端的元素,逐渐向中间移动。//先定义一个数组存放链表中的数据。//利用push将将数据存入数组。

2023-05-15 23:23:40 91 1

原创 力扣热题100之链表反转(JavaScript)

/定义两个容器,一个放置头节点,另一个放置头节点前的节点即为空。//将箭头改为由curr面向pre,即将箭头反向。//将pre和curr全向前移动一位,进入循环。

2023-05-15 23:17:55 232 1

原创 力扣热题100之相交链表(JavaScript)

输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,6,1,8,4,5], skipA = 2, skipB = 3。给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null。解释:相交节点的值为 8 (注意,如果两个链表相交则不能为 0)。//如果Set()中存在headB的数值,则返回指针对应的数据。解法一:哈希集合(Set()不能包含重复的数据)

2023-05-15 23:14:56 141 1

原创 力扣热题100之移动零(JavaScript)

给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。//splice(index,n)用法,删除从index开始的数据,n表示删除数据的个数。,必须在不复制数组的情况下原地对数组进行操作。//length 要减1,否则进入死循环。//i-- 继续判断后一个数据是否为0。//定义swap函数,改变指针位置。

2023-05-15 23:00:14 170 1

空空如也

空空如也

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

TA关注的人

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