大白话讲清楚embedding原理

news2025/2/2 15:51:09

Embedding(嵌入)是一种将高维数据(如单词、句子、图像等)映射到低维连续向量的技术,其核心目的是通过向量表示捕捉数据之间的语义或特征关系。以下从原理、方法和应用三个方面详细解释Embedding的工作原理。

一、Embedding的基本原理

  1. 高维数据的表示
    在计算机中,所有数据本质上都是以数字形式存储的,例如文本数据通常被编码为one-hot向量(每个词对应一个维度,只有一个维度为1,其余为0)。然而,one-hot编码存在两个问题:

    • 维度过高:每个词都需要一个独立的维度,导致向量非常稀疏且难以处理。
    • 语义信息缺失:one-hot向量无法反映词之间的语义关系,例如“king”和“queen”在one-hot编码下是完全独立的。
      【python函数】torch.nn.Embedding函数用法 …
  2. 向量空间模型
    Embedding通过将高维稀疏向量映射到低维稠密向量空间,使得相似的对象在向量空间中彼此靠近。例如,“king”和“queen”在低维空间中可能非常接近,因为它们在语义上相关。
    深度学习中Embedding的理解_深度学习 embedding什么意思-CSDN博客

  3. 数学基础
    Embedding通常通过神经网络中的“嵌入层”实现,该层将输入数据(如单词ID)映射为低维连续向量。例如,通过训练一个全连接神经网络,可以将单词的one-hot编码转换为固定长度的稠密向量。

二、Embedding的生成方法

  1. 无监督学习
    嵌入层通常通过无监督学习训练,无需人工标注。常见的无监督方法包括:

    • Word2Vec:通过预测上下文中的词或目标词来学习词向量。例如,CBOW(连续词袋模型)通过上下文预测目标词,而Skip-Gram则通过目标词预测上下文。
    • GloVe:基于全局统计信息优化目标函数,捕捉全局语义关系。
    • FastText:扩展了Word2Vec,考虑子词信息以提高对未登录词的支持。
  2. 监督学习
    在某些任务中,嵌入层可以通过监督学习进一步优化。例如,在问答系统中,通过微调预训练的嵌入层来适应特定任务。

  3. 深度学习框架中的应用
    在Transformer等大模型中,嵌入层是模型的基础组件之一。它不仅用于词嵌入,还可以扩展到句子嵌入、图像嵌入等。例如,BERT通过双向Transformer结构预训练深度双向表示。

三、Embedding的应用

  1. 自然语言处理(NLP)

    • 文本分类:通过将文本转换为稠密向量表示,可以用于情感分析、主题分类等任务。
    • 问答系统:利用嵌入层捕捉问题和答案之间的语义关系,从而提高回答准确性。
    • 推荐系统:通过用户行为和物品特征的嵌入表示,实现个性化推荐。
  2. 计算机视觉(CV)
    在图像识别任务中,嵌入层可以将图像特征映射到低维空间,便于后续分类或聚类。

  3. 图数据分析
    图嵌入技术(如Node2Vec、DeepWalk)通过学习节点的邻接关系生成节点向量,用于社交网络分析、推荐系统等。

四、总结

Embedding技术通过将高维稀疏数据映射到低维稠密向量空间,解决了传统one-hot编码的高维度和语义缺失问题。它广泛应用于NLP、CV和图数据分析等领域,并且是现代大语言模型(如BERT、GPT)的核心技术之一。通过无监督学习和深度学习框架的支持,Embedding能够捕捉数据的语义关系和特征信息,从而提升模型性能。

Embedding技术在实际应用中面临的具体挑战和限制是什么?

Embedding技术在实际应用中面临的具体挑战和限制可以从以下几个方面进行分析:

1. 硬件资源限制

Embedding技术通常需要处理高维数据并将其映射到低维空间,这需要强大的计算能力。然而,在嵌入式系统或工业环境中,硬件资源(如内存和处理能力)往往有限。例如,嵌入式系统通常受限于有限的硬件资源,这使得设计者必须在性能和资源使用之间进行权衡。此外,将大型AI模型部署到嵌入式系统时,如何在有限的硬件上运行这些模型也是一个主要挑战。

2. 实时性要求

许多嵌入式系统需要在特定的时间窗口内完成任务,这就要求实时操作系统(RTOS)的选择和管理必须非常谨慎。如果Embedding技术无法满足实时性需求,可能会导致系统无法按预期工作。

3. 固件更新与兼容性

在嵌入式设备中,固件更新是一个复杂且耗时的过程。由于嵌入式系统通常需要长期运行,因此在部署前必须对固件进行全面的兼容性测试。这一过程可能需要数周甚至数月的时间。此外,固件更新的部署也需要严格的安全部署流程,以减少热修复的需求。

4. 安全性问题

虽然引擎作为安全解决方案具有许多优点,但其计算带宽有限,且无法处理高吞吐量的应用。此外,由于嵌入式设备直接访问硬件并独立于操作系统,这使得它们成为潜在的安全威胁。

5. 稀疏特征处理

尽管Embedding技术在处理稀疏特征方面表现出色,但如何高效地处理稀疏特征仍然是一个挑战。例如,传统的one-hot编码方法虽然简单,但效率较低且容易丢失信息。而更先进的Embedding方法(如Word2Vec)虽然能够捕捉语义关系,但在大规模数据集上的训练仍然需要大量的计算资源。

6. 持续变化的环境

在实际应用中,环境或系统行为的持续变化可能会影响Embedding模型的性能。例如,在推荐系统中,用户行为和偏好可能会随时间发生变化,这要求Embedding模型能够动态适应这些变化。

7. 验证与合成挑战

在嵌入式系统中,自动化验证和合成是确保系统可靠性的关键步骤。然而,当前的验证方法通常生成带有约束的测试向量,并使用基于断言的验证方法,这增加了开发和部署的复杂性。

总结

Embedding技术在实际应用中面临的主要挑战包括硬件资源限制、实时性要求、固件更新与兼容性问题、安全性问题、稀疏特征处理、持续变化的环境以及验证与合成的复杂性。

Embedding技术除了NLP、CV和图数据分析之外,还有哪些潜在的应用领域?

Embedding技术除了在自然语言处理(NLP)、计算机视觉(CV)和图数据分析等领域的广泛应用外,还有许多潜在的应用领域。以下是基于我搜索到的资料总结出的几个主要方向:

  1. 推荐系统
    Embedding技术在推荐系统中被广泛应用,通过将用户和物品映射为稠密的向量表示,捕捉潜在的关系,从而提升推荐的准确性。例如,通过学习用户行为和物品特征之间的语义关系,可以实现个性化推荐。

  2. 多模态数据融合
    Embedding技术可以将不同模态的数据(如文本、图像、音频等)映射到统一的低维空间中,从而实现跨模态信息的整合和分析。这种能力使得Embedding技术在多媒体处理、跨模态检索等领域具有重要应用价值。

  3. 大规模信息网络分析
    在大规模信息网络(如社交网络、语言网络等)中,Embedding技术被用于节点分类、链接预测和可视化任务。例如,LINE算法通过优化目标函数,能够高效地嵌入大规模网络中的节点到低维空间,从而支持网络分析。

  4. 生物信息学与计算生物学
    Embedding技术在生物信息学中也有重要应用,例如用于基因表达数据的降维分析、蛋白质功能预测、疾病基因发现等。这些应用通过将高维生物数据映射到低维空间,揭示了数据中的潜在结构和关系。

  5. 时间序列预测
    Embedding技术在时间序列预测中也有潜在应用。通过将时间序列数据转换为稠密向量表示,可以更好地捕捉时间序列之间的动态关系,从而提高预测模型的性能。

  6. 强化学习与行为建模
    在强化学习中,Embedding技术可以用于学习环境中的状态表示,帮助智能体更好地理解环境并做出决策。此外,在行为建模中,通过嵌入用户行为数据,可以更准确地预测用户行为模式。

  7. 知识图谱构建与推理
    Embedding技术在知识图谱构建中也发挥了重要作用。通过将实体和关系映射为稠密向量,可以实现知识图谱的推理和扩展,支持语义搜索和问答系统。

  8. 多标签分类与链接预测
    在多标签分类任务中,Embedding技术能够捕捉标签之间的语义关系,从而提高分类性能。此外,在链接预测任务中,通过嵌入节点特征,可以有效预测网络中的潜在链接。

  9. 跨领域应用
    Embedding技术还可以应用于其他领域,如金融风险评估、社交网络分析、物联网数据分析等。通过将复杂数据映射为低维向量,可以简化计算过程并提高模型效率。

如何评估和比较不同Embedding方法的效果和性能?

评估和比较不同Embedding方法的效果和性能是一个复杂的过程,需要结合多种指标和实验设计。以下从多个角度详细说明如何进行评估和比较:

1. 评估方法的分类

根据,评估Embedding的质量通常分为内部评估(Intrinsic Evaluation)和外部评估(Extrinsic Evaluation):

  • 内部评估:主要通过分析Embedding向量本身的语义质量,例如其在语义相似性或逻辑推理中的表现。例如,测试Embedding是否能准确捕捉语义关系。
  • 外部评估:通过将Embedding应用于下游任务(如文本分类、情感分析等),间接验证其实际效果。例如,将Embedding输入到逻辑回归、SVM或深度学习模型中,观察模型性能。

2. 不同场景下的评估指标

根据,在检索场景中,常用的评估指标包括:

  • 召回率(Recall) :检索到的相关项占所有相关项的比例。
  • 精确度(Precision) :检索到的相关项占检索出的总项的比例。
  • 平均倒排文档数(MRR) :平均每个查询的排名位置。
  • 归一化倒排文档数(nDCG) :衡量排序质量的指标。

这些指标可以量化Embedding在特定任务中的表现,帮助我们理解其在实际应用中的优劣。

3. 具体案例分析

(1)节点嵌入方法的比较

和提供了关于节点嵌入方法的实验结果:

  • 在CiteSeer数据集上,DeepWalk的初始得分较低(0.33),但通过调整参数后得分提升至0.56,而随机森林的得分仅为0.08。这表明DeepWalk在优化后具有更高的性能。
  • 在PPI数据集上,InstantEmbedding表现最佳,平均准确率为33.36%,而DeepWalk和node2vec的表现次之。
  • 此外,指出,调整维度大小对性能有显著影响,例如DeepWalk在维度为200时训练时间较短且效果较好。
(2)文本嵌入方法的比较

展示了多种文本嵌入方法(如SBERT、Ada、Babbage等)在五个问题上的表现:

  • 总体来看,Davinci在所有问题上得分最高,但在某些特定问题上(如Q3和Q4),Ada的表现优于其他方法。
  • Curie在大多数问题上的表现最差,仅在少数问题上表现较好。
(3)图像嵌入方法的比较

探讨了在ImageNet-1k数据集上不同嵌入方法的表现:

  • 研究发现,通过迁移学习预训练模型可以提高性能,并且在不同数据集上的迁移性测试表明,这些方法具有较好的泛化能力。

4. 其他关键因素

(1)维度选择

指出,嵌入向量的维度对性能有重要影响。例如,在DeepWalk实验中,当维度为200时,训练时间较短且性能稳定。这表明较小的维度可能更适合实际应用。

(2)多参数组合

提到,许多嵌入方法涉及多个超参数组合,盲目调整可能会导致资源浪费。因此,在评估时应尽量减少不必要的参数搜索。

(3)任务适应性

强调,在选择嵌入方法时,应根据具体任务特点进行调整。例如,在情感分析任务中,使用特定的文本嵌入方法可能比通用方法更有效。

5. 综合建议

为了全面评估和比较不同Embedding方法的效果和性能,建议采取以下步骤:

  1. 明确任务需求:根据任务类型(如文本分类、图像检索等)选择合适的评估指标。
  2. 多维度测试:结合内部评估和外部评估,从语义质量、实际应用效果等多个角度进行测试。
  3. 参数优化:合理设置嵌入方法的超参数,并通过交叉验证找到最优配置。
  4. 对比分析:将不同方法在相同条件下的表现进行对比,例如中提到的迁移学习实验中提到的节点嵌入方法对比。
在深度学习框架中,Embedding层的设计和优化策略有哪些?

在深度学习框架中,Embedding层的设计和优化策略涉及多个方面,包括其基本功能、实现方式以及针对不同场景的优化方法。以下将结合我搜索到的资料详细说明:

1. Embedding层的基本功能与作用

Embedding层的主要作用是将高维稀疏特征(如ID)转换为低维稠密向量,从而便于神经网络处理和理解。例如,在自然语言处理任务中,Embedding层可以将单词或符号映射为连续向量,这些向量能够更好地反映语义关系。此外,Embedding层在推荐系统中也扮演重要角色,通过捕获用户和物品的低维特征表示,用于计算相似性或预测评分。

2. Embedding层的实现方式

Embedding层通常通过以下方式实现:

  • one-hot编码:将输入特征进行one-hot编码后,与权重矩阵相乘生成新的输入层。
  • GPU缓存:针对计算量大的问题,可以利用GPU的内存带宽优势,通过缓存热门嵌入来提升性能。例如,Fleche提出了一种基于GPU缓存的嵌入方法,显著提高了预测延迟。
  • 混合并行策略:在一些复杂模型中,如DreamShard,采用了特征交互、模型并行和数据并行的混合策略,以优化嵌入层的计算效率。

3. Embedding层的优化策略

3.1 基于硬件的优化
  • GPU缓存:为了解决嵌入层计算量大导致的延迟问题,Fleche提出了一种在GPU上缓存热门嵌入的方法。这种方法通过利用GPU的内存带宽优势,显著提高了嵌入层的性能。
  • 内存优化:针对嵌入层内存占用大的问题,可以采用压缩技术或优化数据存储格式,减少显存占用。
3.2 算法层面的优化
  • Adam优化器:Adam是一种基于自适应估计的一阶梯度优化算法,适用于大规模数据和参数的优化问题。它能够自动调整学习率,并且在实践中表现优于其他优化方法。
  • 开关式优化策略:在推荐系统中,可以使用开关式优化策略来动态调整模型参数,从而提高预测精度。
3.3 模型结构设计
  • 多任务学习:通过共享参数的方式实现跨任务学习,提高模型泛化能力。例如,在多任务学习模型中,不同任务层共享权重并相互影响。
  • 混合并行策略:DreamShard模型采用特征交互、模型并行和数据并行的混合策略,以优化嵌入层的计算效率。

4. 应用场景中的具体实践

4.1 推荐系统

在推荐系统中,Embedding层被广泛用于捕捉用户和物品的低维特征表示。例如:

  • 纯ID基元项嵌入:直接使用用户ID或物品ID作为输入,生成对应的稠密向量。
  • 混合嵌入:结合用户行为、物品属性等多模态信息,生成更丰富的特征表示。
4.2 自然语言处理

在自然语言处理任务中,Embedding层常用于词汇表示和文本分类。例如:

  • 词嵌入:将单词映射为稠密向量,用于捕捉语义关系。
  • 序列建模:结合LSTM等序列模型,进一步提升文本分类和生成任务的效果。

5. 总结

Embedding层的设计和优化策略在深度学习框架中具有重要意义。从硬件层面的GPU缓存到算法层面的优化(如Adam优化器),再到模型结构设计(如多任务学习和混合并行策略),这些策略共同提升了嵌入层的性能和效率。

Word2Vec、GloVe和FastText等无监督学习方法在处理大规模数据集时的效率和准确性如何?

Word2Vec、GloVe和FastText是三种经典的无监督学习方法,用于从大规模数据集中生成词向量。它们在效率和准确性方面各有优劣,具体表现如下:

1. 效率

  • Word2Vec

    • Word2Vec的训练速度通常较快,尤其是在处理大规模数据集时。其核心模型包括CBOW(连续词袋模型)和Skip-gram两种方式。CBOW通过上下文预测目标词,而Skip-gram则相反,通过目标词预测上下文。
    • Word2Vec还采用了负采样(Negative Sampling)和层次softmax(Hierarchical Softmax)等技术来进一步提高训练效率。负采样通过随机删除高频词,减少计算复杂度;层次softmax则通过分层策略降低CPU使用率。
    • 然而,当数据集非常大时,Word2Vec的计算效率可能会受到限制,因为其需要处理大量的上下文关系。
  • GloVe

    • GloVe利用全局词汇共现统计信息,通过矩阵分解生成词向量。这种方法在计算上较为高效,尤其是在大规模数据集上,因为其可以并行化处理。
    • 研究表明,GloVe在处理大规模数据集时具有较高的计算效率,尤其是在内存使用方面表现优异。
  • FastText

    • FastText在训练速度上表现优异,特别是在处理大量类别时。其采用了N-gram方法来捕捉词序信息,并通过分层softmax策略加速训练。
    • FastText还能够处理未出现在训练数据中的单词,通过将其分解为n-gram形式生成词向量。

2. 准确性

  • Word2Vec

    • Word2Vec生成的词向量在语义和句法相似性任务上表现良好。然而,其准确性可能受到训练数据集规模和质量的影响。例如,在某些任务中,Word2Vec的表现不如GloVe。
    • Word2Vec的局限性在于其对词序信息的捕捉能力较弱,这在某些任务中可能导致性能下降。
  • GloVe

    • GloVe生成的词向量在语义相似性和命名实体识别等任务中表现突出。例如,在奇异性任务中,GloVe的正确率高达65.3%。
    • 研究表明,GloVe在多个数据集上的表现优于Word2Vec和FastText。
  • FastText

    • FastText在文本分类任务中表现出色,尤其是在准确率和召回率方面。例如,在实验中,FastText的精确率和召回率分别达到了0.7883941970958493和0.7883941970958493。
    • FastText还能够有效处理未见过的单词,这使其在实际应用中更具鲁棒性。

3. 综合比较

  • 在效率方面,GloVe通常优于Word2Vec和FastText,特别是在大规模数据集上。这是因为GloVe的并行化能力和内存优化使其更适合处理海量数据。
  • 在准确性方面,GloVe在多个任务中表现最佳,尤其是在语义相似性和命名实体识别等任务中。然而,FastText在文本分类任务中表现尤为突出,尤其是在准确率和召回率方面。

总结

Word2Vec、GloVe和FastText各有优劣。Word2Vec适合快速生成高质量的词向量,但可能在大规模数据集上效率较低;GloVe在计算效率和准确性方面表现均衡,尤其适合处理大规模数据集;FastText则在文本分类任务中表现优异,同时具备处理未见过单词的能力。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2290836.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2025年1月22日(网络编程 udp)

系统信息: ubuntu 16.04LTS Raspberry Pi Zero 2W 系统版本: 2024-10-22-raspios-bullseye-armhf Python 版本:Python 3.9.2 已安装 pip3 支持拍摄 1080p 30 (1092*1080), 720p 60 (1280*720), 60/90 (640*480) 已安装 vim 已安装 git 学习…

ios swift画中画技术尝试

继上篇:iOS swift 后台运行应用尝试失败-CSDN博客 为什么想到画中画,起初是看到后台模式里有一个picture in picture,去了解了后发现这个就是小窗口视频播放,方便用户执行多任务。看小窗口视频的同时,可以作其他的事情…

ArkTS高性能编程实践

文章目录 概述声明与表达式函数数组异常 概述 本文主要提供应用性能敏感场景下的高性能编程的相关建议,助力开发者开发出高性能的应用。高性能编程实践,是在开发过程中逐步总结出来的一些高性能的写法和建议,在业务功能实现过程中&#xff0…

阿里新发的大模型Qwen2.5-max如何?

阿里新发布的大模型Qwen2.5-Max是一款性能卓越、技术先进的大型语言模型,其在多个方面展现了突出的表现。以下是基于我搜索到的资料对Qwen2.5-Max的详细评价: 技术特点 超大规模预训练数据:Qwen2.5-Max采用了超过20万亿tokens的超大规模预训…

走向基于大语言模型的新一代推荐系统:综述与展望

HightLight 论文题目:Towards Next-Generation LLM-based Recommender Systems: A Survey and Beyond作者机构:吉林大学、香港理工大学、悉尼科技大学、Meta AI论文地址: https://arxiv.org/abs/2410.1974 基于大语言模型的下一代推荐系统&…

第1章 量子暗网中的血色黎明

月球暗面的危机与阴谋 量子隧穿效应催生的幽蓝电弧,于环形山表面肆意跳跃,仿若无数奋力挣扎的机械蠕虫,将月球暗面的死寂打破,徒增几分诡异。艾丽伫立在被遗弃的“广寒宫”量子基站顶端,机械义眼之中,倒映着…

MCU内部ADC模块误差如何校准

本文章是笔者整理的备忘笔记。希望在帮助自己温习避免遗忘的同时,也能帮助其他需要参考的朋友。如有谬误,欢迎大家进行指正。 一、ADC误差校准引言 MCU 片内 ADC 模块的误差总包括了 5 个静态参数 (静态失调,增益误差,微分非线性…

【Rust自学】15.4. Drop trait:告别手动清理,释放即安全

喜欢的话别忘了点赞、收藏加关注哦,对接下来的教程有兴趣的可以关注专栏。谢谢喵!(・ω・) 15.4.1. Drop trait的意义 类型如果实现了Drop trait,就可以让程序员自定义当值离开作用域时发生的操作。例如文件、网络资源…

【Block总结】CPCA,通道优先卷积注意力|即插即用

论文信息 标题: Channel Prior Convolutional Attention for Medical Image Segmentation 论文链接: arxiv.org 代码链接: GitHub 创新点 本文提出了一种新的通道优先卷积注意力(CPCA)机制,旨在解决医学图像分割中存在的低对比度和显著…

信息学奥赛一本通 1607:【 例 2】任务安排 2 | 洛谷 P10979 任务安排 2

【题目链接】 ybt 1607:【 例 2】任务安排 2 洛谷 P10979 任务安排 2 注:ybt1607中n最大达到 1 0 4 10^4 104,洛谷P10979中n最大达到 3 ∗ 1 0 5 3*10^5 3∗105,本题解统一认为n最大达到 3 ∗ 1 0 5 3*10^5 3∗105。 【题目考点…

OFDM系统仿真

1️⃣ OFDM的原理 1.1 介绍 OFDM是一种多载波调制技术,将输入数据分配到多个子载波上,每个子载波上可以独立使用 QAM、PSK 等传统调制技术进行调制。这些子载波之间互相正交,从而可以有效利用频谱并减少干扰。 1.2 OFDM的核心 多载波调制…

【Go语言圣经】第四节:复合数据类型

第四章:复合数据类型 本节主要讨论四种类型——数组、slice、map和结构体。 数组和结构体都是有固定内存大小的数据结构。相比之下,slice 和 map 则是动态的数据结构,它们可以根据需要动态增长。 4.1 数组 数组是一个定长的由特定类型元素…

完美还是完成?把握好度,辨证看待

完美还是完成? 如果说之前这个答案有争议,那么现在,答案毋庸置疑 ■为什么完美大于完成 ●时间成本: 做事不仅要考虑结果,还要考虑时间和精力,要说十年磨一剑的确质量更好,但是现实没有那么多…

Many Whelps! Handle It! (10 player) Many Whelps! Handle It! (25 player)

http://db.nfuwow.com/80/?achievement4403 http://db.nfuwow.com/80/?achievement4406 最少扣你50DKP! 第二阶段 当奥妮克希亚升空后,在10秒内引出50只奥妮克希亚雏龙,随后击败奥妮克希亚。 World of Warcraft [CLASSIC][80猎人][Grandel][最少扣你5…

【React】PureComponent 和 Component 的区别

前言 在 React 中,PureComponent 和 Component 都是用于创建组件的基类,但它们有一个主要的区别:PureComponent 会给类组件默认加一个shouldComponentUpdate周期函数。在此周期函数中,它对props 和 state (新老的属性/状态)会做一…

MongoDb user自定义 role 添加 action(collStats, EstimateDocumentCount)

使用 mongosh cd mongsh_bin_path mongosh “mongodb://user:passip:port/db”这样就直接进入了对应的db 直接输入: 这样 role “read_only_role" 就获得了3个 action, 分别是 查询,列举集合,集合元数据查询 P.S: 如果没有 …

蓝桥杯刷题DAY2:二维前缀和 一维前缀和 差分数组

闪耀的灯光 📌 题目描述 蓝桥公园是一个适合夜间散步的好地方,公园可以被视为由 n m 个矩形区域构成。每个区域都有一盏灯,初始亮度为 a[i][j]。 小蓝可以选择一个大的矩形区域,并按下开关一次,这将使得该区域内每盏…

C++初阶 -- 手撕string类(模拟实现string类)

目录 一、string类的成员变量 二、构造函数 2.1 无参版本 2.2 有参版本 2.3 缺省值版本 三、析构函数 四、拷贝构造函数 五、c_str函数 六、operator重载 七、size函数 八、迭代器iterator 8.1 正常版本 8.2 const版本 九、operator[] 9.1 正常版本 9.2 const版…

【Unity3D】实现2D角色/怪物死亡消散粒子效果

核心:这是一个Unity粒子系统自带的一种功能,可将粒子生成控制在一个Texture图片网格范围内,并且粒子颜色会自动采样图片的像素点颜色,之后则是粒子编辑出消散效果。 Particle System1物体(爆发式随机速度扩散10000个粒…

85.[1] 攻防世界 WEB easyphp

进入靶场 属于代码审计 <?php // 高亮显示当前 PHP 文件的源代码&#xff0c;常用于调试或展示代码 highlight_file(__FILE__);// 初始化两个标志变量&#xff0c;用于后续条件判断 $key1 0; $key2 0;// 从 GET 请求中获取参数 a 和 b $a $_GET[a]; $b $_GET[b];// 检…