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

Seq2Seq模型:详述其发展历程、深远影响与结构深度剖析

在这里插入图片描述

Seq2Seq(Sequence-to-Sequence)模型是一种深度学习架构,专为处理从一个输入序列到一个输出序列的映射任务设计。这种模型最初应用于机器翻译任务,但因其灵活性和有效性,现已被广泛应用于自然语言处理(NLP)、语音识别、图像描述生成、对话系统、文本摘要等众多领域中涉及序列转换的问题。

一、Seq2Seq模型的发展与影响

1、早期研究与背景

循环神经网络(RNNs)的发展:早在上世纪80年代末,循环神经网络(RNNs)作为一种能够处理序列数据的神经网络结构就被提出。它们通过维护内部状态,能够捕捉序列数据中的时间依赖性。然而,由于当时计算资源有限以及训练方法不成熟,RNNs并未立即在NLP领域产生显著影响。

长短期记忆网络(LSTMs)与门控循环单元(GRUs):进入21世纪,随着计算能力提升和新的训练算法(如反向传播)的发展,RNNs的变体如长短期记忆网络(Long Short-Term Memory, LSTM)和门控循环单元(Gated Recurrent Unit, GRU)被提出。这些改进的RNN架构有效地解决了原始RNN在处理长序列时的梯度消失问题,使得神经网络能够更好地捕捉远距离依赖关系。

2、Seq2Seq模型的诞生

2014年,在机器翻译领域的研究中,一组由包括Ilya Sutskever、Oriol Vinyals和Quoc Le在内的研究人员组成的团队发表了开创性的论文《Sequence to Sequence Learning with Neural Networks》(https://arxiv.org/abs/1409.3215)。这篇论文标志着Seq2Seq模型的正式提出。他们在文中首次展示了如何使用深度学习,特别是基于RNN的架构,实现端到端(end-to-end)的机器翻译。

核心思想:Seq2Seq模型的核心思想是使用一个编码器网络将输入序列(如源语言句子)编码为一个固定维度的向量或一系列隐状态,然后使用一个解码器网络从这个向量或隐状态出发,逐词生成目标序列(如目标语言句子)。整个过程无需人工设计复杂的语言规则或中间表示,而是让神经网络自行学习如何进行有效的序列转换。

创新之处:这项工作的重要创新在于,它将深度学习应用于完整且复杂的序列转换任务,实现了从输入序列到输出序列的直接映射,打破了以往基于短语表或统计机器翻译中需要显式对齐、短语抽取等中间步骤的限制。这种端到端的学习方式极大地简化了翻译系统的构建,同时提高了翻译质量。

Attention机制:尽管基础Seq2Seq模型依赖于单一上下文向量来传递输入序列的信息,但在许多实际应用中,尤其是处理长序列或需要精细信息捕捉的任务时,会引入Attention机制以增强模型性能。Attention允许解码器在生成每个输出元素时,动态地关注输入序列的不同位置,并根据这些位置的重要性分配权重。这样,解码器不仅可以利用全局上下文,还能直接获取输入序列中与当前生成任务最相关的部分。

3、应用场景

  • 机器翻译:将源语言句子翻译成目标语言句子。

  • 文本摘要:将长篇文章压缩为简短的摘要。

  • 对话系统:根据用户输入生成合适的回应。

  • 语音识别转文字:将连续的语音信号转化为文字序列。

  • 图像描述生成:为给定图像生成相应的自然语言描述。

  • 问答系统:针对问题从文本中抽取或生成精确答案。

4、发展与影响

Seq2Seq模型的提出不仅革新了机器翻译领域,还迅速激发了NLP及其他相关领域(如语音识别、图像描述生成、对话系统等)的研究热潮。其成功应用推动了以下重要进展:

  • Attention机制的引入:尽管基础Seq2Seq模型已经取得了显著效果,但为了更好地处理长输入序列并允许解码器动态聚焦于输入序列的不同部分,Bahdanau等人在2014年的论文《Neural Machine Translation by Jointly Learning to Align and Translate》(https://arxiv.org/abs/1409.0473)中引入了Attention机制。这一创新极大地提升了模型性能,现已成为Seq2Seq模型的标准组件。

  • Transformer模型的提出:2017年,Vaswani等人在论文《Attention is All You Need》(https://arxiv.org/abs/1706.03762)中提出了完全基于自注意力机制的Transformer模型,进一步摒弃了循环结构,实现了并行化训练和更高效的序列建模。Transformer迅速成为NLP领域的主导模型架构,包括在Seq2Seq任务中的广泛应用。

总之,Seq2Seq模型的由来是深度学习技术在NLP领域不断演进的结果,尤其受到RNNs、LSTMs/GRUs等循环神经网络结构发展的深刻影响。其诞生标志了端到端学习在复杂序列转换任务中的可行性,并通过后续的Attention机制和Transformer模型的引入,持续推动着NLP及相关领域技术的进步。

二、Seq2Seq模型的结构

Seq2Seq(Sequence-to-Sequence)模型是一种专门设计用于处理序列到序列转换任务的深度学习架构,广泛应用于自然语言处理(NLP)、语音识别、图像描述生成等领域。其核心组成部分包括编码器(Encoder)和解码器(Decoder),下面对这两个部分的作用、结构进行详细解析:

1、编码器(Encoder)

在这里插入图片描述

作用

  • 特征提取与信息压缩:编码器的主要职责是从输入序列中提取关键特征,并将这些特征有效压缩到一个固定维度的向量(也称为上下文向量或隐状态向量)或一系列隐状态中。这个向量或隐状态序列应尽可能保留输入序列的语义信息,以便解码器在生成输出序列时使用。
  • 建立输入序列的内部表示:编码器通过其神经网络结构,学习如何将输入序列转化为一种形式化的内部表示,这种表示不仅包含了词汇层面的信息,还蕴含了句法、语义以及上下文关联等高级信息。

结构

  • 基本结构:传统的Seq2Seq编码器通常采用循环神经网络(RNN)家族成员,如简单RNN、长短期记忆网络(LSTM)或门控循环单元(GRU)。这些网络通过其递归特性,能够逐个处理输入序列中的元素(如单词或字符),并利用隐藏状态(Hidden State)在时间步之间传递信息。

    • 单向RNN:每个时间步的隐藏状态仅依赖于之前时间步的信息。
    • 双向RNN:除了单向RNN之外,还可以使用双向RNN,其中包含正向和反向两个独立的RNN,分别从左至右和从右至左处理输入序列,这样每个时间步的隐藏状态能同时考虑当前元素的前后上下文。
  • 多层结构:编码器可以有多层堆叠,形成深层网络,每层包含多个神经元,通过非线性变换进一步提取复杂特征。

  • 自注意力(Self-Attention):随着Transformer模型的出现,编码器结构转变为完全基于自注意力机制,每个输入元素与序列中所有其他元素进行交互,计算出权重,从而生成更为全局且动态的上下文表示。这种结构抛弃了循环依赖,允许并行计算,大大提升了处理效率。

2、解码器(Decoder)

在这里插入图片描述

作用

  • 条件生成:解码器的任务是在给定编码器产生的上下文向量或隐状态序列的基础上,生成对应的输出序列。它是一个条件概率模型,即给定输入序列的编码表示,预测输出序列中每个元素的概率分布。
  • 约束生成:在某些任务(如机器翻译)中,解码器还需要遵循特定的生成规则,例如在生成下一个词之前只能访问已生成的部分(自回归性),以及在生成过程中遵守语言学上的约束(如语法、语义一致性)。

结构

  • 基本结构:同样地,传统的Seq2Seq解码器也基于RNN架构,如LSTM或GRU。与编码器不同的是,解码器在生成输出序列时,不仅依赖于编码器提供的上下文向量,还要考虑已生成的输出序列部分。每个时间步,解码器接收上一时间步的隐藏状态和当前要生成的词的嵌入向量作为输入,生成下一个词的概率分布及更新自己的隐藏状态。

  • 自回归性:解码器在生成过程中通常采用自回归方式,即在预测序列中当前位置的词时,只考虑之前已经确定的词(已知的输出序列部分)。这通过在计算损失函数时使用掩码(masking)来确保模型不会看到未来的信息,保持预测的合理性。

  • Attention机制:为了解决编码器输出固定维度向量可能丢失长输入序列中重要信息的问题,解码器通常与Attention机制结合使用。解码器在每个生成时间步,不仅依据自身隐藏状态,还会通过Attention机制动态关注编码器输出的各个位置,获取与当前生成词最相关的输入序列信息。这增强了模型在生成时对输入序列全局上下文的理解和利用。

  • Transformer解码器:在Transformer模型中,解码器同样基于自注意力机制,但增加了额外的约束以保证自回归性。它包含自注意力层(self-attention layer),允许解码器内部考虑已生成的部分;跨注意力层(cross-attention layer),使解码器能关注编码器输出并从中获取相关信息。

总结来说,Seq2Seq模型的编码器负责将输入序列转化为紧凑且富含信息的内部表示,而解码器则依据此内部表示,按照特定任务的约束条件,逐个生成相应的输出序列元素。两者通常通过循环神经网络(或Transformer中的自注意力机制)构建,并可结合Attention机制来增强模型对输入序列全局信息的利用能力。

3、训练与推理

训练:Seq2Seq模型通常使用教师强制(Teacher Forcing)策略进行训练。在每个训练步骤中,给定输入序列及其对应的正确输出序列,模型会计算损失函数(如交叉熵损失)来度量预测输出与真实输出之间的差异。通过反向传播算法更新模型参数,以最小化总体损失。

推理:在实际应用中,模型需要进行自回归解码,即在生成序列的过程中,每个时刻的输出作为下一个时刻的输入。常用的方法包括贪心搜索(选择概率最大的词汇)、 beam search(保持多个候选序列,每一步保留概率最高的K个分支)等,以平衡生成质量和计算效率。

三、优势与挑战

优势

  • 处理变长序列:无需固定输入输出长度,适用于多种长度变化的序列转换任务。

  • 捕获序列依赖:通过循环结构或自注意力机制,模型能理解序列元素间的前后关系。

  • 通用性强:同一模型架构经过适当调整,可应用于多种序列到序列的转换场景。

挑战

  • 梯度消失/爆炸:在深层RNN结构中可能会出现,可通过使用LSTM、GRU等门控单元或Transformer的自注意力机制缓解。

  • 长序列建模:基础Seq2Seq模型在处理长输入时,单个上下文向量可能无法充分捕捉所有重要信息,Attention机制对此有所改善。

  • 教师强制偏差:训练时使用真实标签作为后续预测的输入,可能导致模型在实际推理时表现下降,beam search等策略有助于减轻此问题。

综上所述,Seq2Seq模型以其灵活的架构和对序列数据的强大处理能力,成为处理各类序列转换任务的标准工具之一。通过结合Attention机制和其他优化技术,这类模型能够在众多实际应用中展现出优异的表现。

在这里插入图片描述

相关文章:

Seq2Seq模型:详述其发展历程、深远影响与结构深度剖析

Seq2Seq(Sequence-to-Sequence)模型是一种深度学习架构,专为处理从一个输入序列到一个输出序列的映射任务设计。这种模型最初应用于机器翻译任务,但因其灵活性和有效性,现已被广泛应用于自然语言处理(NLP&a…...

公网如何访问内网?

公网和内网已经成为我们生活中不可或缺的存在。由于内网的安全性考虑,公网无法直接访问内网资源。如何实现公网访问内网呢?本文将介绍一种名为【天联】的私有通道技术,通过安全加密,保障数据传输的安全性。 【天联】私有通道技术 …...

手机定制开发_基于天玑900的5G安卓手机定制方案

手机定制方案基于联发科天玑900强劲旗舰八核2.4GHz处理器。这款处理器采用了6nm先进制程工艺,为用户带来了痛快淋漓的性能体验。不论是进行游戏还是日常娱乐,用户都能轻松驾驭。手机搭载了最新的Android 13操作系统,提高了数据读取的准确性&a…...

免费,C++蓝桥杯等级考试真题--第2级

C蓝桥杯等级考试真题–第2级...

panic 、asset、crash 的含义和区别

在编程中,“panic” 和 “assert” 都是用于处理错误和异常情况的机制,但在不同的编程语言和框架中有一些区别。 panic: 含义:通常表示程序发生了无法恢复的错误或异常情况,需要立即终止程序的执行。 用法&#xff1…...

解决Windows 10通过SSH连接Ubuntu 20.04时的“Permission Denied”错误

在使用SSH连接远程服务器时,我们经常可能遇到各种连接错误,其中“Permission denied, please try again”是较为常见的一种。本文将分享一次实际案例的解决过程,帮助你理解如何排查并解决这类问题。 问题描述 在尝试从Windows 10系统通过SS…...

Windows 下 PostgreSQL 图形化界面安装、配置详解

相信大家对PostgreSQL都不陌生吧,自从MySQL被Oracle所控制后,PostgreSQL就成为了国内去O的首选数据库了,并且PostgreSQL目前不受任何商业公司控制,所以国内很多厂商都是基于PostgreSQL做二次开发来实现数据库自主可控的目标(国内很…...

曾巩,散文的艺术与哲思

曾巩,字子固,世称南丰先生,南丰(今江西)人,生于北宋真宗天禧三年(公元1019年),卒于北宋元丰六年(公元1083年),享年64岁。他是中国北宋…...

【SpringBoot】怎么在一个大的SpringBoot项目中创建多个小的SpringBoot项目,从而形成子父依赖

父子项目工程创建 步骤 先创建父项目 具体操作步骤请看本文章:使用maven工程创建spring boot项目 创建子项目 file- project structure module–new module 剩下步骤请看创建父工程时的操作使用maven工程创建spring boot项目 应用 确认即可 之后创建启动类…...

vue3组件通信与props

title: vue3组件通信与props date: 2024/5/31 下午9:00:57 updated: 2024/5/31 下午9:00:57 categories: 前端开发 tags: Vue3组件Props详解生命周期数据通信模板语法Composition API单向数据流 Vue 3 组件基础 在 Vue 3 中,组件是构建用户界面的基本单位&#…...

并发和异步编程:详细概述

01 Concurrency and Asynchronous Programming: a Detailed Overview 并发和异步编程:详细概述 Asynchronous programming is one of those topics many programmers find confusing. You come to the point when you think you’ve got it, only to later realize that the …...

交易员摩拳擦掌,就在今年夏天,极端气候引爆商品?

有史以来最严重的高温炙烤下,从农业到能源到航运都可能受到严重负面影响,大宗商品市场波动将大幅加剧。 2024年有望成为有史以来最炎热的一年,随着北半球步入夏季,世界各地都将遭受由全球变暖造成的极端高温困扰。极端天气不仅给民…...

数据结构学习笔记

1. 数组 (Array) 定义 数组是一种线性数据结构,用于存储固定大小的相同类型元素集合。每个元素都有一个索引,用于快速访问。 特点 优点:访问速度快,通过索引直接访问O(1)时间复杂度。缺点:大小固定,插入…...

vscode导入自定义模块报错ModuleNotFoundError解决方案

问题描述 我的项目为great_gas_or_agents,目录结构如下: log_data_extract main.py math_algorithm 现在我运行main.py,报错:from math_algorithm.utils import parse_month_match_request,ModuleNotFoundError: No …...

go mod包管理与应用,常见错误排查方法

go mod包管理 go 中 包管理使用go mod 进行包管理 go mod init 项目名称 go mod init myproject_go生成的go.mod中有 module myproject_go 创建目录go_service 其下有两个go文件,go_request.go go_write.go . 根目录下有main.go入口文件。于是项目结构类似于&…...

数据结构作业

第1章 绪论 单选题 数据在计算机的存储器中表示时,逻辑上相邻的两个元素对应的物理地址也是相邻的,这种存储结构称之为________。 B. 顺序存储结构 算法指的是________。 D. 求解特定问题的指令有限序列 下面程序段的时间复杂度为:_______…...

项目纪实 | 版本升级操作get!GreatDB分布式升级过程详解

某客户项目现场,因其业务系统要用到数据库新版本中的功能特性,因此考虑升级现有数据库版本。在升级之前,万里数据库项目团队帮助客户在本地测试环境构造了相同的基础版本,导入部分生产数据,尽量复刻生产环境进行升级&a…...

富格林:应用正规技巧阻挠被骗

富格林悉知,随着如今入市现货黄金的朋友愈来愈多,不少投资者也慢慢开始重视起提高自身的正规投资技巧,希望能阻挠被骗更高效地在市场上获利。虽然目前黄金市场存在一定的受害风险,但只要投资者严格按照正规的交易规则来做单&#…...

【模型架构】学习RNN、LSTM、TextCNN和Transformer以及PyTorch代码实现

一、前言 在自然语言处理(NLP)领域,模型架构的不断发展极大地推动了技术的进步。从早期的循环神经网络(RNN)到长短期记忆网络(LSTM)、Transformer再到当下火热的Mamba(放在下一节&a…...

【LeetCode】38.外观数列

外观数列 题目描述: 「外观数列」是一个数位字符串序列,由递归公式定义: countAndSay(1) "1"countAndSay(n) 是 countAndSay(n-1) 的行程长度编码。 行程长度编码(RLE)是一种字符串压缩方法&#xff0c…...

如何解决Ubuntu中软件包安装时的404错误(无法安装gdb、cgddb等)

目录 问题描述 解决方法 1. 更新软件包列表 2. 使用--fix-missing选项 3. 更换软件源 4. 清理和修复包管理器 总结 在使用Ubuntu进行软件包安装时,有时可能会遇到404错误。这种错误通常是由于软件源中的某些包已经被移除或迁移到其他位置。本文将介绍几种解决…...

SpringBoot中MyBatisPlus的使用

MyBatis Plus 是 MyBatis 的增强工具,提供了许多强大的功能,简化了 MyBatis 的使用。下面是在 Spring Boot 中使用 MyBatis Plus 的步骤: 添加依赖:在 Maven 或 Gradle 的配置文件中添加 MyBatis Plus 的依赖。 配置数据源&#…...

前后端交互:axios 和 json;springboot 和 vue

vue 准备的 <template><div><button click"sendData">发送数据</button><button click"getData">接收</button><button click"refresh">刷新</button><br><ul v-if"questions&…...

前端技术专家岗(虚拟岗)

定位&#xff1a; 团队技术负责人、技术领导者&#xff1b;确保框架、工具的低门槛、高性能、可扩展&#xff1b; 素质要求&#xff1a; 具备架构设计能力&#xff1b;一个或者多个领域的技术专家&#xff1b;较为丰富的基础建设经验&#xff1b;项目管理能力、任务分解、协…...

redis windows环境下的部署安装

2024Redis windows安装、部署与环境变量 一、下载 Redis官网目前暂不支持Windows版本&#xff0c;只能从github中下载。 windows 64位系统下载redis路径&#xff1a;https://github.com/tporadowski/redis/releases&#xff0c;下载zip包。 目前Windows版本只更新到5.0的版本…...

大字体学生出勤记录系统网页HTML源码

源码介绍 上课需要一个个点名记录出勤情况&#xff0c;就借助AI制作了一个网页版学生出勤记录系统&#xff0c; 大字体显示学生姓名和照片&#xff0c;让坐在最后排学生也能看清楚&#xff0c;显示姓名同时会语音播报姓名&#xff0c; 操作很简单&#xff0c;先导入学生姓名…...

筛斗数据提取技术在企业成本预测中的应用

在当今的商业环境中&#xff0c;准确的成本预测对于企业的财务健康和战略规划至关重要。随着大数据和人工智能技术的飞速发展&#xff0c;数据提取技术已经成为企业进行成本预测的强大工具。本文将探讨数据提取技术如何帮助企业进行成本预测&#xff0c;并分析其对企业决策过程…...

enum编程入门:探索枚举类型的奥秘

enum编程入门&#xff1a;探索枚举类型的奥秘 在编程的世界里&#xff0c;enum&#xff08;枚举&#xff09;类型是一种特殊的数据类型&#xff0c;它允许我们为变量设置一组预定义的、有限的值。这种类型在很多编程语言中都得到了广泛的应用&#xff0c;为开发者提供了更加清…...

刷机 iPhone 进入恢复模式

文章目录 第 1 步&#xff1a;确保你有一台电脑&#xff08;Mac 或 PC&#xff09;第 2 步&#xff1a;将 iPhone 关机第 3 步&#xff1a;将 iPhone 置于恢复模式第 4 步&#xff1a;使用 Mac 或 PC 恢复 iPhone需要更多协助&#xff1f; 本文转载自&#xff1a;如果你忘记了 …...

计算属性和侦听器:为什么在某些情况下使用计算属性比使用methods更好,如何使用侦听器来监听数据的变化。

计算属性和methods的区别和使用场景 计算属性&#xff08;Computed properties&#xff09;是 Vue 中非常重要的一个功能&#xff0c;它有以下的优点&#xff1a; 数据缓存&#xff1a;计算属性基于它们的依赖进行缓存。只有在相关依赖发生变化时&#xff0c;才会重新求值。这…...

一文带你搞懂大事务的前因后果

引言 一文带你搞懂Spring事务上篇文章介绍了Spring事务相关内容&#xff0c;本文主要介绍业务开发中遇到的大事务问题。 https://github.com/WeiXiao-Hyy/blog 整理了Java,K8s,极客时间,设计模式等内容&#xff0c;欢迎Star! 什么是大事务 运行时间&#xff08;调用远程事务或…...

关系数据库:关系运算

文章目录 关系运算并&#xff08;Union&#xff09;差&#xff08;Difference&#xff09;交&#xff08;Intersection&#xff09;笛卡尔积&#xff08;Extended Cartesian Product&#xff09;投影&#xff08;projection&#xff09;选择&#xff08;Selection&#xff09;除…...

微信公众号开发(三):自动回复“你好”

上一篇做了服务器校验&#xff0c;但没有处理用户发来的消息&#xff0c;为了完成自动回复的功能&#xff0c;需要增加一些功能&#xff1a; 1、调整服务器校验函数&#xff1a; def verify_wechat(request):tokentokendatarequest.argssignaturedata.get(signature)timestamp…...

docker基本操作命令(3)

目录 1.Docker服务管理命令&#xff1a; 启动&#xff1a;systemctl start docker 停止&#xff1a;systemctl stop docker 重启&#xff1a;systemctl restart docker 开机自启&#xff1a;systemctl enable docker 查看docker版本&#xff1a; 2.镜像常用管理命令&…...

003 MySQL

文章目录 左外连接、右外连接 的区别where/having的区别执行顺序聚合 聚合函数MySQL约束事务一致性一致性的含义一致性在事务中的作用如何维护一致性 存储引擎 Innodb MyIsam区别事务的ACID属性数据库的隔离级别MySQL中的并发问题1. 锁等待和死锁2. 并发冲突3. 脏读、不可重复读…...

数据分析------统计学知识点(一)

1.在统计学中&#xff0c;均值分类有哪些&#xff1f; 算术均值&#xff1a;平均值&#xff0c;所有数值加总后除以数值的个数 几何均值&#xff1a;所有数值相乘后&#xff0c;再取其n次方根&#xff0c;n是数值的个数 调和均值&#xff1a;是数值倒数的算术均值的倒数 加…...

Apache Doris 基础 -- 数据表设计(分区分桶)

Versions: 2.1 本文档主要介绍了Doris的表创建和数据分区&#xff0c;以及表创建过程中可能遇到的问题和解决方案。 1、基本概念 在Doris中&#xff0c;数据以表的形式被逻辑地描述。 1.1 Row & Column 表由行和列组成: 行:表示用户数据的单行;列:用于描述一行数据中的…...

题目:求0—7所能组成的奇数个数。

题目&#xff1a;求0—7所能组成的奇数个数。 There is no nutrition in the blog content. After reading it, you will not only suffer from malnutrition, but also impotence. The blog content is all parallel goods. Those who are worried about being cheated should…...

网络协议学习笔记

HTTP协议 简单介绍 HTTP属于应用层 HTTP可以简单的理解成类似json一样的文本封装&#xff0c;但是这是超文本&#xff0c;所以可以封装的不止有文本&#xff0c;还有音视频、图片等 请求方法 HTTP报文格式 三大部分 起始行&#xff1a;描述请求或响应的基本信息头部字段…...

C语言文件操作:打开关闭,读写

程序文件 源程序文件&#xff08;后缀为.c&#xff09; 目标文件&#xff08;Windows环境后缀为.obj&#xff09; 可执行文件&#xff08;Windows环境后缀为.exe&#xff09; fputc FILE* pf fopen("test.txt","w");if (pf NULL){printf("%s\n"…...

启智CV机器人,ROS,ubuntu 20.04 【最后一步有问题】

资料&#xff1a; https://wiki.ros.org/kinetic/Installation/Ubuntu https://blog.csdn.net/qq_44339029/article/details/120579608 装VM。 装ubuntu20.04 desktop.iso系统。 装vm工具&#xff1a; sudo apt update sudo dpkg --configure -a sudo apt-get autoremove o…...

React-生成随机数和日期格式化

生成随机数 uuid文档&#xff1a;https://github.com/uuidjs/uuid npm install uuid import {v4 as uuidV4} from uuid 使用&#xff1a; uuidV4() 日期格式化 dayjs文档&#xff1a;安装 | Day.js中文网 npm install dayjs import dayjs from dayjs...

11Linux学习笔记

Linux 实操篇 目录 文章目录 Linux 实操篇1.rtm包&#xff08;软件&#xff09;1.1 基本命令1.2 基本格式1.3安装rtm包1.4卸载rtm包 2.apt包2.1 基本命令结构2.2 常用选项2.3常用命令 1.rtm包&#xff08;软件&#xff09; 1.1 基本命令 1.2 基本格式 1.3安装rtm包 1.4卸载r…...

004 仿muduo实现高性能服务器组件_Buffer模块与Socket模块的实现

​&#x1f308;个人主页&#xff1a;Fan_558 &#x1f525; 系列专栏&#xff1a;仿muduo &#x1f339;关注我&#x1f4aa;&#x1f3fb;带你学更多知识 文章目录 前言Buffer模块Socket模块 小结 前言 这章将会向你介绍仿muduo高性能服务器组件的buffer模块与socket模块的实…...

研发效能DevOps: Ubuntu 部署 JFrog 制品库

目录 一、实验 1.环境 2.Ubuntu 部署 JFrog 制品库 3.Ubuntu 部署 postgresql数据库 4.Ubuntu 部署 Xray 5. 使用JFrog 增删项目 二、问题 1.Ubuntu 如何通过apt方式部署 JFrog 制品库 2.Ubuntu 如何通过docker方式部署 JFrog 制品库 3.安装jdk报错 4.安装JFrog Ar…...

hadoop学习笔记

hadoop集群搭建 hadoop摘要 Hadoop 是一个开源的分布式存储和计算框架&#xff0c;旨在处理大规模数据集并提供高可靠性、高性能的数据处理能力。它主要包括以下几个核心组件&#xff1a; Hadoop 分布式文件系统&#xff08;HDFS&#xff09;&#xff1a;HDFS 是 Hadoop 的分布…...

使用dockerfile快速构建一个带ssh的docker镜像

不多说先给代码 FROM ubuntu:22.04 # 基础镜像 可替换为其他镜像 USER root RUN echo root:root |chpasswd RUN apt-get update -y \&& apt-get install -y git wget curl RUN apt-get install -y openssh-server vim && apt clean \&& rm -rf /tmp/…...

linux部署运维1——centos7.9离线安装部署涛思taos2.6时序数据库TDengine

在实际项目开发过程中&#xff0c;并非一直都使用关系型数据库&#xff0c;对于工业互联网类型的项目来说&#xff0c;时序型数据库也是很重要的一种&#xff0c;因此掌握时序数据库的安装配置也是必要的技能&#xff0c;不过对于有关系型数据库使用的开发工作者来说&#xff0…...

Linux shell编程学习笔记51: cat /proc/cpuinfo:查看CPU详细信息

0 前言 2024年的网络安全检查又开始了&#xff0c;对于使用基于Linux的国产电脑&#xff0c;我们可以编写一个脚本来收集系统的有关信息。对于中央处理器CPU比如&#xff0c;我们可以使用cat /proc/cpuinfo命令来收集中央处理器CPU的信息。 1. /proc/cpuinfo 保存了系统的cpu…...

Ps:调整画笔工具

调整画笔工具 Adjustment Brush Tool可以将选区、创建蒙版和应用调整的传统工作流程合并为一个步骤&#xff0c;简化了对图像进行非破坏性局部调整的操作。 快捷键&#xff1a;B 调整画笔工具是 Photoshop 2024 年 5 月版&#xff08;25.9 版&#xff09;新增的工具。 ◆ ◆ …...