自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 大 模 型

本文系统解析了大语言模型(如GPT、DeepSeek)的核心架构与优化技术。Transformer是基础结构,分为Encoder(理解任务)和Decoder(生成任务)。关键技术包括:1)MoE混合专家模型,通过稀疏激活降低计算成本;2)RoPE旋转位置编码,增强长序列建模能力;3)MLA多头潜在注意力,优化KV缓存机制;4)SwiGLU激活函数和RMSNorm归一化,提升训练效率。训练流程分为预训练(基础能力)、SFT(指令微调)和RLHF(人类偏好对齐)三阶段,其中SFT依赖高质量标注数据,RLHF通过

2026-01-19 19:46:20 638

原创 自回归生成任务

本文系统介绍了序列到序列(Seq2seq)模型及其改进架构Transformer。首先分析了三种序列任务类型:逐元素标签匹配、序列级单一标签和自主决定输出数量。重点阐述了Seq2seq模型的编码器-解码器结构及其在机器翻译等任务中的应用,同时指出其存在的长序列信息衰减和并行效率低等问题。随后详细解析了Transformer架构,包括其核心组件:输入编码、位置嵌入、多头注意力机制、前馈网络等,并说明如何通过自注意力机制解决传统RNN的局限性。特别强调了Decoder的自回归生成方式、Teacher Forci

2026-01-14 20:41:09 669

原创 self-attention与Bert

Transformer 架构及其衍生模型 BERT、GPT-2 的对应关系Transformer 的,这是现代自然语言处理(NLP)的核心基础架构,由 “注意力机制 + 前馈网络 + 残差连接 / 层归一化” 构成重复模块(标记为 “N×”)。这些模型是 NLP 领域的里程碑:BERT 开启了双向预训练的范式,GPT-2 则推动了大模型文本生成能力的普及。Bert“文本→模型输入” 的预处理流程完成 “原始文本→分词→数值化输入” 的转换,是 BERT 等预训练语言模型的标准前置操作。

2026-01-13 21:35:44 627

原创 注意力机制

本文系统介绍了自然语言处理中文本表示与建模的关键技术。首先分析了传统独热编码的三大缺陷(维度灾难、语义丢失、无法处理新词),进而阐述了词嵌入技术的优势。重点讲解了RNN/LSTM的序列建模机制及其局限性,详细剖析了自注意力机制的工作原理和优势。深入讨论了Transformer架构及其核心组件(多头注意力、位置编码等),并介绍了BERT等预训练模型的结构特点。最后总结了不同文本表示方法在语义捕获、计算效率等方面的差异,为自然语言处理任务提供了全面的技术参考。

2026-01-12 18:50:24 751

原创 无监督学习

深度学习通过多层非线性变换实现端到端特征学习,自动从原始数据中提取层级抽象特征,克服了传统机器学习依赖人工设计特征的局限。其核心机制在于权重矩阵作为"特征选择器",通过前向传播、损失计算和反向传播的迭代优化动态完成特征提取。面对无标签数据,无监督学习采用重构压缩、聚类分组、生成建模和自监督学习等范式,利用数据内在结构进行特征学习。其中自监督学习通过设计代理任务(如掩码预测、对比学习)自动生成监督信号,成为当前最强大的无监督特征学习方法。预训练好的特征提取模型可广泛应用于各类下游任务,展现

2026-01-10 21:36:56 1017

原创 食物照片分类实战

本文介绍了深度学习中的关键技术:1. 实验可重复性:通过seed_everything()函数统一设置随机种子,确保实验结果可复现。2. 数据增强:通过图像变换扩展数据集,提高模型泛化能力。3. 迁移学习:利用预训练模型特征提取能力,解决小数据场景下的训练问题。4. 半监督学习:提出伪标签技术框架,结合有标签和无标签数据进行训练,包括:- 伪标签生成条件(置信度阈值0.99)- 动态更新机制(每3个epoch且验证准确率>60%时更新)- 渐进式训练流程(先有标签后伪标签)5. 模型架构:实现包含卷积

2026-01-10 18:34:33 587

原创 图像分类任务——卷积

图像分类任务的训练流程之前我们学了全连接,代码写作 nn.linear(A, B)它的作用是将矩阵从A维度转为B维度。比如 输入有4个变量, 回归任务, 需要输出1个值。就使用:一个(164) 的矩阵 经过会转为 (161但是想中间多算几次, 加深网络加强效果。可以然后掌握了 梯度下降算法。我们之前讨论的多层感知机十分适合处理表格数据,其中行对应样本,列对应特征。根据一封邮件的内容判断它是否是垃圾邮件。根据两个人的样貌判断是否为直系亲属。

2026-01-07 22:19:31 913

原创 深度学习3:新冠病毒感染人数预测

本文介绍了构建简单神经网络模型预测美国各州新冠感染人数的完整流程。主要内容包括:1. 数据处理部分:详细说明了数据集划分(训练集60-80%、验证集20%、测试集20%)、标准化处理和特征选择方法;2. 模型构建:采用两层全连接网络(93→128→1),包含ReLU激活函数;3. 训练过程:使用SGD优化器(动量0.9)进行20轮训练,实现早停策略保存最佳模型;4. 评估方法:在独立测试集上评估模型性能,输出预测结果。文章还讨论了关键概念如正则化、批次训练策略等,并提供了完整的PyTorch实现代码。该方案

2026-01-07 16:12:16 758

原创 我的第一个 线性回归训练代码

本文介绍了使用PyTorch实现线性回归模型的全过程。首先通过预设参数(w=[8.1,2,2,4], b=1.1)生成500个4维特征的模拟数据,并添加噪声使其更接近真实场景。然后构建数据提供器实现分批加载,定义线性模型和MAE损失函数。采用SGD优化器进行参数更新,设置学习率0.03和批次大小16。经过50轮训练后,模型参数接近真实值。最后可视化展示了特征与预测结果的关系,验证了模型的有效性。整个流程涵盖了数据生成、模型构建、训练优化和结果评估等关键步骤。

2026-01-02 22:34:16 784

原创 python入门

class person(): # 定义名为person的类def __init__(self, name, age): # 构造方法/初始化方法self.name = name # 实例属性:姓名self.age = age # 实例属性:年龄def print_name(self): # 实例方法:打印姓名def print_age(self): # 实例方法:打印年龄。

2026-01-02 16:19:07 873

原创 多元函数的神经网络与深度学习

本文概述了神经网络与深度学习的核心概念和方法。主要内容包括:1)神经网络的基本结构,如神经元、权重、激活函数等;2)深度学习的关键算法,包括前向传播、反向传播和梯度下降;3)深度学习与机器学习、人工智能的区别;4)主流深度学习框架介绍,如TensorFlow、PyTorch等。文章系统性地介绍了这些技术的基本原理和应用特点,为理解深度学习提供了基础性知识框架。

2026-01-01 20:32:47 1109

原创 初识机器学习和深度学习

本文摘要: 机器学习是计算机通过数据建立模型并进行预测的方法,深度学习是其重要实现技术。机器学习可分为监督学习(分类/回归)、无监督学习(聚类)和强化学习。KNN算法通过数据点距离进行预测。神经网络处理向量、矩阵和张量等输入数据,完成回归、分类等任务。深度学习通过定义函数模型、损失函数和优化过程(如梯度下降)来训练模型,多层神经网络(输入层、隐藏层、输出层)能解决复杂非线性问题。深度学习优势在于能自动学习复杂模式,但具有"黑箱"特性。

2025-12-30 18:00:20 1090

原创 栈 和 队列

一种特殊的线性表,只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出(LIFO - Last In First Out)的原则。从数据结构的角度来看,栈 就是一种数据结构。压栈 和 出栈压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。出栈:栈的删除操作叫做出栈。出数据在栈顶。

2023-11-11 16:21:21 524

原创 动态修改的数组 - ArrayList

实现一个通用的顺序表顺序表的功能不是重点,我们在这里只是粗略实现一下顺序表的功能,重点在泛型准备工作,相信大家都看得懂。但是这个代码并不通用,只能存储一种数据类型(int)。​​​总结1. 泛型是作用在的一种机制,即运行期间没有泛型的概念。2. 泛型代码在运行期间,就是我们上面提到的,利用 Object 达到的效果(这里不是很准确,以后会做说明)。3. 泛型是为了解决某些容器、算法等代码的通用性而引入,并且能在编译期间做类型检查。

2023-11-02 13:11:20 781 1

原创 测开(性能测试---LoadRunner)

LoadRunner是一款开源桌面应用软件,可用来模拟用户负载完成性能测试工作,LoadRunner的功能在版本不断升级的过程中已经十分强大,现在很多互联网公司都在使用LoadRunner来完成产品或者 Loadrunner是业界公认的权威性能测试工具,被誉为工业级的性能测试工具,支持广泛的协议和平台。

2023-10-30 19:01:16 852

原创 测开 (性能测试)

你们可以在准备访问一个页面的时候,开启浏览器的开发者工具来观察一次点击,触发了多少个请求。就好像一个班考完试,老师都会公布平均值,让我们看看自己的成绩是否过了平均值。验证软件在 良好环境下【网络稳定,低并发,空间充足】 是否满足性能指标。用户在进行操作时,每个请求之间的间隔时间【前后两个操作间隔的时间】。不同系统资源【包含 CPU,内存,硬盘,网络等。特定的环境(正常情况,高并发,网络波动等。但是运营商对于兆的定值是不一样的,是以 bit 为单位。我们晚上玩LOL的时候,尤其是 一区,总是需要排队。

2023-10-28 23:50:22 456

原创 测开 (Junit 单元测试框架)

现在,我们有了 selenium 基础语法 之后,只能说我们会写自动化。但不是说:我们就能写自动化测试。而本文的重点:通过学习Junit 基础,再加上前面的 selenium 框架,来实现自动化测试。了解 JunitJunit 是一个开源的 Java 语言的单元测试框架。Junit 是Java方向使用最广泛的单元测试框架。使用Java 的开发者都应当学习 Junit ,并且掌握单元测试的编写。有了 Junit之后,我们的自动化写起来就更漂亮了。

2023-10-28 23:46:50 1332

原创 测开(自动化测试selenium(WebDriver API))

在不添加等待的情况下,由于代码执行的速度过快,导致页面元素获取不到【页面元素还未加载完成】,从而抛出异常 【NoSuchElementException】这种问题在 C++ 中是不被允许存在的!像我们这个测试用例执行的时间,如果不加sleep,(软硬件都非常给力的情况)执行 0.01s 都算是非常漫长的时间!考虑最坏情况(硬件环境,软件环境,网络环境都不太理想的情况),自动化测试的时间可能会超过 15 min,甚至更久!在获取(定位)一个元素的时候,如何没有获取到,进行等待,一旦元素加载完成,立即获取。

2023-10-27 18:44:07 841

原创 selenium (自动化概念 && 测试环境配置)

什么是自动化测试自动化测试介绍自动化测试指软件测试的自动化,在预设状态下运行应用程序或者系统.预设条件包括正常和异常,最后评估运行结果。自动化测试,就是将人为驱动的测试行为转化为机器执行的过程。【机器 代替 人工】自动化测试包括UI自动化,接口自动化,单元测试自动化。按照这个金字塔模型来进行自动化测试规划,可以产生最佳的自动话测试产出投入比(ROI),可以用较少的投入获得很好的收益。单元测试:最大的投入应该在单元测试上,单元测试运行的频率也更加高。

2023-10-27 16:36:59 785

原创 测开 ( 项目篇 )

以后,我们在工作的时候,就会按照类似的分配模式进行分组。发现缺陷 >>> 记录缺陷 >>> 沟通缺陷 >>> 跟踪缺陷 >>> 关闭缺陷。每发布一个版本将源代码上传至:项目的gitup地址,并做好版本管理。需求测试要素:正确性,必要性,完整性,一致性,无二义性,合理性。收到第三个测试版本:冒烟测试,BUG验证,全面回归测试。收到第二个测试版本:冒烟测试,BUG验证,回归测试。第三轮测试:冒烟测试,BUG验证,全面回归测试。第二轮测试:冒烟测试,BUG验证,回归测试。收到第一个测试版本:冒烟测试,全面测试。

2023-10-25 16:52:56 290

原创 测开( 进阶篇)

本文的主要目的:更深入的告诉大家具体从某一个方面来设计测试用例。

2023-10-25 13:21:55 689

原创 软件测试 (用例篇)

上一篇博客讲述的是一次基本的测试过程。在我们开始做了一段时间基础测试,熟悉了业务之后,往往会分配来写测试用例,并且在日常测试中,有时也需要补充测试用例到现有的案例库中。在这里我们将回答以下问题1、测试用例的基本要素2、测试用例的设计方法3、测试用例的有效性4、测试用例的粒度和评价简单来说:这篇博客就开始教大家怎么去写一个测试案例!当我们进行设计 测试用例 的时候,我们应该从以下这几个点入手:1、界面测试2、验证软件的功能,把业务相关的功能串起来进行测试【每个功能都需要测试】

2023-10-23 22:37:40 2782

原创 软件测试( 基础篇)

从这篇博文开始,我们将作为一名刚刚加入测试团队的菜鸟,开始一次测试之旅。在这里我们将讨论以下问题:软件测试的生命周期如何描述一个bug如何定义bug的级别bug的生命周期产生争执怎么办。

2023-10-23 21:44:15 241

原创 软件测试(概念篇)

从这篇博客开始,我们将开始正式学习测试,在开始第一次软件测试之前,我们需要先了解软件测试的一些基本概念。这些基本概念将帮助我们更加明确工作的目标,以便于更快的融入到测试团队中去在这里我们将回答以下问题:什么是需求什么是bug什么是测试用例开发模型和测试模型配置管理和软件测试。

2023-10-23 20:50:40 272

原创 初识测开/测试

在进入软件测试的正式讲解之前,我们需要对这个行业有一个整体的了解。当我们从软件开发转向软件测试的时候,多数公司是欢迎的,而且难度也小。反之,当我们从软件测试转向软件开发的时候,难度将会变得很大。关于互联网的工作大概有以下三种:1、软件开发:进行软件系统的开发,功能实现的工作像作者我学的是 java,java里面就会有一些框架,数据库,数据结构。。。这些东西都是属于软件开发中涉及的到知识。2、软件测试验证软件功能性的正确性。具体的验证方式分为以下几种:1、手工验证。

2023-10-23 20:05:43 828

原创 Redis第四五六章 持久化&事务&主从复制

Redis ⽀持 RDB 和 AOF 两种持久化机制,持久化功能有效地避免因进程退出造成数据丢失问题, 当下次重启时利⽤之前持久化的⽂件即可实现数据恢复。

2023-10-13 17:12:25 523

原创 Redis 第二章:通用命令

Redis 提供了 5 种数据结构,理解每种数据结构的特点对于 Redis 开发运维⾮常重要,同时掌握每种数据结构的常⻅命令,会在使⽤ Redis 的时候做到游刃有余。

2023-10-13 16:24:58 600 1

原创 Redis第一章:初识

Redis 是⼀种基于键值对(key-value)的 NoSQL 数据库,与很多键值对数据库不同的是,Redis 中的值可以是由 string(字符串)、hash(哈希)、list(列表)、set(集合)、zset(有序集合)、 Bitmaps(位图)、HyperLogLog、GEO(地理信息定位)等多种数据结构和算法组成,因此 Redis 可以满⾜很多的应⽤场景,⽽且因为 Redis 会将所有数据都存放再内存中,所以它的读写性能⾮常惊⼈。

2023-10-13 11:29:24 421

原创 Spring事务和事务传播机制

同样的代码,我们把 LogInfoService的 addLog 和 UserService 的 addUser方法 ,它们的@Transactional 后面的 事务传播级别的设置删除掉了,其它的代码都不改。项目中设置的隔离级别,就好比是 那 8 w,我们连接的数据库中支持的隔离级别,就好比是 那8k,很明显我们的数据库是无法支持 我们项目中对隔离级别设置的。当整个调用链上,有一个程序里面有多个方法的时候,然后,多个方法相互调用的时候,并且这多个方法,都具有事务的时候,这个情况,就是 事务嵌套的问题。

2023-08-03 02:53:18 464

原创 SpringBoot 统⼀功能处理

/ 添加拦截器@Override.addPathPatterns("/**") // 拦截所有接⼝// 排除接⼝大家需要注意一点:不管是 Spring,还是 Spring Boot。它们默认的配置文件都是叫做 Spring MVC Configurer 的一个文件。我们要设置当前的一些配置信息的时候,我们是一定要去实现WebMvcConfigurer 接口的。然后,去重写里面的 addInterceptors(添加多个拦截器)方法。

2023-07-29 23:26:20 968 1

原创 Spring AOP

切面是一个类。此时,我们就把一个切面类给定义好了。切面类定义好了,下面就是 制定 拦截规则。前面我们定义切面的时候,使用了一个 @Aspect 注解 来声明一个类是切面类。那么,切点 是不是使用一个 @Pointcut 注解呢?确实是!Spring 切⾯类中,可以在⽅法上使⽤以下注解,设置⽅法为通知⽅法,在满⾜条件后会通知本⽅法进⾏调⽤:前置通知使⽤ @Before:通知⽅法会在⽬标⽅法调⽤之前执⾏。后置通知使⽤ @After:通知⽅法会在⽬标⽅法返回或者抛出异常后调⽤。

2023-07-24 01:56:33 608

原创 MyBatis查询数据库

xml 文件,不能随便创建。我们在配置文件中,已经指定了 xml 文件存储路径。并且,命名规则也指定了,我们必须按照规则来。至于 xml 文件的配置内容,直接把下面的内容,拷贝到里面去。相信很多朋友,都会发现 mapper标签中的 namespace 属性,缺少value值。namespace 的值,是需要我们手动去填写的。填写的内容:是需要时实现的接口位置 >> 包名 + 接口名称。接下来,就是在 xml 文件中,实现 UserInfoMapper 接口 中的 方法。

2023-07-22 02:36:08 1220

原创 Spring MVC 程序开发

MVC 是 Model View Controller (模型视图控制器)的缩写,它是软件⼯程中的⼀种软件架构模式,它把软件系统分为模型、视图和控制器三个基本部分。Model(模型)是应用程序中用于处理应用程序数据逻辑的部分。通常模型对象负责在数据库中存取数据。View(视图)是应用程序中处理数据显示的部分,通常视图是依据模型数据创建的。Controller(控制器)是应⽤程序中处理⽤户交互的部分。通常控制器负责从视图读取数据,控制⽤户输⼊,并向模型发送数据。

2023-07-08 23:31:55 1173

原创 Spring Boot 日志文件

Spring Boot ⾃定义打印⽇志的实现步骤:1、在一个类中先获取到打印日志对象,日志对象 是 日志框架 提供的,而日志框架默认已经集成到 Spring Boot 里面了。(Spring Boot 内置了日志框架)2、使⽤⽇志对象提供的方法实现日志的打印。接下来我们分别来看⽇志是程序中的重要组成部分,使⽤⽇志可以快速的发现和定位问题。Spring Boot 内容了⽇志框架。默认情况下使⽤的是 info ⽇志级别将⽇志输出到控制台的。

2023-07-06 18:25:17 544

原创 Spring Boot 配置文件

整个项目中所有重要的数据都是在配置文件中配置的。比如:1、数据库的连接信息(包含用户名和密码的设置)2、项目的启动端口3、第三方系统的调用密钥等信息4、用于发现和定位问题的普通日志 和 异常日志 等。5、还可以配置 日志的级别(规定只显示达到某个级别的日志),以及日志的持久化存储。想象一下:如果没有配置信息,那么 Spring Boot 项目就不能连接和操作数据库,甚至是不能保存可以用于排查问题的关键日志,所以配置文件的作用是非常重要的!

2023-07-05 22:39:10 2532

原创 SpringBoot 的 概念、创建和运行

通过URL的方法,来输出一个helloworld我们学习 JavaEE 就是⽤来实现 Web 项⽬或接⼝的,⽽之前是 Spring 其实是⼀个普通 Java 项⽬,没办法直接和浏览器进⾏互动,所以接下来我们要⽤ Spring Boot 来实现和浏览器及⽤户的交互。那么,如何实现呢?我们再看看,类上面也加上 @RequestMapping,通过二级路径去访问方法。Sring Boot 中 “约定 大于 配置” 的思想。在编写上面编写项目代码的时候,其实就涉及到 “约定 大于 配置” 的思想。

2023-07-04 18:55:35 571

原创 Spring 更简单的读取和存储对象

经过前⾯的 Spring 创建 和 使⽤的博文学习,我们已经可以实现基本的 Spring 读取和存储对象的操作了。但在操作的过程中我们发现读取和存储对象并没有想象中的那么“简单”,所以接下来我们要学习更加简单的操作 Bean 对象的⽅法。在 Spring 中想要更简单的存储和读取对象的核⼼是,也就是我们接下来要学习 Spring 中的相关注解,来存储和读取 Bean 对象。需要注意的是:Spring 中的 注解是通用的。

2023-06-28 23:52:52 468

原创 Spring、Bean 创建 和 使⽤

本文重点有三大点:1、操作容器之前,先要有容器,所以先要得到容器。1.1、创建 maven项目1.2、添加 Spring 框架支持,引入 spring-context 和 spring-beans 依赖1,3、创建一个启动类 和 main方法2、存对象2.1、创建 Bean(普通类)2.2、将 Bean 注册(配置)到 spring-config.xml 中。【bean标签】3、取对象3.1、得到 Spring 上下文对象,并读取到 Spring 的配置文。

2023-06-28 16:28:09 1083

原创 Spring概念:容器、Ioc、DI

容器是用容纳某种物品的(基本)装置。我们想想,之前课程我们接触的容器有哪些?List/Map -> 数据存储容器Tomcat -> Web 容器List / Map 是一个数据存储容器,这个很好理解。但是 Tomcat 为什么是一个 Web 容器呢?思考一下:Tomcat 是用来运行 外部的项目,因此它是一个 Web 容器。你有一个项目,想要运行。肯定是要将项目部署到 Tomcat 的 webapps 目录底下,才可以运行。此时,webapps 不就是一个项目的容器嘛。

2023-06-27 23:50:39 1180 5

原创 javaEE进阶 -初识框架

主要讲解 四个框架。1、Spring4、MyBatis目前所有公司的项目,基本上全部是使用 Spring 项目。MyBatis 是用来 代替 JDBC 编程。JDBC 是 Java 提供的一组 用来 操作数据库 的 API。但是!JDBC 使用起来非常繁琐。而且重复的代码太多了!一共五个步骤:1、获取数据源2、与数据建立连接3、编写 SQL 语句。4、执行SQL5、此时 SQL 已经执行完毕,然后需要我们去释放资源。

2023-06-26 21:17:07 900

空空如也

空空如也

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

TA关注的人

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