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

循环神经网络 - LSTM 网络的各种变体

前面的博文中,我们了解和学习了长短期记忆网络,本文我们来学习LSTM 网络的各种变体。

目前主流的 LSTM 网络用三个门来动态地控制内部状态应该遗忘多少历史信息,输入多少新信息,以及输出多少信息.我们可以对门控机制进行改进并获 得 LSTM 网络的不同变体。

一、无遗忘门的 LSTM 网络

“无遗忘门的 LSTM”指的是一种 LSTM 网络的变体,其中省略了常规 LSTM 中负责过滤和遗忘前一时刻记忆信息的遗忘门(Forget Gate)。为了更具体地解释其原理,我们先回顾标准 LSTM 的内部计算,然后说明如果没有遗忘门网络如何运作,并通过例子说明其影响。

(一)标准 LSTM 的门控机制回顾

在标准 LSTM 中,每个时间步的内部状态由下面几个部分构成:

  1. 遗忘门 f_t​
    控制前一时刻记忆 c_{t-1}​ 中哪些信息应被“遗忘”。其计算为:

  2. 输入门 i_t​ 与候选记忆
    输入门决定哪些新信息将写入记忆单元,候选记忆则是当前输入和前一时刻隐藏状态生成的新信息表达:

  3. 记忆单元更新 c_t​
    综合使用遗忘门和输入门,记忆单元更新公式为:

  4. 输出门 oto_tot​ 与隐藏状态 hth_tht​
    最后,通过输出门调制记忆单元的(经tanh⁡ 激活处理的)输出得到当前时间步的隐藏状态:

遗忘门起到了控制长程信息更新的关键作用,即允许网络根据当前上下文动态“忘记”一部分旧记忆,从而避免长期信息累积引起的干扰。

(二)无遗忘门的 LSTM

在“无遗忘门的 LSTM”中,遗忘门的计算和操作被省略或用固定值来代替。常见的处理方式有以下两种:

  • 固定遗忘比例为 1:即不对上一时刻的记忆进行过滤,更新公式变为:

    这意味着所有之前的记忆信息都被完整保留,只有通过输入门加入的候选记忆作为“增量”叠加到现有记忆上。

  • 或者直接省略掉遗忘门的相应参数和计算,使得模型结构更简单,但缺少对历史信息筛选的能力。

影响
没有遗忘门的 LSTM 就无法选择性地丢弃那些不再相关的信息,这可能导致模型在面对长序列或者信息不断变化的任务时,容易“记住太多”过时或噪声信息,从而影响学习效果和泛化能力。

(三)例子:文本生成任务

假设我们训练一个 LSTM 来生成连续的文本句子。例如,从句子 “我爱阅读经典小说”,要求模型学习如何根据前面的内容生成下一个词语。

  • 标准 LSTM 的情况
    当模型处理句子开始部分(如“我爱”)时,遗忘门会根据当前上下文决定,保留哪些信息供后续使用,同时“遗忘”一些无关信息。当句子进入后半部分(比如“阅读经典小说”)时,前面关键信息(“我爱”)仍然能被选定性地保留,而不相关或噪声信息则被滤除。这帮助模型在生成下一词时能根据句子整体语义做出较为准确的预测。

  • 无遗忘门的情况
    如果使用无遗忘门的 LSTM,假设更新公式为

    那么在处理同样的句子时,整个句子中所有的信息(无论是否相关)都会累积到记忆单元中。比如,开始“我爱”的信息被直接保留,不会有门控机制来过滤掉后续可能干扰的信息。随着句子的扩展,记忆单元会不断累加新信息,可能导致后续在生成时,模型难以区分哪些信息是真正重要的,哪些只是噪声或冗余。这可能会造成生成的文本缺乏连贯性或产生不相关的词语,因为模型没有机制“遗忘”不再需要的背景信息。

  • 标准 LSTM 通过遗忘门动态调整记忆单元中的信息分布,使得模型能精准抓住长期关键信息,丢弃无关内容。

  • 无遗忘门的 LSTM 则缺少这种动态调整机制,所有历史信息都被累积,可能导致信息过载,使模型难以形成清晰的长期依赖表示。

这一例子显示出门控机制(尤其是遗忘门)对保持良好记忆状态的重要性,也说明为什么设计标准 LSTM 时引入了这种机制,以更好地适应实际任务中信息流动的复杂需求。

(四)无遗忘门的 LSTM 网络的意义和应用场景

虽然这种设计在很多任务中不如标准 LSTM 灵活,但在某些特定场景下,这种结构也有其意义和应用价值。具体可以从以下几个方面理解:

1. 意义
  • 完全保留历史信息
    在无遗忘门的 LSTM 中,记忆单元的更新公式通常简化为

    这里模型不会主动丢弃任何历史信息,而是总是将所有信息累积起来。这种设计在理论上能够保留所有过往输入,避免遗漏任何细节。

  • 简化模型结构
    去掉遗忘门会减少模型参数和计算步骤,结构上也更简单。这在某些资源受限或对实时性要求极高的应用场景下可能带来一定的优势,虽然这也会牺牲一部分选择性和灵活性。

  • 适应特定数据特性
    在某些任务中,输入序列的长度较短或者输入数据本身噪声较少、信息密度较高时,保留所有历史信息未必会引入太多无用信息。这时,去掉遗忘门可以简化训练过程,使模型专注于累积和传递所有输入的信号。

2. 应用场景举例
  • 短序列任务
    如果输入序列非常短(例如只有几个时间步),历史信息量不会很大,此时强制保留所有输入(无遗忘门)可能不会引发记忆“过载”。例如,在简单的累加运算或短句子生成中,所有输入的信息都对最终输出有贡献,完全保留可能有助于模型更直接地学习输入与输出之间的映射。

  • 信息累积型任务
    一些任务需要将所有前面输入的信息累积,如简单的计数、累计和等问题。例如,若任务要求输出输入数值的累计和,那么每一个输入都应该被完整“记住”下来,无需遗忘。无遗忘门的结构可以有效保证前面所有数字都被记录。

  • 噪声较低的环境
    如果输入序列本身噪声很少,每个输入信号都极具价值,那么遗忘门可能不那么必要。去掉遗忘门可以使模型简单直接地将所有信息累加,从而避免因遗忘门参数调控不当而导致信息丢失。

3. 局限与权衡
  • 信息冗余问题
    无遗忘门的 LSTM 在长序列上容易出现信息“累积过多”的问题,即不相关或过时的信息也被保留下来,可能会干扰模型的预测。这在较长、噪声较多或信息相关性不强的任务中会显得不利。

  • 训练稳定性与灵活性
    遗忘门在标准 LSTM 中起着关键作用,它允许模型在时间上动态调整保留和遗忘的平衡。无遗忘门的结构则失去了这种灵活性,可能在捕捉长程依赖时效果较差,尤其当序列长度增加时容易出现性能下降。

4.无遗忘门的 LSTM 网络的意义在于:
  • 简化结构与计算:减少参数和门控步骤,使模型设计更简单。

  • 适用于短序列或信息累积明确的任务:当序列较短或任务要求对所有历史输入无差别累积时,无遗忘门设计可以直接保存所有信息,不引入额外的遗忘机制。

  • 降低计算成本:在资源受限或对实时性要求非常高的情况下,简化的结构可能会带来一定的效率提升。

        然而,对于长序列、噪声较多或需要动态过滤历史信息的任务,遗忘门的存在往往能更好地控制信息流,改善模型性能。因此,是否使用遗忘门需要依据具体任务和数据特性做出权衡。

二、peephole 连接

Peephole 连接 是 LSTM 网络的一种变体,其核心思想是让门(例如输入门、遗忘门和输出门)在计算时不仅依据前一时刻的隐藏状态 h_{t-1}​ 和当前输入 x_t​,还直接考虑前一时刻的记忆单元状态 c_{t-1}​(以及在某些情况下当前记忆 c_t)。这种设计允许门“窥视”记忆单元,从而可以获得更多关于内部长期依赖的信息,增强了模型对细微时序变化的敏感性。

1. 标准 LSTM 与 Peephole LSTM 的区别

与上述标准 LSTM 对比,Peephole LSTM的不同点如下:

Peephole LSTM 中,门的计算会额外加入与记忆单元 c_{t-1}​(或者在输出门中加入 c_t)相对应的“窥视”连接。例如,改进后的计算可能为:

通过将 c_{t-1} 或 c_t 引入这些计算中,LSTM 的门能够直接依据记忆单元的状态做出更精确的决策。

2. 为什么引入 Peephole 连接?

引入 Peephole 连接的主要动机在于提高模型对时间依赖信息的捕捉能力。传统的 LSTM 仅依赖 h_{t-1}​ 来为门提供信息,而隐藏状态 h_{t-1}​ 是经过非线性激活处理后的输出,其信息已经被压缩或者变形。相比之下,原始记忆单元 c_{t-1} 的信息可能更丰富,直接“窥视” c_{t-1} 能够为门控提供额外的细粒度信息,帮助模型更精确地决定:

  • 何时遗忘旧信息(遗忘门)。

  • 何时将新的信息写入记忆单元(输入门)。

  • 何时输出记忆单元中的信息(输出门)。

这种机制尤其适用于长序列或存在复杂时序关系的任务,帮助捕获长程依赖和细微变化。

3. 例子说明

任务情境:文本生成中的语义记忆

假设我们训练一个 LSTM 模型生成文本,例如预测下一个单词。考虑一个句子:“在美丽的阳光下,…”

  • 在标准 LSTM 中,上一时刻隐藏状态 h_{t-1}​ 从前面的词汇“美丽的”中获得信息,然后与当前输入“阳光”组合生成候选记忆、输入门等。然而,隐藏状态中经过激活函数处理后的信息可能会丢失一些细节。

  • 使用 Peephole 连接 后,遗忘门和输入门在判断如何更新记忆时,不仅使用 h_{t-1}​ 和当前输入 x_t,还直接查看了上一时刻的记忆单元 c_{t-1}​。假设 c_{t-1} 中存储了关于“美丽的”这一概念的较完整信息,那么遗忘门可以据此决定是否保留这一描述信息,以便在生成后续语句时保留“美丽”的语义;输入门则能准确将“阳光”这一新信息按合适比例加入记忆中。最终,输出门结合新的记忆 c_t​ 再次输出隐藏状态 h_t ,使得生成的文本既能反映之前的“美丽的”情感,也能响应新输入“阳光”的信息,从而生成连贯而富有语义的下一个词,例如“温暖”或者“灿烂”等。

这种例子说明:

  • 候选记忆与输入门

Peephole 连接让 LSTM 的门(遗忘门、输入门、输出门)能直接“偷窥”记忆单元的状态(如 c_{t-1} 或 c_t),为更新和输出决策提供更多原始的、未经过激活压缩的信息。这在处理复杂时序数据,尤其需要捕捉长程依赖和细微动态变化的任务中,能有效提升模型表现。通过具体的文本生成例子,我们可以看到这种机制如何帮助模型更精确地管理信息流,实现更连贯、更有语义深度的输出。

三、耦合输入门和遗忘门

耦合输入门和遗忘门的 LSTM 是一种变体,其核心思想在于简化标准 LSTM 中门控机制的设计,将原本分开的输入门和遗忘门合并成一个门,从而减少参数数量和计算复杂性,同时使得模型在更新记忆时能通过一个“统一”的机制来决定同时保留旧信息和引入新信息的比例。

1. 理解耦合门的机制

在标准 LSTM 中,记忆单元更新公式为:

其中:

  • f_t(遗忘门)控制保留前一时刻记忆 c_{t-1}​ 的比例,

  • i_t(输入门)控制将候选记忆 ​ 更新到当前状态的程度。

在耦合输入门和遗忘门的变体中,这两个门被合并为一组互补的机制,即让:

此时,记忆单元更新就变成:

这种设计意味着一个统一的门(通常仍用 i_t 表示)控制着同时写入新信息和遗忘旧信息的比例。当 i_t 的值较大时,新信息占比更多,前一时刻的信息被淡化;而当 i_t​ 的值较小时,旧记忆会被更多地保留。

2. 举例说明

假设我们有一个文本生成任务,要根据前面的上下文预测下一个词。比如,输入部分为“天气非常”,目标是生成一个描述天气的词。

  • 在处理“天气非常”时,模型的记忆单元已经包含了前面两词的信息;

  • 当新输入(例如一个描述天气变化的词语)到来时,耦合门 iti_tit​ 会通过与当前输入和先前隐藏状态共同计算,得到一个数值,比如:

    表示在不同维度上,模型认为当前输入的影响程度;

  • 由于采用耦合机制,遗忘门自动变成 f_t = 1 - i_t,例如对应维度上可能为:

  • 随后记忆单元更新为:

    这意味着,对于记忆单元的每个维度,如果 i_t 值高,则新输入(候选记忆 ​)将较多地写入;如果 i_t 值低,则旧记忆 c_{t-1} 保留较多。

例如,假设在某个维度上:

在这种情况下,模型决定主要采用新输入的信息,同时舍弃大部分之前的记忆。这种门控方式在生成任务中可以使得模型在面对当前变化较大的上下文时,灵活调整记忆,更新更有效的信息,从而生成更加符合上下文的新内容。

3. 具体应用场景

耦合输入门和遗忘门的变体主要适用于以下场景:

  • 资源受限环境
    由于该变体减少了参数和计算步骤,适合在移动设备或嵌入式系统等资源有限的场景中使用,同时还能保持较好的性能。

  • 简单或短序列任务
    当序列较短或信息变化不是非常剧烈时,采用耦合门可以简化模型设计,不需要太复杂的门控结构来过滤冗余信息。例如,在简单的语音命令识别或短文本生成任务中,耦合门可能已经足够。

  • 实时处理场景
    更简化的结构意味着计算开销降低,这在实时应用(如在线翻译、对话系统、实时预测)中可以提高响应速度。

  • 训练数据有限的场景
    较少的参数可以降低模型过拟合的风险,适合在训练数据不充足的情况下应用。

耦合输入门和遗忘门的 LSTM 通过将原本独立的两个门设计为互补关系,大大简化了网络结构。通过这种设计,模型用一个统一的门决定同时应该接纳多少新信息和遗忘多少旧信息。具体例子中展示了如何根据当前输入计算得到 i_t​,并自动得到 f_t​,从而控制记忆单元的更新。这种机制在实时处理、资源受限、短序列任务等场景下具有较高的实用性,既保证了模型一定的灵活性,又降低了计算和参数复杂度。

相关文章:

循环神经网络 - LSTM 网络的各种变体

前面的博文中,我们了解和学习了长短期记忆网络,本文我们来学习LSTM 网络的各种变体。 目前主流的 LSTM 网络用三个门来动态地控制内部状态应该遗忘多少历史信息,输入多少新信息,以及输出多少信息.我们可以对门控机制进行改进并获…...

LangGraph 概述

LangGraph 介绍 LangGraph 是 LangChain 框架的扩展,专为创建基于大型语言模型(LLMs)的有状态、多角色应用而设计。它提供了一个灵活的架构,用于构建复杂的多步骤 LLM 应用,其中状态管理和流程控制至关重要。 为什么…...

Linux系统06---信号

目录 信号 1.1 进程间通信方式 1.2 信号的概念 1.3 查看信号 1.4 信号的产生 1.5 信号的处理 信号的 API 函数 2.1 函数名:kill() 2.2 函数名:raise() 2.3 函数名:alarm() 2.4 函数名:pause() 2.5…...

Java 程序调试与生产问题排查工具Arthas

好的,以下是修改后的博客内容,将公司信息替换为通用的占位符: 深入探索 Arthas:Java 程序调试与生产问题排查的利器 在 Java 开发中,调试和诊断问题往往是一个复杂且耗时的过程。Arthas(Alibaba Java Dia…...

PH热榜 | 2025-04-11

1. Voicenotes Pages 标语:如果出版的感觉像是在和朋友聊天呢? 介绍:Voicenotes Pages 是一个极其简单的发布创意和故事的方式。它就像是一个简易的博客或播客,但更容易上手。你只需录制内容,点击发布,就…...

从三围学校项目看:中建海龙智能建造的崛起与突破

在建筑行业迈向智能化、数字化的浪潮里,中建海龙科技有限公司(以下简称“中建海龙”)从中脱颖而出,成为推动智能建造发展的重要力量。凭借深厚的技术积累、创新的理念以及先进的实践,中建海龙正引领着建筑行业的变革&a…...

aviator 自定义表达式

引入依赖 如果你使用的是 Maven 项目&#xff0c;在 pom.xml 中添加以下依赖&#xff1a; <dependency><groupId>com.googlecode.aviator</groupId><artifactId>aviator</artifactId><version>5.3.2</version> </dependency>…...

电商中的购物车(redis的hash类型操作)

购物车样式 ①、创建service-cart模块 spring:profiles:active: devserver:port: 8513 spring:application:name: service-cartcloud:nacos:discovery:server-addr: localhost:8848data:redis:host: localhostport: 6379启动类 SpringBootApplication(excludeDataSourceAutoC…...

Ubuntu 系统错误日志常见问题

一、Ubuntu 系统日志文件位置 1. 核心系统日志 日志文件用途说明/var/log/syslog所有系统级别的日志(包括内核、服务等)/var/log/kern.log内核相关的详细日志(如硬件驱动问题)/var/log/auth.log用户认证日志(SSH登录、sudo权限等)/var/log/dpkg.log软件包安装/卸载日志/…...

《Uniapp-Vue 3-TS 实战开发》TypeScript 泛型详解

泛型(Generics)是 TypeScript 中非常重要的特性,它允许我们创建可重用的组件,这些组件可以支持多种类型,而不会丢失类型安全性。 一、泛型基础 1. 基本概念 泛型允许我们在定义函数、接口或类时不预先指定具体类型,而是在使用时再指定类型。 // 不使用泛型 function …...

mysql 删除表等待

今天有个表加字段&#xff0c;语句是先删除&#xff0c;后重新建&#xff0c;表没有数据 &#xff0c;但是删除一个表的时候&#xff0c;语句drop table 提示超时 show processlist 后&#xff0c;等待类型是 Waiting for table metadata lock 取消重试几次后仍然是如此…...

如何深入理解protobuf

Protocol Buffers&#xff08;protobuf&#xff09;是一种轻便高效的结构化数据存储格式&#xff0c;用于数据序列化和反序列化&#xff0c;具有语言无关、平台无关、可扩展性强等特点&#xff0c;能有效提高数据存储和传输的效率。 一.协议的设计 我们在介绍protobuf之前我们…...

《分布式软总线牵手云服务,拓展应用新维度》

分布式软总线与云服务的融合&#xff0c;正掀起一场前所未有的变革&#xff0c;重塑着我们工作、生活和交互的方式。二者的结合&#xff0c;犹如天作之合&#xff0c;不仅打破了设备与数据之间的壁垒&#xff0c;更开启了一系列令人瞩目的全新应用场景。 分布式软总线&#xf…...

ReentrantLock 实现公平锁和非公平锁的原理!

&#x1f31f;我的其他文章也讲解的比较有趣&#x1f601;&#xff0c;如果喜欢博主的讲解方式&#xff0c;可以多多支持一下&#xff0c;感谢&#x1f917;&#xff01; &#x1f31f;了解 ThreadLocal请看&#xff1a; ThreadLocal有趣讲解&#xff0c;小白也能听懂&#xff…...

算法训练之动态规划(四)——简单多状态问题

♥♥♥~~~~~~欢迎光临知星小度博客空间~~~~~~♥♥♥ ♥♥♥零星地变得优秀~也能拼凑出星河~♥♥♥ ♥♥♥我们一起努力成为更好的自己~♥♥♥ ♥♥♥如果这一篇博客对你有帮助~别忘了点赞分享哦~♥♥♥ ♥♥♥如果有什么问题可以评论区留言或者私信我哦~♥♥♥ ✨✨✨✨✨✨ 个…...

【JavaScript】错误处理与调试

个人主页&#xff1a;Guiat 归属专栏&#xff1a;HTML CSS JavaScript 文章目录 1. JavaScript 错误处理基础1.1 错误类型1.2 try...catch 语句 2. 错误抛出与自定义错误2.1 throw 语句2.2 自定义错误类型 3. 异步错误处理3.1 Promise 错误处理3.2 async/await 错误处理 4. 调试…...

MySQL 管理与配置:查看端口、修改密码与数据存储位置

1.MySQL查看端口号 show global variables like port; 2.MySQL修改密码 grant all privileges on *.* to root% identified by 你的mysql密码 with grant option;flush privileges; 3.查询 MySQL 数据库的数据存储目录 MySQL 的所有数据库文件、表数据、索引、日志文件等都存…...

(四十二)Dart 中的接口与抽象类

Dart 中的接口与抽象类 Dart 的接口特性 在 Dart 中&#xff0c;接口的实现方式与 Java 有所不同。Dart 没有专门的 interface 关键字来定义接口&#xff0c;而是通过普通类或抽象类来实现接口的功能。以下是 Dart 接口的主要特点&#xff1a; 普通类或抽象类都可以作为接口 …...

Java习题:合并两个有序数组

文章目录 前言一、题目描述二、方法2.1 方法一2.2 方法二 前言 虽然这个题目很简单&#xff0c;但是在使用java语言实现的过程中&#xff0c;存在多种方法这是很有意思的一道题&#xff0c;所以小编在这里写下它的各种方法加深javase语法的学习。 提示&#xff1a;以下是本篇文…...

spm12_fMRI 2*4混合方差分析 Flexible factorial 对比矩阵

实验设计&#xff1a;2*4被试内设计 分析模型&#xff1a;spm 二阶分析中的 Flexible factorial 问题&#xff1a;Flexible factorial交互作用对比矩阵如何编写&#xff1f; 老师&#xff1a;deepseek老师【大神们看看这个矩阵是否可以如下编写&#xff1f;】 以下是来自de…...

力扣第272场周赛

周赛链接&#xff1a;竞赛 - 力扣&#xff08;LeetCode&#xff09;全球极客挚爱的技术成长平台 这场周赛是在课堂上模拟的, 总体来说比较简单, 但不幸被老师压力了。以下分享一下我的解题思路 如果你每天没有时间刷题的话, 可以看一下我写的东西, 我尽量讲解的通俗一些, 不会…...

【5】深入学习npm-Nodejs开发入门

深入学习npm npm详解npm的组成-registrynpm的组成-websitenpm的组成-clinpm-confignpm-initnpm-installnpm-startnpm-uninstallnpm-version其他命令 再谈registrypackage.json配置基本结构必填字段可选字段依赖管理其他配置完整配置 node_modules其他 npm详解 我们在前面安装N…...

2025.04.05 广东汕尾两日游记

2025.04.05 广东汕尾两日游记 文章目录 2025.04.05 广东汕尾两日游记一、前言二、我的两日游行程1、行程2、这两天吃喝玩乐的地方 三、其他1、汕尾两日游小结2、汕尾前十景点&#xff08;1&#xff09;玄武山旅游区&#xff08;2&#xff09;红海湾遮浪旅游区&#xff08;3&…...

【数学建模】(智能优化算法)鲸鱼优化算法(Whale Optimization Algorithm)详解与应用

鲸鱼优化算法(Whale Optimization Algorithm)详解与应用 文章目录 鲸鱼优化算法(Whale Optimization Algorithm)详解与应用1. 引言2. 算法原理2.1 生物学基础2.2 数学模型[^3]1. 包围猎物阶段2. 气泡网攻击&#xff08;螺旋更新&#xff09;3. 随机搜索猎物&#xff08;全局探索…...

11-Java并发编程终极指南:ThreadLocal与并发设计模式实战

Java并发编程终极指南&#xff1a;ThreadLocal与并发设计模式实战 一、ThreadLocal核心原理剖析 1. 线程本地存储实现机制 #mermaid-svg-EX865K5oO873R6OO {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-EX865K5o…...

数据库数据恢复——sql server数据库被加密怎么恢复数据?

SQL server数据库数据故障&#xff1a; SQL server数据库被加密&#xff0c;无法使用。 数据库MDF、LDF、log日志文件名字被篡改。 数据库备份被加密&#xff0c;文件名字被篡改。 SQL server数据库数据恢复过程&#xff1a; 1、将所有数据库做完整只读备份。后续所有数据恢…...

0501路由-react-仿低代码平台项目

文章目录 1 react路由1.1 核心库&#xff1a;React Router安装 1.2 基本路由配置路由入口组件定义路由 1.3 导航方式使用 <Link> 组件编程式导航 1.4 动态路由参数定义参数获取参数 1.5 嵌套路由父路由配置子路由占位符 1.6 重定向与404页面重定向404页面 1.7 路由守卫&a…...

C++二分查找

一、模板①&#xff1a;向下取整&#xff08;mid (l r) >> 1&#xff09; while (l < r) {int mid l r >> 1; // 等价于 (l r) / 2&#xff08;向下取整&#xff09;if (check(mid)) r mid; // 保留左半区else l mid 1; // 舍弃左半区 } 适用场…...

c++将jpg转换为灰度图

c将jpg转换为灰度图 step1:添加依赖 下载这两个文件&#xff0c;放在cpp同一目录下&#xff0c;编译生成 https://github.com/nothings/stb/blob/master/stb_image_write.h https://github.com/nothings/stb/blob/master/stb_image.hstep2:C:\Users\wangrusheng\source\repos…...

react/vue中前端多图片展示页面优化图片加载速度的五种方案

需求背景 在多项目中 例如官网项目中 会出现很多大图片显示的情况 这个时候就会出现图片过大 公司带宽不够之类导致页面加载速度过慢及页面出现后图片仍然占位但并未加载出来 或者因为网络问题导致图片区域黑块等等场景 这个时候我们就要对图片和当前场景进行优化 方案定…...

第二届电气技术与自动化工程国际学术会议 (ETAE 2025)

重要信息 2025年4月25-27日 中国广州 官网: http://www.icetae.com/ 部分 征稿主题 Track 1&#xff1a;电气工程 输配电、电磁兼容、高电压和绝缘技术、电气工程、电气测量、电力电子及其应用、机电一体化、电路与系统、电能质量和电磁兼容性、电力系统及其自…...

Windows 图形显示驱动开发-WDDM 2.0功能_上下文监视

功能概述 上下文监视机制是GPU与CPU协同计算的核心同步技术&#xff0c;通过受监视围栏&#xff08;Monitored Fence&#xff09;实现跨硬件单元的高效协调。其核心目标是解决以下场景的同步需求&#xff1a; GPU引擎间同步&#xff1a;例如在多渲染管线中&#xff0c;后处理…...

YOLOv12即插即用---PPA

1.模块介绍 多分支特征提取:PPA 模块采用局部卷积、全局卷积和串行卷积三种并行分支,从多个尺度和层次提取特征,有效保留小目标在多次下采样过程中的关键信息。 特征融合与注意力增强:在特征提取后,PPA 模块引入高效的通道注意力和空间注意力机制,实现自适应特征增强,…...

MySql主从相关概念

想象一下&#xff0c;你的业务飞速增长&#xff0c;用户请求如潮水般涌来&#xff0c;突然数据库主库宕机&#xff0c;数据丢失&#xff0c;服务瘫痪——这简直是开发者的噩梦&#xff01;MySQL主从复制就像一张安全网&#xff0c;通过主库写、从库读的协作模式&#xff0c;不仅…...

精品推荐-最新大模型MCP核心架构及最佳实践资料合集(18份).zip

精品推荐-最新大模型MCP核心架构及最佳实践资料合集&#xff0c;共18份。 1、2025年程序员必学技能&#xff1a;大模型MCP核心技术.pdf 2、MCP 架构设计剖析&#xff1a;从 Service Mesh 演进到 Agentic Mesh.pdf 3、MCP 架构设计深度剖析&#xff1a;使用 Spring AI MCP 四步…...

Qt模型-视图架构

引言 在GUI开发中&#xff0c;数据与界面的同步一直是核心挑战。传统方法将数据存储在界面组件内部容器中&#xff0c;容易引发数据冗余和同步问题。Qt的模型-视图&#xff08;Model-View&#xff09;架构通过解耦数据与界面&#xff0c;提供了更优雅的解决方案。本文将深入剖…...

Transformers 是工具箱,BERT 是工具。

Transformers 是工具箱&#xff0c;BERT 是工具。 &#x1f50d; 详细解释&#xff1a; 名称作用比喻理解举例&#x1f916; transformers&#xff08;库&#xff09;一个框架&#xff0c;提供很多 NLP 模型的“使用方式”&#xff0c;包括文本分类、问答、摘要等相当于一个“…...

AI应用企业研发方案

一、引言 在当今数字化时代&#xff0c;人工智能&#xff08;AI&#xff09;技术正以前所未有的速度融入各个行业&#xff0c;推动着企业的创新与变革。对于医药流通行业批发公司而言&#xff0c;面对日益激烈的市场竞争和不断变化的客户需求&#xff0c;借助AI技术提升企业的…...

Python实例题:Python实现iavaweb项目远端自动化更新部署

目录 Python实例题 题目 题目分析 需求理解 关键知识点 实现思路分析 代码实现 代码解释 execute_remote_command 函数&#xff1a; deploy_java_web_project 函数&#xff1a; 主程序&#xff1a; 运行思路 结束语 Python实例题 题目 Python实现iavaweb项目远端…...

NO.90十六届蓝桥杯备战|动态规划-区间DP|回文字串|Treats for the Cows|石子合并|248(C++)

区间dp也是线性dp的⼀种&#xff0c;它⽤区间的左右端点来描述状态&#xff0c;通过⼩区间的解来推导出⼤区间的解。因此&#xff0c;区间DP的核⼼思想是将⼤区间划分为⼩区间&#xff0c;它的状态转移⽅程通常依赖于区间的划分点。 常⽤的划分点的⽅式有两个&#xff1a; 基于…...

无人机在极端环境材料的选择

一、材料选择与优化 1. 耐低温/高温复合材料 碳纤维增强聚合物&#xff08;CFRP&#xff09;&#xff1a;具备高强度、低膨胀系数特性&#xff0c;适用于极寒&#xff08;-40℃&#xff09;和高温&#xff08;50℃&#xff09;环境&#xff0c;减少因温度变化导致的结构变形。…...

视觉目标检测大模型GAIA

中国科学院自动化研究所智能感知与计算研究中心携手华为等领军企业&#xff0c;共同推出面向产业应用的视觉目标检测全流程解决方案——GAIA智能检测平台。该研究成果已获CVPR 2021会议收录&#xff08;论文链接&#xff1a; 论文地址&#xff1a;https://arxiv.org/pdf/2106.…...

【数据分析实战】使用 Matplotlib 绘制折线图

1、简述 在日常的数据分析、科研报告、项目可视化展示中&#xff0c;折线图是一种非常常见且直观的数据可视化方式。本文将带你快速上手 Matplotlib&#xff0c;并通过几个实际例子掌握折线图的绘制方法。 Matplotlib 是 Python 中最常用的数据可视化库之一&#xff0c;它能够…...

[原创](现代Delphi 12指南): 设置、运行和调试你的第一个macOS应用程序.

[作者] 常用网名: 猪头三 出生日期: 1981.XX.XX 企鹅交流: 643439947 个人网站: 80x86汇编小站 编程生涯: 2001年~至今[共24年] 职业生涯: 22年 开发语言: C/C、80x86ASM、Object Pascal、Objective-C、C#、R、Python、PHP、Perl、 开发工具: Visual Studio、Delphi、XCode、C …...

第一个Qt开发的OpenCV程序

OpenCV计算机视觉开发实践&#xff1a;基于Qt C - 商品搜索 - 京东 下载安装Qt&#xff1a;https://download.qt.io/archive/qt/5.14/5.14.2/qt-opensource-windows-x86-5.14.2.exe 下载安装OpenCV&#xff1a;https://opencv.org/releases/ 下载安装CMake&#xff1a;Downl…...

APCC:CloudberryDB和Greenplum数据库的管理利器

在大数据时代&#xff0c;企业数据量激增&#xff0c;数据库的运维复杂度与日俱增。如何高效管理数据库集群、快速定位问题并保障系统稳定性&#xff0c;成为企业IT团队的核心挑战。Analytical Processing Central Console&#xff08;APCC&#xff09; 应运而生——这是一款专…...

3D打印革新制造范式:CASAIM 3D打印解决方案

在传统制造面临定制化需求激增与供应链效率瓶颈的双重挑战下&#xff0c;3D打印技术正以颠覆性姿态重塑产业格局。CASAIM深耕工业级3D打印领域十余年&#xff0c;以材料科学、工艺控制与数字化设计的深度融合&#xff0c;为航空航天、汽车制造、医疗器械等高精尖行业提供从原型…...

[蓝桥杯]小tips

记得return 0 输入输出 关闭同步流肯定会记得 但是要记得define endl \n 更重要 dfs和string传参的注意 题目链接 #include<bits/stdc.h> using namespace std;//#define int long long using ll long long; using ar2 array<int,2>; using ar3 array<i…...

安宝特案例 | Fundació Puigvert 医院应用AR技术开创尿石症治疗新纪元

案例介绍 在医疗科技不断进步的今天&#xff0c;Fundaci Puigvert 医院迈出了重要一步&#xff0c;成功应用AR技术进行了全球首例同时使用两台内窥镜的ECIRS手术&#xff08;内镜肾内联合手术&#xff09;&#xff0c;由Esteban Emiliani M.D. PhD F.E.B.U 博士主刀。这标志着…...

LangGraph 架构详解

核心架构组件 LangGraph 的架构建立在一个灵活的基于图的系统上&#xff0c;使开发者能够定义和执行复杂的工作流。以下是主要架构组件&#xff1a; 1. 状态管理系统 LangGraph 的核心是其强大的状态管理系统&#xff0c;它允许应用程序在整个执行过程中维护一致的状态&…...