Transformer网络发展概述2025.3.18
一.Transformer概述
1.1 定义与原理
Transformer是一种基于自注意力机制的深度学习模型,在处理序列数据时表现卓越。其核心原理包括:
- 自注意力机制 :允许模型同时考虑输入序列中的所有位置,捕捉语义关系
- 多头注意力 :扩展自注意力机制,学习不同的注意权重,并行处理信息子空间
- 堆叠层 :多个相同的编码器和解码器层堆叠,学习复杂特征表示和语义
这种结构使Transformer在自然语言处理和其他序列到序列任务中取得优异性能,为人工智能技术的发展奠定了重要基础。
1.2 关键特征
Transformer模型的关键特征主要包括:
- 自注意力机制 :通过计算输入序列中每个位置与其他位置的相关性,实现对全局信息的捕捉。
- 并行处理 :避免了循环神经网络中的顺序处理限制,显著提高了训练效率。
- 多头注意力 :同时学习多个表示子空间,捕捉更丰富的语义信息。
- 堆叠层结构 :通过堆叠多个相同的层,模型可以学习到更复杂的特征表示。
- 位置编码 :解决了自注意力机制中位置信息丢失的问题,使得模型能够处理序列数据。
这些特征共同赋予了Transformer在处理长序列数据时的卓越性能,为自然语言处理等领域带来了革命性的突破。
二.发展脉络
2.1 起源与突破
Transformer模型的起源可以追溯到深度学习领域对序列处理能力的不断探索。在Transformer出现之前,循环神经网络(RNN)及其更先进的版本,如长短时记忆网络(LSTM)和门控循环单元(GRU),是处理序列任务的主流架构。然而,这些模型的顺序处理特性限制了它们的并行化能力,尤其是在处理长序列时面临挑战。
Transformer模型的突破性进展主要体现在以下几个方面:
- 注意力机制的引入
- 2014年:首次应用于序列到序列的翻译任务
- 优势:允许模型在生成输出时关注输入序列的特定部分,有效提高处理长距离依赖关系的能力
- 多头自注意力机制的提出
- 2017年:Vaswani等人在论文“Attention Is All You Need”中首次提出Transformer模型
- 创新点:
- 完全摒弃循环层,仅依赖注意力机制
- 引入多头自注意力机制,实现高度并行化处理
- 引入位置编码概念,使模型能够感知序列中单词的顺序
- 预训练技术的革新
- 2018年:Google推出BERT(Bidirectional Encoder Representations from Transformers)
- 创新点:
- 在大规模语料库上预训练大型Transformer模型
- 针对特定任务进行微调
- 显著提升NLP任务性能
- 模型结构的创新
- 基于Transformer架构的变体不断涌现,如GPT、T5、RoBERTa等
- 这些模型在各种NLP基准测试中设定了新的标准,推动了自然语言处理领域的快速发展
这些关键突破不仅革新了自然语言处理领域,还为其他领域如计算机视觉、生物信息学等提供了新的技术工具。Transformer架构的通用性和灵活性使其在多个领域展现出巨大潜力,为人工智能技术的发展奠定了重要基础。
2.2 里程碑模型
Transformer架构的发展历程中,涌现出了多个具有里程碑意义的模型,这些模型不仅推动了自然语言处理领域的进步,也为人工智能技术的发展奠定了重要基础。以下是几个标志性的Transformer模型及其主要创新点:
-
GPT-1(Generative Pre-trained Transformer 1) :2018年由OpenAI发布,首次将Transformer架构应用于生成式预训练模型。GPT-1采用仅有解码器的Transformer结构,专注于预测下一个词元,为后续大规模预训练模型奠定了基础。
-
BERT(Bidirectional Encoder Representations from Transformers) :2018年由Google推出,创新点在于采用双向Transformer架构,能够同时捕捉输入序列的前后文信息。BERT在预训练阶段使用遮蔽语言模型(Masked Language Model)和下一句预测(Next Sentence Prediction)任务,显著提升了模型对语言语义的理解能力。
-
GPT-2(Generative Pre-trained Transformer 2) :2019年由OpenAI发布,将参数规模扩大到15亿,并使用大规模网页数据集WebText进行预训练。GPT-2的主要创新点包括:
- 多任务学习 :通过一种通用的概率形式来刻画不同任务的输出预测
- 零样本学习 :模型能够在不进行特定任务微调的情况下完成多种NLP任务
- GPT-3(Generative Pre-trained Transformer 3) :2020年由OpenAI推出,将模型参数规模扩展到了1750亿,相较于GPT-2提升了100余倍。GPT-3的主要创新点包括:
- 上下文学习 :允许大语言模型通过少样本学习解决各种任务
- 文本生成能力大幅提升 :能够生成连贯、富有逻辑的长篇文本
这些里程碑模型的发布不仅推动了自然语言处理技术的进步,也为人工智能在更广泛领域的应用和探索开辟了新的道路。随着技术的不断发展,我们期待未来会有更多基于Transformer架构的创新模型出现,进一步推动人工智能领域的发展。
2.3 技术演进
Transformer技术的演进是一个持续创新的过程,自2017年首次提出以来,研究人员不断探索新的改进和扩展,以提升模型的性能和适用性。这一演进过程可以分为以下几个关键阶段:
- 初始架构阶段
- 2017年:Vaswani等人在论文“Attention Is All You Need”中提出Transformer架构
- 创新点:
- 引入多头自注意力机制
- 实现高度并行化处理
- 解决长距离依赖问题
- 显著提升NLP任务性能
- 预训练技术革新阶段
- 2018年:Google推出BERT(Bidirectional Encoder Representations from Transformers)
- 创新点:
- 在大规模语料库上预训练大型Transformer模型
- 针对特定任务进行微调
- 显著提升NLP任务性能
- 模型结构创新阶段
- 2019年:OpenAI发布GPT-2,参数规模扩大到15亿
- 创新点:
- 多任务学习:通过一种通用的概率形式来刻画不同任务的输出预测
- 零样本学习:模型能够在不进行特定任务微调的情况下完成多种NLP任务
- 大规模预训练模型阶段
- 2020年:OpenAI推出GPT-3,参数规模扩展到1750亿
- 创新点:
- 上下文学习:允许大语言模型通过少样本学习解决各种任务
- 文本生成能力大幅提升:能够生成连贯、富有逻辑的长篇文本
- 技术优化阶段
- 2021年:Transformer-XL模型引入片段递归机制和相对位置编码机制
- 创新点:
- 片段递归机制:允许模型处理更长的上下文,超越固定长度学习依赖性
- 相对位置编码机制:有效利用位置信息,泛化至更长的注意力长度
- 跨模态融合阶段
- 2022年:Vision Transformer(ViT)将Transformer架构应用于计算机视觉领域
- 创新点:
- 将图像划分为固定大小的块,将其视为序列输入
- 在大规模图像数据集上预训练
- 在多个计算机视觉任务中取得优异性能
这些技术演进不仅推动了自然语言处理领域的进步,还为人工智能在更广泛领域的应用和探索开辟了新的道路。随着技术的不断发展,我们期待未来会有更多基于Transformer架构的创新模型出现,进一步推动人工智能领域的发展。
三.现状分析
3.1 应用领域
Transformer架构在多个领域展现出强大的应用潜力,特别是在自然语言处理和计算机视觉方面取得了显著进展。以下是Transformer在不同领域的具体应用:
- 自然语言处理
- 机器翻译 :Transformer模型在翻译任务中展现出卓越性能,能够处理长句子和复杂语言结构。
- 文本生成 :GPT系列模型能够生成连贯、富有逻辑的长篇文本,可用于故事创作、新闻报道等。
- 问答系统 :BERT模型通过预训练和微调,在各种问答任务中取得优异成绩。
- 计算机视觉
- 图像分类 :Vision Transformer(ViT)模型将图像划分为固定大小的块,将其视为序列输入,在大规模图像数据集上预训练后,在多个计算机视觉任务中取得优异性能。
- 目标检测 :DETR(Detection Transformer)模型采用端到端的架构,将目标检测问题转化为集合预测问题,显著简化了传统目标检测模型的复杂管道。
- 语义分割 :SETR(Segmentation Transformer)模型将Transformer架构应用于语义分割任务,通过直接处理整个图像作为序列,有效捕捉全局语义信息。
- 时间序列分析
- Time-LLM :一种基于Transformer的时间序列预测模型,通过重新编程时间序列输入和采用Prompt-as-Prefix (PaP)等技术,在处理长序列数据时表现出色。
- 多模态融合
- LLaVA :一种将视觉编码器与语言模型相结合的多模态大语言模型,能够处理图像问答、图像生成与描述等复杂任务,展示了Transformer在跨模态学习中的潜力。
- 科学计算
- 物理信息神经网络(PINNs) :将Transformer架构与物理定律相结合,用于解决复杂的偏微分方程问题,在科学计算领域展现出广阔的应用前景。
这些应用不仅展示了Transformer架构的通用性和灵活性,也为人工智能技术在各个领域的深入应用和创新提供了新的可能性。随着研究的不断深入,我们可以期待Transformer在更多领域发挥重要作用,推动人工智能技术的进一步发展。
3.2 性能评估
Transformer模型的性能评估是人工智能研究中的一个关键环节,直接反映了模型在各种任务中的表现。随着Transformer架构在自然语言处理和计算机视觉等领域的广泛应用,研究人员不断开发新的评估指标和方法来全面衡量其性能。
在自然语言处理领域,常用的评估指标包括:
指标 | 描述 | 应用场景 |
---|---|---|
困惑度 | 衡量语言模型预测能力的指标 | 语言建模任务 |
BLEU | 评估机器翻译质量的指标 | 机器翻译任务 |
ROUGE | 衡量自动摘要质量的指标 | 自动文本摘要任务 |
然而,这些传统指标在评估Transformer模型时存在局限性。例如,困惑度可能无法准确反映模型在长文本生成任务中的性能。为了更全面地评估Transformer模型,研究人员提出了一些新的指标:
- 生成多样性 :衡量模型生成文本的多样性程度
- 语义连贯性 :评估生成文本的语义连贯性和逻辑性
- 上下文适应性 :考察模型在不同上下文环境中的表现
在计算机视觉领域,Transformer模型的性能评估主要关注以下几个方面:
- 图像分类 :准确率、召回率、F1值
- 目标检测 :平均精度(mAP)、召回率、F1值
- 语义分割 :平均交并比(mIoU)、像素准确率、类别准确率
值得注意的是,Transformer模型在处理长序列数据时展现出优异的性能。例如,Time-LLM模型通过重新编程时间序列输入和采用Prompt-as-Prefix (PaP)等技术,在处理长序列数据时表现出色。
在多模态融合领域,LLaVA模型通过将视觉编码器与语言模型相结合,能够处理图像问答、图像生成与描述等复杂任务,展示了Transformer在跨模态学习中的潜力。
研究人员还开发了一些工具和方法来可视化Transformer模型的注意力机制,以帮助理解模型的决策过程。例如,通过可视化注意力权重,可以直观地了解模型在不同位置和单词之间的关注程度,从而评估模型的性能。
这些新的评估指标和方法为全面评估Transformer模型的性能提供了更丰富的视角,有助于研究人员深入理解模型的优势和局限性,进而推动Transformer技术的不断发展和优化。
3.3 市场格局
在Transformer技术的市场格局中,主要由几家科技巨头主导:
- OpenAI :凭借GPT系列模型占据领先地位,GPT-3以其1750亿参数规模在自然语言处理领域展现强大实力。
- Google :推出BERT模型,通过双向预训练技术在NLP任务中取得优异成绩。
- Meta :通过开发Vision Transformer(ViT)模型,将Transformer架构成功应用于计算机视觉领域。
这些公司通过持续的技术创新和大规模预训练,不断推动Transformer技术的发展,为人工智能在自然语言处理、计算机视觉等多个领域的应用奠定了基础。
四.前沿研究成果
4.1 自然语言处理
Transformer架构在自然语言处理领域的应用不断取得突破性进展,推动了多项前沿研究成果的涌现。这些创新不仅提升了模型性能,还为自然语言处理的未来发展开辟了新的方向。
4.1.1 无注意力的Transformer架构
“Rethinking Attention: Exploring Shallow Feed-Forward Neural Networks as an Alternative to Attention Layers in Transformers” 提出了一种创新的方法,通过使用浅层前馈网络来模拟Transformer模型中的注意力机制。研究人员设计了一种知识蒸馏技术,用于训练这些网络以近似原始Transformer架构的行为。
在IWSLT2017数据集上的实验结果令人惊喜,这种“无注意力的Transformer”模型在机器翻译任务中展现出与原始架构相当的性能。这一发现挑战了传统观念,证明了在某些情况下,简化的网络结构可以达到与复杂注意力机制相似的效果,为未来Transformer架构的优化提供了新的思路。
4.1.2 公平感知结构化剪枝
“Fairness-Aware Structured Pruning in Transformers” 聚焦于解决预训练语言模型中的公平性问题。研究人员提出了一种创新方法,通过分析注意力头对公平性和性能的影响,有针对性地修剪那些对公平性产生负面影响的注意力头,同时保留对性能至关重要的部分。
这种方法的优势在于不需要对最终修剪的模型进行微调,显著降低了计算成本。实验结果表明,不同规模的模型在减少性别偏见的同时,性能仅略有下降。这一成果为解决人工智能系统中的公平性问题提供了新的技术手段,推动了自然语言处理领域向更加公平和包容的方向发展。
这些前沿研究成果不仅展示了Transformer架构在自然语言处理领域的巨大潜力,也为未来的研究方向提供了新的启示。随着技术的不断进步,我们可以期待Transformer在自然语言处理领域将带来更多令人振奋的突破。
4.2 计算机视觉
Transformer架构在计算机视觉领域的应用正不断取得突破性进展,为图像识别、目标检测和语义分割等任务带来了新的思路和方法。以下是几个代表性的研究成果:
- Swin Transformer :一种创新的视觉Transformer架构,通过引入基于滑动窗口的自注意力机制,有效降低了计算复杂度。Swin Transformer在图像分类、目标检测和语义分割等任务中取得了优异性能,尤其在处理高分辨率图像时表现突出。
研究团队:微软亚洲研究院
- DETR(Detection Transformer) :将Transformer架构应用于目标检测任务的开创性工作。DETR采用端到端的架构,将目标检测问题转化为集合预测问题,显著简化了传统目标检测模型的复杂管道。
研究团队:Facebook AI Research
- SETR(Segmentation Transformer) :将Transformer架构应用于语义分割任务的创新模型。SETR直接处理整个图像作为序列,有效捕捉全局语义信息,在Cityscapes和ADE20K等基准数据集上取得了优异的分割性能。
研究团队:微软亚洲研究院
- SOHO(Seeing Out of the Box) :一种端到端的视觉-语言预训练网络,通过将视觉编码器整合到VL的训练网络中,优化了整个网络结构。SOHO模型不仅降低了对人工标注数据的需求,还在多个视觉-语言下游任务中取得了SOTA的成绩。
研究团队:微软亚洲研究院
这些研究成果展示了Transformer架构在计算机视觉领域的巨大潜力,为解决传统卷积神经网络(CNN)难以处理的问题提供了新的思路和方法。随着技术的不断进步,我们可以期待Transformer在计算机视觉领域将带来更多令人振奋的突破。
4.3 多模态融合
在Transformer架构的广泛应用中,多模态融合领域正展现出令人振奋的进展。研究人员不断探索如何将Transformer的优势扩展到处理多种模态信息的任务中,推动了人工智能技术向更接近人类感知能力的方向发展。
4.3.1 Meta-Transformer
Meta-Transformer是一项突破性的研究成果,由香港中文大学多媒体实验室联合上海人工智能实验室的OpenGVLAB研究团队提出。这一统一多模态学习框架实现了骨干网络的大一统,具有以下显著特点:
- 模态共享编码器 :能够同时理解12种模态信息
- 摆脱配对数据依赖 :无需配对数据即可进行多模态学习
- 多模态无边界融合 :提供了新的多模态融合范式
Meta-Transformer的出现不仅大幅增加了可处理的模态数目,还为多模态学习开辟了新的路径,使得模型能够更灵活地整合来自不同来源的信息。
4.3.2 多模态生成模型
多模态生成领域也取得了显著进展,其中Transfusion模型尤为引人注目。Transfusion采用了创新的训练方法,通过单一模型同时生成文本和图像,实现了离散数据(如文本或代码)和连续数据(如图像、音频和视频)的无缝融合。
Transfusion模型的优势体现在:
- 性能卓越 :在文本到图像生成和图像到文本生成任务中,FID和CLIP得分优于Chameleon模型
- 效率提升 :在相同计算复杂度下,FID得分约为Chameleon模型的一半
- 多任务学习能力强 :在学习文本到文本预测任务上的效率更高,达到了Chameleon模型计算复杂度的50%到60%的困惑度
这些进展不仅展示了Transformer架构在多模态融合领域的巨大潜力,也为未来人工智能系统的发展提供了新的思路和方向。随着技术的不断进步,我们可以期待多模态Transformer模型在更广泛的应用场景中发挥重要作用,如智能医疗、自动驾驶等领域。
4.4 生成式AI
Transformer架构在生成式AI领域的应用正在推动人工智能技术向更智能、更通用的方向发展。以下是几个代表性的研究成果:
-
OpenAI的Sora模型 :Sora是一个突破性的生成式AI模型,能够生成长达1分钟的高质量视频内容。这一模型不仅展示了Transformer架构在处理视频数据方面的潜力,还为未来的视频生成和内容创作开辟了新的可能性。Sora的出现标志着生成式AI正从文本和图像领域向更复杂的视频模态扩展,有望在影视制作、广告创意等领域带来革命性的变化。
-
Transformer架构的优化 :研究人员不断探索如何提高Transformer模型在生成任务中的效率和性能。例如,通过引入稀疏激活技术和多专家系统,模型可以在保持高质量生成的同时降低计算成本。这种优化不仅提高了生成式AI的实用性,还为其在资源受限环境中的部署铺平了道路。
-
基于Transformer的代码生成 :Transformer模型在代码生成领域展现出令人印象深刻的能力。通过预训练在大规模代码语料库上,这些模型可以根据自然语言描述生成高质量的代码片段。这一技术有望大幅提高软件开发的效率,特别是在自动化测试、代码补全和低代码开发等方面具有巨大潜力。
-
Transformer架构在虚拟代理中的应用 :虚拟代理是生成式AI的一个重要应用方向。通过将Transformer架构与强化学习技术相结合,研究人员正在开发更加智能、灵活的虚拟代理系统。这些系统能够理解复杂的自然语言指令,生成合理的行动策略,并在模拟环境中进行有效的交互。这种技术有望在智能客服、游戏AI和自动驾驶等领域带来突破性进展。
这些研究成果不仅展示了Transformer架构在生成式AI领域的巨大潜力,也为未来人工智能技术的发展指明了方向。随着模型规模的不断扩大和技术的持续优化,我们可以期待生成式AI在更多领域发挥重要作用,推动人工智能技术向更接近人类智能的方向发展。
五.国内外研究技术差异
在Transformer技术的发展过程中,国内外研究团队展现出了不同的技术优势和创新方向。这些差异主要体现在以下几个方面:
- 模型结构优化
- 国外:注重提升模型处理长序列数据的能力,如Google提出的Infini-attention机制,通过引入压缩内存,使Transformer能够处理无限长的输入,在单个Transformer块中构建了掩码局部注意力和长期线性注意力机制。
创新点 :在内存大小上实现114倍压缩比,显著提高了模型的效率和可扩展性。
- 国内:清华大学提出的iTransformer模型通过独立嵌入变量令牌并应用自注意力机制来捕捉多变量相关性,使用前馈网络学习时间序列表示,从而提高了模型在多变量预测任务中的性能和泛化能力。
优势 :在未见过的变量上展现出良好的泛化能力,使得模型可以在训练时使用较少的变量,而在预测时仍然能够准确预测所有变量。
- 算法优化
- 国外:Meta提出的Searchformer模型通过预测A搜索的搜索动态来解决复杂的规划任务,实现了比A搜索更少的搜索步骤下计算出最优解的能力。这种方法通过搜索动态引导训练,能够在较小的训练数据集和较小的模型规模下达到比直接预测最优解的模型更好的性能。
优势 :在迷宫导航和Sokoban拼图等复杂规划任务上表现出较高的准确性和搜索效率,为使用Transformer解决传统符号规划算法无法解决的任务提供了可能性。
- 国内:研究人员提出了一种基于分层Transformer的算法,通过将输入序列划分为多个层次,并在每个层次上应用Transformer,有效降低了计算复杂度。这种方法在处理长序列数据时表现出优异的性能,特别适用于自然语言处理和时间序列分析等领域。
- 应用侧重
-
国外:倾向于将Transformer技术应用于大规模预训练模型和通用人工智能研究,如OpenAI的GPT系列和Meta的LLaMA模型,重点关注模型的通用性和跨领域应用能力。
-
国内:更注重将Transformer技术应用于特定领域和行业,如金融、医疗和工业等,通过微调预训练模型来解决特定领域的问题,提高模型的实用性和可解释性。
这些技术差异反映了国内外研究团队在Transformer技术发展过程中的不同思路和侧重点。国外研究更注重基础理论创新和通用人工智能的探索,而国内研究则倾向于将Transformer技术与具体应用场景相结合,推动人工智能技术在各个行业的落地应用。这种差异为Transformer技术的全面发展提供了多样化的视角和思路,有助于推动人工智能技术的不断进步。
相关文章:
Transformer网络发展概述2025.3.18
一.Transformer概述 1.1 定义与原理 Transformer是一种基于自注意力机制的深度学习模型,在处理序列数据时表现卓越。其核心原理包括: 自注意力机制 :允许模型同时考虑输入序列中的所有位置,捕捉语义关系多头注意力 :…...
3.4 二分查找专题:LeetCode 69. x 的平方根
1. 题目链接 LeetCode 69. x 的平方根 2. 题目描述 给定一个非负整数 x,计算并返回 x 的平方根的整数部分(向下取整)。 示例: 输入:x 4 → 输出:2输入:x 8 → 输出:2࿰…...
机器人曲面跟踪Surface-Tracking
定义 机器人曲面跟踪(Surface-Tracking)是指机器人通过实时感知工件曲面的三维形貌,动态调整运动轨迹和位姿,以精确跟随曲面进行加工(如打磨、抛光、喷涂等)的技术。 力 - 位姿协同控制 力控模式ÿ…...
opencv中stitch图像融合
openv版本: opencv249 vs :2010 qt : 4.85 #include "quanjing.h"#include <iostream> #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <opencv2/imgproc/imgproc.hpp> #include <open…...
深入解析ES6+新语法:复杂的迭代器与生成器
一、迭代器(Iterator):数据遍历的统一协议 1. 迭代器协议的本质 **迭代器协议(Iterator Protocol)** 是一种标准化的数据访问接口,它要求对象实现一个 next() 方法,每次调用返回包含 { valu…...
【C语言】自定义类型:结构体
一、结构体类型的声明 我们前面学习操作符的时候已经接触过结构体了,下面我们回顾一下结构体的基本内容。 创建结构体的语法如上所示: struct是创建结构体的关键字,然后tag就是我们结构体的名称,member-list是结构体的成员列表&…...
微服务即时通信系统---(五)框架学习
目录 ODB 介绍 安装 build2安装 odb-compiler安装 ODB运行时库安装 mysql和客户端开发包安装 boost profile库安装 总体打包安装 总体卸载 总体升级 头文件包含和编译时指明库 ODB常见操作介绍 类型映射 ODB编程 类与接口介绍 mysql连接池对象类 mysql客户端…...
蓝桥杯练习day1:自除数
前言 自除数 是指可以被它包含的每一位数整除的数。 例如,128 是一个 自除数 ,因为 128 % 1 0,128 % 2 0,128 % 8 0。 自除数 不允许包含 0 。 给定两个整数 left 和 right ,返回一个列表,列表的元素…...
0基础 | 上下拉电阻典型应用场景
三极管典型运用: 上拉电阻 下拉电阻 限流电阻 此处开关为三极管 左侧电阻:驱动电阻【限流电阻】 (控制mos管) 下面电阻:下拉电阻【关断电阻】 %%作用1: (因为IO口输出信号分为低电平&…...
MySQL数据高效同步到Elasticsearch的四大方案
目录 引言 一、为什么需要MySQL到ES的同步? 二、四大同步方案对比 三、方案详解与代码实战 1. 应用层双写:简单但强耦合 2. 定时任务同步:可控的准实时 3. Logstash JDBC:离线迁移利器 4. Binlog监听:生产级实…...
Docker详解
云是一种服务理念。在云里docker是业务的最小载体 doker是管理容器的引擎,为应用打包、部署平台、而非单纯的虚拟化技术 1.轻量级虚拟化 2.一致性 4.高效的资源利用 5.易于部署和扩展 docker和虚拟机的区别: 虚拟机:真机需要一个操作系…...
清晰易懂的Maven安装教程(含自定义依赖包位置)
初学者也能看懂的 Maven 安装教程(含自定义依赖包位置) Maven 是一个强大的项目管理和构建工具,广泛用于 Java 项目的依赖管理和构建自动化。本教程将手把手教你如何在 Windows 系统上安装 Maven,并配置环境变量,同时…...
王道数据结构6.3
顶点x的第一个邻接点以及下一个邻接点 int first_neighbor(Algraph G, int x){if(G.vertices[x].firstarc! nullptr){return G.vertices[x].firstarc->adjvex;}else return -1; }int next_neighbor(Algraph G,int x,int y){ArcNode *pG.vertices[x].firstarc;while(p! null…...
【Linux操作系统——学习笔记二】Linux简单导航命令操作
一、前言 学习Linux,本质上是学习在命令行下熟练使用Linux的各类命令。 命令行:是一种通过输入命令和参数与计算机系统进行交互的方式,可以使用各种字符化命令对系统发出操作指令,打开Linux终端,进入命令行界面。 …...
贪心算法——c#
贪心算法通俗解释 贪心算法是一种"每一步都选择当前最优解"的算法策略。它不关心全局是否最优,而是通过局部最优的累积来逼近最终解。优点是简单高效,缺点是可能无法得到全局最优解。 一句话秒懂 自动售货机找零钱:用最少数量的…...
SPI 总线协议
1、协议介绍 SPI,是英语 Serial Peripheral interface 的缩写,顾名思义就是串行外围设备接口。是 Motorola 首先在其 MC68HCXX 系列处理器上定义的。 SPI,是一种高速的,全双工,同步的通信总线。主节点或子节点的数据在…...
单片机开发资源分析的实战——以STM32G431RBT6为例子的单片机资源分析
目录 第一点:为什么叫STM32G431RBT6 从资源手册拿到我们的对STM32G431RBT6的资源描述 第二件事情,关心我们的GPIO引脚输出 第三件事情:去找对应外设的说明部分 第一点:为什么叫STM32G431RBT6 对于命名规则不太熟悉的朋友看这里…...
物联网(IoT)架构中,平台层的应用与技术
在物联网(IoT)架构中,平台层是连接物理设备(感知层)和应用服务(应用层)的核心部分。它负责数据的采集、处理、存储、分析以及设备管理等功能,是物联网系统的“大脑”。以下是平台层的主要功能及其技术实现手段: 平台层的主要功能 设备管理: 功能:管理物联网设备的注…...
大语言模型的压缩技术
尽管人们对越来越大的语言模型一直很感兴趣,但MistralAI 向我们表明,规模只是相对而言的,而对边缘计算日益增长的兴趣促使我们使用小型语言获得不错的结果。压缩技术提供了一种替代方法。在本文中,我将解释这些技术,并…...
JVM 2015/3/15
定义:Java Virtual Machine -java程序的运行环境(java二进制字节码的运行环境) 好处: 一次编写,到处运行 自动内存管理,垃圾回收 数组下标越界检测 多态 比较:jvm/jre/jdk 常见的JVM&…...
DeepSeek辅助学术写作中期能力及提示词分享
目录 确立三论 收集资料 选取论据 展开论证 大家好这里是AIWritePaper官方账号!更多内容👉AIWritePaper~在如今这个学术圈的“快车道”上,时间就像是一场永不停歇的赛跑,而论文质量则是那颗我们拼命追逐的“金苹果”。最近一款…...
Git 实战指南:本地客户端连接 Gitee 全流程
本文将以 Gitee(码云)、系统Windows 11 为例,详细介绍从本地仓库初始化到远程协作的全流程操作 目录 1. 前期准备1.1 注册与配置 Gitee1.2 下载、安装、配置客户端1.3 配置公钥到 Gitee2. 本地仓库操作(PowerShell/Git Bash)2.1 初始化本地仓库2.2 关联 Gitee 远程仓库3. …...
汇编基础知识
机器语言 1、机器语言是机器指令的集合,机器指令就是机器可以正确执行的命令,由二进制数组成 2、当今我们常用的是pc机,由一个芯片完成上述功能,即CPU是一种微处理器,每一种微处理器由于自身硬件设计和内部构造不同都…...
线程池的拒绝策略适用场景思考
ThreadPoolExecutor有四种拒绝策略。刚开始学习线程池的时候我就觉得,就是应该当任务饱和(达到拒绝策略)时,就应该拒绝任务,抛出异常。最近仔细思考了下,既然线程池这么设计,也应该有一定的道理…...
on-policy对比off-policy
目录 持续更新。。。 on-policy与off-policy的定义 Q-learning属于on-policy算法还是off-policy算法? 为什么off-policy适用于从离线经验或多种探索策略中学习,明明 On-policy 也可以基于探索学习的啊? 重要性权重方法 off-policy方法可…...
如何记录Matlab程序运行过程中所占用的最大内存(续)
在上一篇博客中,我们讨论了如何记录Matlab程序运行过程中所占用的最大内存。 博客原文:如何记录Matlab程序运行过程中所占用的最大内存-CSDN博客 但经过测试发现,这与实际有非常大的差异。运行如下例子: clear;clc; profile on…...
解决MySQL字符集冲突引发的“Illegal mix of collations”错误
引言 在开发过程中,我们常常会遇到数据库层面的字符集兼容性问题。本文将通过一个典型的案例,分析因字符集不匹配导致的 Illegal mix of collations 错误,并提供完整的解决方案,帮助开发者彻底规避此类问题。 问题现象 假设我们…...
Vue3:F12后,页面弹出runtime errors及提示的解决办法
解决: vue.config.jsdevServer: {client: {overlay: false}, },关闭提示 main.js // 定义特性标志 window.__VUE_PROD_DEVTOOLS__ false window.__VUE_PROD_HYDRATION_MISMATCH_DETAILS__ false...
学习笔记:黑马程序员JavaWeb开发教程(2025.3.17)
11.5 案例-文件上传-阿里云OSS-入门 出现报错:Process exited with an error: 1 (Exit value: 1),点击exec那一行,出现错误原因:Command execution failed. 在CSDN上找到了解决方法: 之后出现新的报错&…...
EDAS:投稿经验-word版本-问题解决
1. 字体不对,字体未嵌入问题 问题:word转PDF后,总是显示有字体格式不对(忘记截图了)。 办法:1. EDAS投稿PDF格式问题-CSDN博客-PDF上修改 IEEE论文检测的字体未嵌入问题Times New Ro…...
【数据结构初阶第十九节】八大排序系列(下篇)—[详细动态图解+代码解析]
hello,好久不见! 云边有个稻草人-CSDN博客 上篇内容,回顾一下吧【数据结构初阶第十八节】八大排序系列(上篇)—[详细动态图解代码解析]-CSDN博客 今天我们来学习下篇 目录 (2)快速排序 【挖坑法】 —思路 —思路…...
不可不知的分布式数据库-TiDB
不可不知的分布式数据库-TiDB 介绍TiDb架构TiDb与Mysql的区别功能特性性能表现数据可靠性运维管理成本 Docker部署TiDB1. 获取 TiDB 配置文件2. 启动 TiDB 集群3. 连接到 TiDB4. 停止和清理 TiDB 集群注意事项 实用案例TiDB实现分布式事务实现原理实现方式SQL 方式编程方式 注意…...
BUUCTF Pwn babyheap_0ctf_2017 Unsorted bin attack部分
checksec exeinfo 开启了全保护 64位 查看函数: 堆题 增删查改齐了 可以在编辑堆的时候重新设置大小 存在堆溢出 delete函数的指针清零了 无UAF 想法是通过unsorted bin泄露libc基址: from pwn import *p process(./babyheap) #p remote("node…...
AI绘画软件Stable Diffusion详解教程(11):图生图进阶篇(局部用上传蒙版重绘)
总的功能与上一篇相似,但是在Stable Diffusion网页上手工涂绘的方法,有可能会因不够精细,导致重绘的效果不佳,涂绘区与非涂绘区的衔接有可能会出问题。这个时候可以用photoshop来制作蒙版,精确的圈出需要重绘的地方&am…...
SAP的WPS导出找不到路径怎么办;上载报错怎么办
一.打开注册编辑器 二.输入以下地址 计算机\HKEY_CLASSES_ROOT\ExcelWorksheet\Protocol\StdFileEditing\Server 去除掉EXE后面的命令即可 二:WPS上载文件没反应怎么办 如何切换整合模式或多组件模式-WPS学堂 根据官方操作把整合模式改成多组件模式...
Go语言不定长参数使用详解
不定长参数(Variadic Parameters)使用详解 核心概念 语法特性:...T 表示函数可接受任意数量的T类型参数底层实现:不定长参数在函数内部实际存储为切片类型 []T展开操作符:调用时使用 slice... 可将切片展开为独立参数…...
django如何配置使用asgi
以下是 Django 配置使用 ASGI 的完整指南: 一、配置前提 Django 版本:确保使用 Django 3.0(原生支持 ASGI)必要依赖:pip install daphne channels二、基础配置步骤 1. 创建/修改 ASGI 入口文件 在 Django 项目根目录…...
在C语言基础上学Java【Java】【一】
众所周知,Java是C风格的语言,对于学过C语言的人学Java可以快速适应。 废话不多说,直接边看代码边学。 数据类型,输入和输出 public class a1 {//a1是类名,就是文件名,所有的可执行代码需要写在这个里面 /…...
使用 Promise 和 .then() 解决同异步问题
在购物车功能中,用户点击“加入购物车”或“删除购物车”时,可能会遇到数据同步问题。例如,当用户快速连续点击“删除”按钮时,可能会导致删除操作基于过时的数据,从而引发错误。为了解决这个问题,我们可以…...
defineExpose函数
在软件开发中,特别是在像 Vue.js 这样的框架中,defineExpose 是一个函数,用于显式地将组件的某些属性或方法暴露给其父组件或其他组件。这在你想控制组件的内部状态或功能对外部可见性时非常有用。 Vue.js 3 中的示例: <scri…...
LabVIEW烟气速度场实时监测
本项目针对燃煤电站烟气流速实时监测需求,探讨了静电传感器结构与速度场超分辨率重建方法,结合LabVIEW多板卡同步采集与实时处理技术,开发出一个高效的烟气速度场实时监测系统。该系统能够在高温、高尘的复杂工况下稳定运行,提供高…...
台式机电脑组装---电源
台式机电脑组装—电源 22 33 主板供电是聚集了12V,5V,3.3V的24pin CPU供电的话主要是12V的44pin供电 44pin合并之后,就是8pin 55 SATA硬盘会使用饼io口取电,从电源获取12v,5v,3.3v的电 33...
中小型企业大数据平台全栈搭建:Hive+HDFS+YARN+Hue+ZooKeeper+MySQL+Sqoop+Azkaban 保姆级配置指南
目录 背景一、环境规划与依赖准备1. 服务器规划(3节点集群)2. 系统与依赖3. Hadoop生态组件版本与下载路径4. 架构图二、Hadoop(HDFS+YARN)安装与配置1. 下载与解压(所有节点)2. HDFS高可用配置3. YARN资源配置4. 启动Hadoop集群三、MySQL安装与Hive元数据配置…...
2023年蓝桥杯 省赛 ————特殊日期
2.特殊日期 - 蓝桥云课 错误原因: 分不清大小月,将闰年的2月天数当成了28天,非闰年当成了27天,因此出错 错误代码如下: package Lanqiao;import java.util.Scanner;/*** author zb* date2025/3/16 13:22*/ public …...
电动车出入库管理软件,电动车维修保养售后服务管理系统,佳易王电动车店管理系统操作教程
一、概述 本实例以 佳易王电动车店管理系统 为例说明,其他版本可参考本实例。试用版软件资源可到文章最后了解,下载的文件为压缩包文件,请使用免费版的解压工具解压即可试用。 软件特点: 操作便捷性高 软件功能实用且…...
计算机网络-综合布线系统
工作区子系统:由信息插座、插座盒、连接跳线和适配器组成 水平子系统:由一个工作区的信息插座开始,经水平布置到管理区的内测配线架的线缆所组成 管理子系统:由交连、互连配线架组成。管理子系统为连接其它子系统提供连接手段 …...
【蓝桥杯】24省赛:数字串个数
思路 本质是组合数学问题: 9个数字组成10000位数字有9**10000可能 不包括3的可能8**10000 不包括7的可能8**10000 既不包括3也不包括77**10000 根据容斥原理:结果为 9 ∗ ∗ 10000 − 8 ∗ ∗ 10000 − 8 ∗ ∗ 10000 7 ∗ ∗ 10000 9**10000 - 8**10…...
手写一些常见算法
手写一些常见算法 快速排序归并排序Dijkstra自定义排序交替打印0和1冒泡排序插入排序堆排序欧几里得算法求最大公约数 快速排序 public class Main {public static void main(String[] args) {int nums[] {1,3,2,5,4,6,8,7,9};quickSort(nums,0,nums.length - 1);}private st…...
AI自动生成数据
文章目录 概要案例生成简单的文本数据 概要 合成数据是人工生成的数据而不是从现实世界事件中收集的数据。它用于模拟真实数据,而不会泄露隐私或遇到现实世界的限制 安装依赖:pip install langchain_experimental 合成数据的优势: 1.隐私…...
【STM32】从新建一个工程开始:STM32 新建工程的详细步骤
STM32 开发通常使用 Keil MDK、STM32CubeMX、IAR 等工具来创建和管理工程。此处是 使用 Keil MDK5 STM32CubeMX 创建 STM32 工程的详细步骤。 新建的标准库工程文件已上传至资源中,下载后即可直接使用。 标准库新建 STM32 工程的基本目录结构:STD_STM…...