当前位置: 首页 > news >正文

深入理解自监督学习(Self-Supervised Learning):理论与实践

📌  友情提示
本文内容由银河易创AI(https://ai.eaigx.com)创作平台的gpt-4o-mini模型生成,旨在提供技术参考与灵感启发。文中观点或代码示例需结合实际情况验证,建议读者通过官方文档或实践进一步确认其准确性。

近年来,自监督学习(Self-Supervised Learning,SSL)作为一种新兴的学习范式,在计算机视觉、自然语言处理等多个领域都取得了显著的进展。与传统的监督学习不同,自监督学习不依赖于人工标注的数据,而是通过从未标注的数据中自动生成标签,进而进行学习。这一特性使得自监督学习在数据稀缺的场景中展现出强大的潜力。本文将深入探讨自监督学习的基本概念、方法以及实际案例,以帮助读者更好地理解这一重要技术。

一、自监督学习的概念

自监督学习(Self-Supervised Learning, SSL)是一种无监督学习的分支,旨在通过利用数据自身的结构和特征来生成标签,从而进行模型训练。与传统的监督学习方法依赖于大量标注数据的需求不同,自监督学习通过设计特定的任务,利用未标注数据中的信息创造出伪标签,使模型可以在没有人工标注的情况下进行学习。这一特性使得自监督学习在处理大规模未标注数据时展现出了独特的优势。

1.1 自监督学习的基本原理

自监督学习的核心在于通过创造性地设计学习任务,使得模型能够从数据中自动学习特征。这些任务通常基于数据的内在结构,目的是帮助模型理解数据的潜在规律。例如,模型可以通过以下几种方式来生成伪标签:

  • 数据变换任务:对输入数据进行一定的变换或生成不同的视图,模型的目标是重建原始输入或识别变换的类型。例如,在图像数据中,图像旋转、裁剪或翻转等操作都可以被视为自监督任务,模型需要学习如何恢复或识别这些变换。

  • 上下文预测任务:模型通过预测输入数据的某个部分或上下文来学习数据的结构。例如,在文本数据中,模型可以通过掩码某些单词并预测它们来学习语言结构。

  • 对比学习:通过对比不同样本之间的相似性和差异性,模型可以学习到有用的表示。例如,在图像领域,可以将同一图像的不同增强版本视为正样本,而不同图像视为负样本,通过对比学习来优化模型。

1.2 自监督学习的任务设计

自监督学习的任务设计是成功的关键。通过合理的任务设计,模型能够有效学习到数据的特征和规律。以下是常见的任务类型:

  • 图像重建任务:模型通过将输入的图像进行局部遮挡或变换,训练模型重建原始图像。这种方法可以帮助模型学习到图像的空间结构和特征。例如,掩码自编码器(Masked Autoencoders)就是通过这种方式进行训练的。

  • 语言模型任务:在自然语言处理中,常见的自监督任务是掩码语言模型任务(Masked Language Model),模型通过上下文预测被掩码的单词。这种方式使得模型在训练过程中学习到词语之间的关系和语义信息。

  • 动量对比学习:在对比学习中,使用动量编码器来生成正样本,模型通过对比这些样本来优化特征表示。这样的设计可以提高模型的稳定性,并有效利用未标注数据。

1.3 自监督学习的优势

自监督学习具有多种显著的优势,这也是它近年来受到极大关注的原因之一:

  • 减少标注数据的需求:标注数据的获取通常需要大量的时间和精力,而自监督学习能够利用未标注的数据进行训练,从根本上降低了对标注数据的依赖。

  • 提高模型的泛化能力:通过在未标注数据上学习,模型能够捕捉到更丰富的特征表示,从而提高其在实际应用中的泛化能力。自监督学习的表示学习能力使得模型在不同任务之间具有良好的迁移性。

  • 适应性强:自监督学习可以应用于各种类型的数据,包括图像、文本、音频等。无论是在计算机视觉还是自然语言处理领域,自监督学习都展现出了极大的适用性和灵活性。

1.4 自监督学习的应用前景

自监督学习不仅在学术界引起了广泛关注,也在工业界得到了应用。随着大规模未标注数据的普及,自监督学习在许多领域中展现出巨大的潜力。以下是一些具体的应用前景:

  • 计算机视觉:在计算机视觉领域,自监督学习被广泛应用于图像分类、目标检测和图像生成等任务。通过自监督学习,模型可以从海量未标注的图像中学习到有效的特征表示。

  • 自然语言处理:自监督学习在自然语言处理中也取得了显著进展,特别是在语言模型的训练上。模型如BERT和GPT等都利用自监督学习的思想在各类NLP任务中表现出色。

  • 音频处理:在音频处理领域,自监督学习可以用于语音识别、音乐生成等任务,通过学习未标注的音频数据来提升模型性能。

综上所述,自监督学习是一种强大且灵活的学习方法,通过利用未标注数据生成伪标签,帮助模型学习到丰富的特征表示。随着技术的不断发展,自监督学习将在未来的人工智能应用中扮演越来越重要的角色。

二、自监督学习的主要方法

自监督学习(Self-Supervised Learning, SSL)拥有多种有效的方法,可以帮助模型从未标注的数据中学习有用的特征表示。以下是一些主要的自监督学习方法及其具体实现方式:

2.1 对比学习(Contrastive Learning)

对比学习是一种通过比较样本之间的相似性和差异性来学习特征表示的方法,其基本思想是将相似样本(正样本)之间的距离拉近,而将不相似样本(负样本)之间的距离拉远。这种方法通常涉及到以下几个关键步骤:

  • 样本生成:首先,从训练集中的每个样本生成多个增强视图。这些增强操作可以包括随机裁剪、颜色变换、旋转等。

  • 特征提取:将这些增强后的样本输入到神经网络(如卷积神经网络)中,提取出特征表示。

  • 相似度计算:使用某种相似度度量(例如余弦相似度)计算正样本和负样本之间的相似度。

  • 损失函数:通过对比损失函数(如NT-Xent损失函数)来优化模型,使得正样本的相似度尽量高,而负样本的相似度尽量低。

实际案例:SimCLR

SimCLR(Simple Framework for Contrastive Learning of Visual Representations)是谷歌提出的一种对比学习方法。SimCLR的训练过程包括以下几个步骤:

  1. 数据增强:对输入图像进行多种数据增强,例如随机裁剪、颜色抖动、图像旋转等,生成多个视图。

  2. 特征提取:将每个增强后的图像输入到一个基础网络(如ResNet)中,提取特征表示。

  3. 对比学习:计算所有样本特征之间的对比损失,以最大化正样本对之间的相似性,最小化负样本对之间的相似性。

SimCLR在多个图像分类任务中表现出色,证明了对比学习在无监督特征学习中的有效性。

2.2 生成模型(Generative Models)

生成模型是一种通过学习数据分布来生成新样本的方法。在自监督学习中,生成任务通常通过重建输入数据来进行训练。生成模型的常见类型包括生成对抗网络(GAN)、变分自编码器(VAE)等。

实际案例:DALL-E

DALL-E是OpenAI提出的一种文本到图像的生成模型,能够根据文本描述生成高质量的图像。该模型的训练过程可以视为一种自监督学习,主要步骤包括:

  1. 数据收集:收集大量带有文本描述的图像数据集。

  2. 模型训练:模型通过学习图像和文本之间的映射关系来生成新的图像。在训练过程中,模型会根据文本描述生成图像,并通过优化损失函数来提高生成图像的质量。

  3. 生成与评估:训练完成后,用户可以输入文本描述,DALL-E便能生成对应的图像。模型的生成效果通常会结合人类评估来进行优化。

DALL-E的成功展示了生成模型在自监督学习中的应用潜力,特别是在创意生成和多模态学习方面。

2.3 任务重构(Task Reconstruction)

任务重构方法是通过对输入数据进行变换,要求模型恢复原始数据的过程。典型的任务重构方法包括图像重建、文本填空等。通过这种方式,模型能够学习数据的内在结构和特征。

实际案例:BERT

BERT(Bidirectional Encoder Representations from Transformers)是自然语言处理领域的一种重要模型,其自监督学习的关键在于“掩码语言模型”(Masked Language Model)任务。具体步骤如下:

  1. 掩码处理:在输入文本中随机选择一部分单词进行掩码,形成部分失真的文本。

  2. 预测任务:模型的目标是根据上下文预测被掩码的单词。通过训练,模型学习到单词在上下文中的语义信息。

  3. 训练与优化:使用交叉熵损失函数,通过反向传播更新模型参数,使得模型能够准确预测被掩码的单词。

BERT的掩码语言模型任务极大地提升了模型对上下文的理解能力,推动了自然语言处理领域的多项任务的进步。

2.4 变换学习(Transformation Learning)

变换学习是通过对输入数据施加特定变换,以学习模型对这些变换的理解能力。变换学习可以帮助模型更好地理解数据的几何结构和数据之间的关系。

实际案例:旋转预测

旋转预测是一种自监督学习的任务,其中模型需要预测输入图像的旋转角度。具体过程如下:

  1. 图像变换:首先,随机旋转输入图像(如0度、90度、180度和270度),生成多个变换后的图像。

  2. 预测模型:训练一个分类器来预测图像的旋转角度。模型通过学习图像的特征来推断其旋转状态。

  3. 损失函数:使用交叉熵损失函数来优化模型,使其能够准确预测旋转角度。

这种变换学习方法不仅能够提高模型对图像的认知能力,还能够增强其对图像几何特征的理解。

2.5 其他自监督学习方法

除了上述主要方法,自监督学习还有许多其他的策略和方法,包括:

  • 自回归模型:通过生成下一个数据点来学习序列数据的表示,例如语言模型(如GPT系列)通过预测下一个单词进行训练。

  • 图像分割任务:在计算机视觉中,模型可以通过对图像进行分割的方式(如实例分割)来学习物体的边界特征和上下文信息。

  • 图像掩码重建:在图像中随机选择一部分区域进行掩码,训练模型重建这些掩码区域,从而学习到图像的全局和局部特征。

自监督学习方法的多样性使其在各个领域的应用中大放异彩。通过对比学习、生成模型、任务重构等多种策略,模型能够有效地从未标注数据中提取有用的特征表示。这些方法不仅降低了对标注数据的依赖,还推动了众多实际应用的进展。随着技术的不断发展,自监督学习将在未来的人工智能领域中扮演越来越重要的角色。

三、自监督学习的应用场景

自监督学习的广泛应用使得它成为许多前沿研究的重要方向。以下是一些具体的应用场景:

3.1 计算机视觉

在计算机视觉领域,自监督学习被广泛应用于图像分类、目标检测和图像分割等任务。通过自监督学习,模型能够从大量未标注的图像中提取特征,从而提升下游任务的性能。例如,使用SimCLR进行图像分类任务时,模型能够在没有标签的情况下实现高准确率。

3.2 自然语言处理

在自然语言处理领域,自监督学习的方法被应用于文本理解、情感分析、机器翻译等任务。以BERT为例,通过学习上下文信息,BERT在多项自然语言处理任务上取得了显著的性能提升,推动了NLP领域的快速发展。

3.3 语音处理

自监督学习在语音识别和自然语言处理中的应用也愈加普遍。通过对未标注的音频进行特征学习,模型能够有效识别和处理语音信息。例如,Wav2Vec是一种自监督学习框架,能够在大量未标注音频上进行训练,从而提升语音识别的性能。

四、总结

自监督学习作为一种有效的学习范式,正逐渐成为深度学习研究的热点。通过利用未标注数据生成伪标签,自监督学习能够在各种任务中发挥重要作用。在计算机视觉、自然语言处理和语音处理等领域,自监督学习已展现出其强大的适用性和性能优势。

相关文章:

深入理解自监督学习(Self-Supervised Learning):理论与实践

📌 友情提示: 本文内容由银河易创AI(https://ai.eaigx.com)创作平台的gpt-4o-mini模型生成,旨在提供技术参考与灵感启发。文中观点或代码示例需结合实际情况验证,建议读者通过官方文档或实践进一步确认其准…...

时序逻辑入门指南:LTL、CTL与PTL的概念介绍与应用场景

引言 在计算机科学和形式化方法中,**时序逻辑(Temporal Logic)**是描述系统动态行为的核心工具,它允许我们形式化地表达“时间”相关的性质,例如“某事件最终会发生”或“系统始终满足安全条件”。其中,LTL(线性时序逻辑)、**CTL(计算树逻辑)和PTL(命题时序逻辑)*…...

Spring Boot 整合 JavaFX 核心知识点详解

1. 架构设计与集成模式 1.1 Spring Boot 与 JavaFX 的分层架构设计 Spring Boot 与 JavaFX 的整合需要精心设计的分层架构,以充分利用两个框架的优势。 标准分层架构 ┌────────────────────────────────────────────────…...

进程与线程:02 多进程图像

多进程图像的起源与核心地位 上节课我们开启了对操作系统核心概念——多进程图像的学习,探讨了其产生的原因。操作系统的核心职责之一是管理CPU,CPU作为实现取指执行的硬件自动化部件,只有执行取指操作(即取出并执行程序指令 &am…...

基于SIMMECHANICS的单自由度磁悬浮隔振器PID控制系统simulink建模与仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 4.1 单自由度磁悬浮减振器工作原理简介 4.2 SIMMECHANICS工具箱 5.完整工程文件 1.课题概述 基于SIMMECHANICS的单自由度磁悬浮隔振器PID控制系统simulink建模与仿真。其中,SIMMECHANICS是M…...

FreeRTOS互斥信号量解决优先级翻转实战教程

FreeRTOS互斥信号量解决优先级翻转实战教程 大家好!今天我们来深入探讨FreeRTOS中的优先级翻转问题,并通过互斥信号量来解决这个问题。上一篇文章我们已经了解了优先级翻转的现象,今天我们将动手实践,通过代码对比来直观感受互斥…...

Spark-SQL 四(实验)

用idea实验hive的常用代码 将数据放到项目的目录下 代码实现 运行结果: 实验 统计有效数据条数及用户数量最多的前二十个地址 将数据放到Spark-SQL/input目录下 代码实现: 运行结果:...

前端技术未来的发展趋势分析

以下是关于前端技术未来发展趋势的深度分析,结合行业动态和技术演进方向,从多个维度展开: 一、核心发展趋势 1. 框架融合与性能极致化 趋势:React/Vue/Solid 等框架在编译时优化(如React Forget编译器)和…...

字节扣子空间开启内测!附免费邀请码!

3月初,当Manus作为首个通用智能体横空出世时,整个科技圈都沸腾了。 当时我就预言过:这种创新产品要真正普及,还得看大厂动作(毕竟创业公司的资源有限啊)。 这不,字节跳动最近就悄悄放出了大招—…...

高并发场景下的淘宝 API 开发实践:商品数据实时采集与性能优化

在电商行业竞争激烈的当下,实时获取海量商品数据成为企业把握市场动态、制定精准策略的关键。然而,高并发场景下对淘宝 API 的调用极易引发性能瓶颈与稳定性问题。本文将围绕高并发场景下淘宝 API 开发,深入讲解商品数据实时采集的技术要点&a…...

如何将Qt程序打包成应用程序?

1、使用release模式,编译项目 2、新建一个文件夹(不要有中文路径),将刚才编译生成的可执行文件(.exe)放入新建的文件夹下。 可执行文件通常生成在项目目录下的构建文件夹中,如 build-项目名-套…...

AI重塑网络安全:机遇与威胁并存的“双刃剑”时代

一、引言 人工智能(AI)技术的迅猛发展,正在深刻改变网络安全行业的格局。从ChatGPT生成钓鱼邮件到AI驱动的漏洞挖掘,从零信任架构的普及到安全大模型的实战应用,AI既是攻击者的“新武器”,也是防御者的“新…...

c++基础·列表初始化

目录 一、列表初始化的核心优势 二、基础数据类型与数组初始化 1. 基础类型初始化 2. 数组初始化 三、类与结构体初始化 1. 构造函数匹配规则 2. 注意事项 四、标准容器初始化 五、聚合类型(Aggregate Types)初始化 1. 聚合类型定义 2. 初始化…...

颠覆传统!毫秒级响应的跨平台文件同步革命,远程访问如本地操作般丝滑

文章目录 前言1. 安装Docker2. Go File使用演示3. 安装cpolar内网穿透4. 配置Go File公网地址5. 配置Go File固定公网地址 前言 在这个信息爆炸的时代,谁不曾遭遇过类似的窘境呢?试想,当你正于办公室中埋首案牍时,手机突然弹出一…...

目标检测中的损失函数(二) | BIoU RIoU α-IoU

BIoU来自发表在2018年CVPR上的文章:《Improving Object Localization With Fitness NMS and Bounded IoU Loss》 论文针对现有目标检测方法只关注“足够好”的定位,而非“最优”的框,提出了一种考虑定位质量的NMS策略和BIoU loss。 这里不赘…...

RS232 串行通信:C++ 实现指南

文章目录 一、RS232 简介1. 电气特性2. 传输速率3. 传输距离 二、在 C 中实现 RS232 通信1. Windows 平台(1)打开串行端口(2)配置串行通信参数(3)发送数据(4)接收数据(5&…...

电控---SWD协议

SWD协议是烧录调试常用的协议,本文对SWD协议进行了,覆盖物理层、协议层、寄存器结构、信号时序、安全特性、实际应用及最新发展趋势的讲解。 一、物理层架构与信号特性 1. 引脚定义与电气规范 核心引脚: SWDIO(双向数据线&…...

Linux系统下docker 安装 redis

docker安装最新版的redis 一、docker拉取最新版redis镜像 拉取镜像若没有指定版本,代表拉取最新版本 二、查询redis镜像 三、挂载配置文件 在docker容器内修改redis配置文件不方便,所以挂载配置文件,这样可以在外边修改redis配置 3.1 创建…...

第 2 篇:初探时间序列 - 可视化与基本概念

第 2 篇:初探时间序列 - 可视化与基本概念 (图片来源: Luke Chesser on Unsplash) 在上一篇《你好,时间序列!》中,我们了解了什么是时间序列数据以及学习它的重要性。现在,是时候卷起袖子,真正开始接触和探…...

适配器模式:化解接口不兼容的桥梁设计

适配器模式:化解接口不兼容的桥梁设计 一、模式核心:让不兼容的接口协同工作 在软件开发中,经常会遇到接口不兼容的情况:如旧系统提供的接口无法被新系统直接调用,或第三方库的接口与当前系统设计不匹配。适配器模式…...

科大讯飞Q1营收46.6亿同比增长27.7%,扣非净利同比增长48.3%

4月21日盘后,AI龙头科大讯飞(002230.SZ)发布2024年报,公司全年实现营业收入233.43亿元,同比增长18.79%,同期归母净利润为5.6亿元。 公司核心赛道业务保持快速增长,消费者、教育、汽车、医疗业务…...

基于大模型的血栓性外痔全流程风险预测与治疗管理研究报告

目录 一、引言 1.1 研究背景与目的 1.2 研究意义 二、血栓性外痔概述 2.1 定义与发病机制 2.2 临床表现与诊断方法 2.3 现有治疗手段综述 三、大模型在血栓性外痔预测中的应用原理 3.1 大模型技术简介 3.2 模型构建与训练数据来源 3.3 模型预测血栓性外痔的工作流程…...

Transformer系列(三):编码器—解码器架构

Transformer架构 一、多头自注意力 (Multi-head self-attention)将矩阵维度从d降到d/k的优点 二、层归一化 (Lary Norm)三、残差连接 (Residual Connections)Add and Norm 四、注意力对数几率缩放 (Attention logit scaling)五、T…...

C++入门小馆: 深入string类(二)

嘿,各位技术潮人!好久不见甚是想念。生活就像一场奇妙冒险,而编程就是那把超酷的万能钥匙。此刻,阳光洒在键盘上,灵感在指尖跳跃,让我们抛开一切束缚,给平淡日子加点料,注入满满的pa…...

MCU开发学习记录10 - 高级定时器学习与实践(HAL库)—PWM互补输出、死区控制、刹车控制 - STM32CubeMX

本文将介绍高级定时器的概念(只讲解高级定时器特有功能)、相关函数以及STM32CubeMX生成定时器的配置函数以及对生成定时器的配置函数进行分析(包括结构体配置、相关寄存器配置)。针对于高级定时器实践:实现输出PWM互补…...

pytest基础-new

规范 1、首先创建 py 文件命名以 test_ 开始或者以 _test 结尾 2、若是新建类,测试类需要以 Test_开头 3、测试用例(方法)需要以 test_开头 assert 断言 assert xx:判断 xx 为真 assert not xx:判断 xx 不为真 asse…...

利用Qt创建一个模拟问答系统

界面: 添加了聊天显示区域(QTextEdit) 添加了发送按钮和清空对话按钮 优化了布局和窗口大小添加了时间戳显示 2、功能: 支持实时对话可以清空对话历史 支持按回车发送消息 添加了简单的关键词匹配响应系统 交互体验&#x…...

CCF CSP 第37次(2025.03)(1_数值积分_C++)

CCF CSP 第37次(2025.03)(1_数值积分_C) 解题思路:思路一: 代码实现代码实现(思路一): 时间限制: 1.0 秒 空间限制: 512 MiB 原题链接 解题思路…...

使用 Flutter 遇坑小计

前言 首先, 谷哥很贴心地为国内用户准备了一份使用手册 不过很遗憾 就算你照着它的手册来了, 还是会在后续使用中遇到其它的坑 今天我踩了, 保不齐明天就是其他人(lol) running gradle task ‘assembledebug’ stuck 首先去确定下当下Android Studio(或者说你目前的Flutter项…...

C语言中的双链表和单链表详细解释与实现

C语言中的双链表详细解释与实现 双链表(Doubly Linked List)是一种常见的数据结构,它比单链表更灵活,因为每个节点都包含指向前驱和后继节点的指针。 双链表的基本结构 节点定义 c 复制 下载 typedef struct Node {int dat…...

CSS零基础入门笔记:狂神版

前言 本笔记是学习狂神的java教程,建议配合视频,学习体验更佳。 【狂神说Java】HTML5完整教学通俗易懂_哔哩哔哩_bilibili 第1-2章:Java零基础入门笔记:(1-2)入门(简介、基础知识)-CSDN博客 第3章&…...

使用python调用deepseek 多轮对话,详细讲解

以下代码实现在python中与deepseek实现多轮对话。 Messages参数是对话历史和上下文的核心载体。 数据结构: • 必须是包含消息对象的数组 • 每个消息对象必须包含: o role:发言者身份(system/user/assistant) o con…...

requestAnimationFrame是什么?【前端】

亲爱的读者,希望今天的你好心情~ 目录 requestAnimationFrame是什么?目的?举个栗子: requestAnimationFrame是什么? requestAnimationFrame 是一种用于优化动画性能的 JavaScript API。它允许你在浏览器的下一次重绘之…...

SQL Server基础

二. SQL Server数据库 1. 数据库简介 数据库本质是写成磁盘文件,在硬盘中存储用处 存储大量数据,方便检索和访问保持数据信息的一致、完整共享和安全通过组合分析,产生新的有用信息 数据库发展史 萌芽阶段:文件系统,…...

Vue-组件的懒加载,按需加载

在Vue项目中实现组件的懒加载(也称为按需加载或代码分割),可以大大提升应用的加载速度和性能。懒加载主要通过Webpack的代码分割功能实现,特别是使用动态导入(import()语法)。 为什么要使用懒加载&#xf…...

Docker 镜像、容器和 Docker Compose的区别

前言:Docker 的镜像、容器和 Docker Compose 是容器化技术的核心组件,以下是对它们的详细解析及使用场景说明。 ​​1、Docker 镜像(Image)​​ ​​定义​​: 镜像是只读模板,包含运行应用程序所需的代码、…...

批量创建同名文件夹并整理文件至对应文件夹

在我们的日常工作和生活中,创建文件几乎是必不可少的一部分。随着时间的推移,电脑中积累了大量的文件,管理这些文件成为一项繁琐且耗时的任务。尤其当我们需要按照一定规则对文件进行整理时,很多人会感到困惑。例如,领…...

每日一题——数据中心网络地址规划

文章目录 数据中心网络地址规划问题描述输入格式输出格式示例输入示例输出实现思路1. IP地址转换2. 区间排序3. 动态规划 C语言完整实现(含详细注释)总结 数据中心网络地址规划 问题描述 你是一名数据中心网络地址规划人员。每个业务需要一段IP地址区间…...

如何远程访问家中服务器-FRP内网穿透详细

💡 本文会带给你 如何远程访问家中服务器FRP自动运行的方法一、准备工作 准备一台具备公网 IP 的服务器(如阿里云、腾讯云等云服务器,要求不高,几十块一年服务的轻型服务就行),用于部署 FRP 服务端(frps)。 家中电脑(内网设备),用于运行 FRP 客户端(frpc)。 下…...

el-select+vue-virtual-scroller解决数据量大卡顿问题

解决el-select中数据量过大时,显示及搜索卡顿问题,及正确的回显默认选中数据 粗略的封装了组件,有需要各种属性自定义的,自己添加设置下 环境 node 16.20.1 npm 8.19.4 vue2、element-ui "vue-virtual-scroller"…...

数码管静态显示一位字符(STC89C52单片机)

#include <reg52.h> sbit ADDR0 P1^0; sbit ADDR1 P1^1; sbit ADDR2 P1^2; sbit ADDR3 P1^3; sbit ENLED P1^4; //用数组来存储数码管的真值表&#xff0c;数组将在下一章详细介绍 unsigned char code LedChar[] { 0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82…...

明心见性与真如三昧

在佛教禅宗体系中&#xff0c;明心见性与真如三昧是修行者追求的核心目标。明心见性作为修行的起点&#xff0c;揭示了众生的真如本性&#xff1b;而真如三昧则是巩固和深化这一证悟的关键修行方法。二者相辅相成&#xff0c;构成了禅宗修行的完整路径。 一、明心见性&#xf…...

并发设计模式之双缓冲系统

双缓冲的本质是 ​​通过空间换时间​​&#xff0c;通过冗余的缓冲区解决生产者和消费者的速度差异问题&#xff0c;同时提升系统的并发性和稳定性。 双缓冲的核心优势 优势具体表现解耦生产与消费生产者和消费者可以独立工作&#xff0c;无需直接同步。提高并发性生产者和消…...

使用谷歌浏览器自带功能将网页转换为PDF文件

将自己喜欢的技术网页转换为PDF文件有多种方法&#xff0c;这里介绍使用谷歌浏览器自带功能。 &#xff08;本文截图仅作为演示使用&#xff09; 使用谷歌浏览器自带功能 1.用Chrome浏览器&#xff0c;打开需要转换的网页&#xff0c;点击浏览器右上角的三个点&#xff08;菜…...

JavaEE--2.多线程

1.认识线程(Thread) 1.1概念 1)什么是线程 ⼀个线程就是⼀个 "执行流". 每个线程之间都可以按照顺序执行自己的代码. 多个线程之间 "同时" 执行着多份代码. 2)为什么要有线程 首先, "并发编程" 成为 "刚需". 1. 单核 CPU 的发展遇到…...

沐渥氮气柜控制板温湿度氧含量氮气流量四显智控系统

氮气柜控制板通常用于实时监控和调节柜内环境参数&#xff0c;确保存储物品如电子元件、精密仪器、化学品等&#xff0c;处于低氧、干燥的稳定状态。以下是沐渥氮气柜控制板核心参数的详细介绍及控制逻辑&#xff1a; 一、控制板核心参数显示模块 1&#xff09;‌温度显示‌&am…...

线性代数-矩阵的秩

矩阵的秩&#xff08;Rank&#xff09;是线性代数中的一个重要概念&#xff0c;表示矩阵中线性无关的行&#xff08;或列&#xff09;的最大数量。它反映了矩阵所包含的“有效信息”的维度&#xff0c;是矩阵的核心特征之一。 直观理解 行秩与列秩&#xff1a; 行秩&#xff1…...

【自然语言处理与大模型】模型压缩技术之量化

在这篇文章中想和大家分享什么是量化&#xff1f;为什么要量化&#xff1f;以及如何实现量化&#xff1f;通过这三个基本问题&#xff0c;我们不仅可以全面了解量化的内涵和外延&#xff0c;还能更清晰地认识到它在实践中的重要性和应用价值。 一、什么是量化呢&#xff1f; 大…...

OneClicker脚本自动运行工具

工作的时候&#xff0c;有很多琐碎的事情需要重复的做 比如打开某个文件&#xff0c;打开某个网站&#xff0c;打开某个软件 这个时候可以写个自动脚本&#xff0c;把机械琐碎的事情交给脚本处理 但是脚本一多&#xff0c;不好管理&#xff0c;而且要选择哪个脚本也是个麻烦的事…...

Activity之间交互

Backgroud&#xff1a; 想要实现Activity之间的交互&#xff0c;需要用到intent工具 本博客中所有第二Activity均为SecActivity&#xff0c;需要预先进行创建 本博客所使用的开发语言为Kotlin 使用intent调用Activity 显式调用 val intent Intent(this, SecActivity::class.…...