论文精读1:(网格特征)In Defense of Grid Features for Visual Question Answering(CVPR2020)

news2025/1/21 22:02:37

在这里插入图片描述

  1. 马萨诸塞州立大学阿默斯特分校
  2. Facebook 人工智能研究

目录

    • 1. Introduction
    • 2. Related Work
      • Visual features for vision and language tasks
      • Pre-training for VQA
      • Regions vs. grids.
    • 3. From Regions to Grids
      • 3.1. Bottom-Up Attention with Regions
        • Region selection
        • Region feature computation
      • 3.2. Grid Features from the Same Layer
    • 3.3. 1×1 RoIPool for Improved Grid Features
    • 4. Experiment
      • 4.1 Main Results
      • 4.2 Number of Regions
      • 4.3 Test Accuracy and Inference Time
      • 4.4 Qualitative Comparison
    • 5. Why do Our Grid Features Work?
      • 5.1. Factor 1: Input Image Size
      • 5.2 Factor 2: Pre-Training Task
    • 6. Generalization of Grid Features
    • 7. Conclusion

1. Introduction

多模态视觉与语言研究中的一些重要发展,包括深度学习和注意力机制的引入以及“自下而上”的注意力机制的发现。相比传统的“自上而下”的语言输入来聚焦于视觉输入的特定部分,自下而上的注意力机制使用预训练的物体检测器仅基于视觉输入本身来识别显著区域。因此,图像通过基于边界框或区域的特征表示,这些特征已经在多项任务中占据主导地位,尤其是视觉问答任务。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mJpYhLSc-1681220771876)(/imgs/2023-04-02/7xaCveIlPIqC0c19.png#pic_center =100%x100%)]

该段文字探讨了区域特征在多模态视觉与语言研究中成功的原因。作者提出了两种可能的原因:一是更好地定位单个物体,由于区域是直接从检测器输出的边界框结果;二是若干个重叠的区域可以轻松捕捉图像中的粗略信息和细节。然而,这些潜在的优势能否证明区域特征优于网格特征呢?

一项重要的研究发现,当前广泛使用的自下而上的区域特征并没有比传统的网格特征具有明显的优势。作者提出,区域特征在相关任务中表现卓越的关键原因在于对大规模的物体和属性注释的利用,以及高分辨率输入图像所提供的空间信息。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lY2KBxMs-1681220771877)(/imgs/2023-04-02/L0lzsp9rdE7Q6ZRK.png#pic_center =100%x100%)]

作者认为,将特征表示从区域特征切换到网格特征可以带来显著的推理速度提升,并且能够省略现有VQA流程中所有与区域特征提取的相关步骤。例如,在使用ResNet-50作为网络骨干的情况下,整个处理单张图像的时间从0.89秒降至0.02秒,速度提升40倍以上,且准确率略有提高。实际上,提取区域特征的时间消耗如此之高,以至于大多数最先进的模型都直接在缓存的视觉特征上训练和评估。这种做法不仅对模型设计施加了不必要的限制,而且限制了现有视觉语言系统的潜在应用。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XEMrt0Aj-1681220771877)(/imgs/2023-04-02/govIRVJcKi7KIZQy.png#pic_center =100%x100%)]

该段文字介绍了利用网格特征进行端到端训练的一些优势。与使用区域特征相比,直接用网格特征进行端到端训练更加容易,因为它们不需要额外的 grounding 标注,可以直接针对最终目标(如正确回答问题)进行优化。通过使用网格特征,作者还探索了更有效的VQA模型设计,并发现即使在没有显式区域注释的情况下,网络也可以实现强大的VQA准确性,这进一步证明了网格特征在VQA中的优越性。作者希望这一发现能够为视觉和语言研究开辟新的机遇。

2. Related Work

Visual features for vision and language tasks

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WpY6Yp3t-1681220771877)(/imgs/2023-04-02/3dmuAir5kbTOXXa4.png#pic_center =100%x100%)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-54fPW7ik-1681220771877)(/imgs/2023-04-02/gJwongob9wwX6qpy.png#pic_center =100%x100%)]

该段文字介绍了特征在视觉和语言任务中的重要作用。深度学习特征在图像字幕生成等领域的应用取得了显著的进展。虽然本文不涉及所有用于视觉和语言任务的视觉特征,但作者指出现代VQA模型的准确性取决于所使用的底层视觉特征,包括VGG和ResNet网格特征以及后来占据主导地位的自下而上的区域特征。现今大多数最先进的VQA模型都是基于区域特征构建的,并且采用了各种融合策略;而本文对网格特征进行了重新审视,表明它们同样有效,并能够带来显著的速度提升,常常超过一个数量级!

总之,该段文字强调了特征在视觉和语言任务中的关键作用,并介绍了现代VQA模型所依赖的底层视觉特征类型。本文的研究发现为我们重新审视了传统网格特征的潜力,并展示了其同样有效且速度更快的优势。

Pre-training for VQA

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RPYKqEfU-1681220771877)(/imgs/2023-04-02/ODCSOd51giuS4og9.png#pic_center =100%x100%)]

该段文字讨论了视觉问答任务中的预训练方法。传统的VQA方法通常使用两个分别预训练的模型:在ImageNet和VG数据集上进行预训练的视觉模型以及用于语言特征的词嵌入。然而,这些单独训练的特征可能并不是联合视觉和语言理解的最优选择,因此近年来研究人员开始探索联合预训练模型。这些方法通常将区域和单词视为各自领域的“token”,并预训练BERT的变体进行“masked” token prediction。与此方向互补的是,本文着重探讨了视觉token的“格式”问题,并可以与这些方法相结合,实现速度和准确性的平衡。

Regions vs. grids.

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bbY7uxg6-1681220771878)(/imgs/2023-04-02/06UquM6Cg6bmf7jg.png#pic_center =100%x100%)]

该段文字探讨了区域特征和网格特征之间的关系,并将其与目标检测任务联系起来。传统的基于区域(R-CNN)的目标检测方法表明,采用区域级别的计算有助于提高目标检测的性能。但是,一些新型的单阶段检测器则不需要显式的区域级别计算,而是使用网格特征来完成检测任务,并且在某些情况下也能取得竞争性的性能。本文的工作也使用了网格特征,以获得更快的推理速度。为了尽可能减少与自下而上的注意力模型[2]的改变,作者选择使用Faster R-CNN进行预训练,但在推理过程中只使用网格卷积特征,从而对网格特征进行了更加有力的证明。同时,作者还指出,虽然区域特征在VQA和COCO字幕等基准测试中非常有效,但是在一些需要模型进行推理的视觉问答基准测试(如CLEVR),基于网格的简单方法已经展现出了强大的性能。

3. From Regions to Grids

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vJgmG8EC-1681220771878)(/imgs/2023-04-02/tjhMsDMdrHhqN0Xo.png#pic_center =100%x100%)]

该段文字介绍了实现与区域特征同样有效的网格特征的方法。为了满足这一要求,网格特征必须使用与区域特征相同的任务进行预训练。在7节中,作者还展示了通过端到端训练可以消除“相同预训练”约束并且网格特征仍然可以缩小与区域特征之间的差距。该段先简要回顾了自下而上的注意力[2]所用的区域特征。

总之,该段文字指出了实现同样有效的网格特征的方法,并介绍了该方法需要使用与区域特征相同的任务进行预训练才能实现。同时,作者也提到了在后续章节中将会阐述如何通过端到端训练来消除这一限制。

3.1. Bottom-Up Attention with Regions

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VMK1xBLL-1681220771878)(/imgs/2023-04-02/vkTe3Qerm6g385XB.png#pic_center =100%x100%)]

该段文字简要介绍了自下而上的注意力方法[2]所用的基础模型和数据集。该方法使用了Faster RCNN检测模型[31],并在Visual Genome [21]数据集的清洗版本上进行训练。Visual Genome数据集包含数千个物体类别和数百个带有边界框(即区域)注释的属性标注信息。

总之,该段文字介绍了自下而上的注意力方法[2]中所用到的基础模型和数据集,并为接下来的内容提供了背景知识。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LrRuv9mx-1681220771878)(/imgs/2023-04-02/IOugjn5Qif36G3pi.png#pic_center =100%x100%)]

为了获得用于视觉问答等任务的自下而上的注意力特征,需要完成两个与区域相关的步骤。

Region selection

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NudfjZoa-1681220771878)(/imgs/2023-04-02/LtK26pRrjCOYP447.png#pic_center =100%x100%)]

由于Faster R-CNN是一种两阶段检测器,在处理过程中需要进行两次区域选择。第一步是通过Region proposal network[31],将候选“锚点”形变并选择出最突出的感兴趣区域(ROI)。另一个选择是在后期以每类别为单位聚合前N个边界框时完成的。在这两个步骤中,都采用了非极大值抑制(NMS)技术,该技术保留具有最高分类分数的区域,并删除局部邻域内的其他相似区域。

总之,该段文字介绍了Faster R-CNN作为一种两阶段检测器,在区域选择方面的两个步骤,并解释了其中使用的非极大值抑制(NMS)技术的作用。

Region feature computation

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YIJgk5HU-1681220771879)(/imgs/2023-04-02/0rS7YZ5BfZE0iYah.png#pic_center =100%x100%)]

  • 首先使用Region proposal network提取感兴趣的区域ROI(可能高达数千个)。

  • 然后通过RoIPool操作[31]从这些区域中提取初始的区域级特征initial region-level features。接着,额外的网络层分别计算每个区域的输出表示。

  • 最后,经过两轮选择后幸存下来的区域特征被整合在一起,作为表示图像的自下而上特征。

  • 值得注意的是,由于Visual Genome数据集的复杂性(例如包含数千个类别)和所使用的Faster R-CNN检测器[2]的特殊性质,这两个步骤的计算成本非常高相比之下,直接使用网格特征可以跳过或加速这些步骤,并且具有潜在的显著加速优势。

总之,该段文字介绍了自下而上的注意力方法中进行区域特征计算的流程,并强调了其计算成本较高的问题。作者还指出,直接使用网格特征可以优化计算速度,提高效率。

3.2. Grid Features from the Same Layer

在这里插入图片描述

将区域特征转换为网格的最简单方法是查看是否可以直接计算同一网络层的输出,但是要采用共享的、完全卷积的方式。为此,作者对原始的自下而上的注意力[2]中使用的具体Faster R-CNN架构进行了更详细的研究。

总之,该段文字重点介绍了将区域特征转化为网格特征的一种简单方法,并着眼于分析了原始的自下而上的注意力方法所使用的具体Faster R-CNN架构。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MPNzu7pf-1681220771879)(/imgs/2023-04-02/QfzAYPmcG34K7Hq9.png#pic_center =100%x100%)]

该段文字介绍了Faster R-CNN的具体架构及其与ResNet模型[15]之间的关系,以及如何将其转化为网格特征。Faster R-CNN是c4模型[15]的一种变体,在属性分类方面增加了一个额外的分支。它将ResNet[15]的权重分成两个独立的集合:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2Fun8Dzg-1681220771879)(/imgs/2023-04-11/yLylUbTcGhMPaMLT.png#pic_center =100%x100%)]

  • 给定输入图像,首先使用ResNet的较低块计算特征映射,直到C4块,这个特征图被所有区域共享。举例:当给定一个输入图像(假设大小为224×224×3)时,首先使用ResNet的较低块对图像进行卷积操作和池化操作,直到C4块。这样就生成了一个7×7×1024的特征图,其中包含了输入图像的高级语义信息。

  • 然后,针对每个区域单独进行特征计算,将C5块应用于14×14 RoIPool操作后的特征上。

  • C5的输出然后被AvgPool平均池化成每个区域的最终向量作为自下而上的特征[2]。

  • 由于所有最终的区域特征均来自C5,因此可以将检测器重新转换回ResNet分类器,并将同一层C5作为我们的输出网格特征。具体如图2左所示:
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YO7KyycB-1681220771880)(/imgs/2023-04-11/pN1Ar4oy4KnaIZkL.png#pic_center =100%x100%)]
    总之,该段文字详细介绍了Faster R-CNN的具体架构及其与ResNet模型之间的关系,并指出如何将其转化为网格特征的方法。
    在这里插入图片描述

实验旨在研究如何在使用 Faster RCNN 模型进行目标检测任务时,使用转换后的 C5 特征图是否会影响模型的性能。实验结果表明,直接使用转换后的 C5 特征图已经取得了出乎意料的良好效果,但如果需要进一步提高模型的性能,则可能需要进行一些细微的调整,以优化特征提取,从而改善 Faster RCNN 在基于网格的目标检测任务中的性能。此外,作者也指出,Faster RCNN 模型虽然在区域检测方面高度优化,但对于基于网格的检测任务的性能优化可能不是特别强。

3.3. 1×1 RoIPool for Improved Grid Features

基于Faster R-CNN改进后的目标检测模型中1×1 RoIPool的使用。在传统的Faster R-CNN中,每个RoI(Region of Interest)都被表示为一个三维张量,即高度、宽度和通道数。而在改进后的模型中,使用1×1 RoIPool将每个RoI表示为一个单一的向量,这样可以减少计算量,同时强制每个网格特征向量独立地表示每个空间区域的所有信息。虽然这种做法看起来有些不合理,因为2D中的两个额外的空间维度(高度和宽度)对于确定物体不同的部分非常有用,但如果强制每个向量仅覆盖空间区域的所有信息,可以得到更强的网格特征,从而提高目标检测的性能。但需要注意的是,在VG数据集上,这种修改对目标检测的性能有负面影响。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JdL3P35n-1681220771880)(/imgs/2023-04-11/Wo2Op4o3NSWKeLDU.png#pic_center =100%x100%)]

直接将1×1 RoIPool应用于原始模型中存在问题,主要是因为C5由多个ImageNet预训练的卷积层组成,这些卷积层对特定空间维度的输入效果最佳。因此,为了解决这个问题,借鉴目标检测领域的最新进展,在共享特征计算方面使用整个ResNet直到C5作为骨干网络,并在区域级别的计算部分顶部放置两个1024D的全连接层(FC层),默认情况下接收向量作为输入。这样做可以解决直接应用1×1 RoIPool所导致的问题,并保证目标检测的性能。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-M6S45Xbx-1681220771880)(/imgs/2023-04-11/aUnQHC3OkkQVa19j.png#pic_center =100%x100%)]

为了减少使用C5池化特征来训练检测器时low resolutions的影响(因为C5的stride为32,而C4的stride为16),作者采取了一些策略:将stride为2的层替换为stride为1的层,并将其余层dilated两倍[54]以提高检测器的性能。在提取网格特征时,取消这种扩张并将其转换回普通的ResNet以保持原始模型的特性。这样做的目的是为了提高模型的性能和准确度,以便更好地识别和定位目标物体。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lKh4Dazr-1681220771880)(/imgs/2023-04-11/kLfguk4Yz7Yu4Ejy.png#pic_center =100%x100%)]

图2(右)总结了我们所做的改进网格的变化。需要注意的是,与原始模型(左)相比,我们只对与区域相关的组件在训练期间进行必要的修改。由于特征提取期间删除了所有此类计算,因此我们的网格特征提取器在推理期间保持不变。这意味着,我们使用改进的网格来训练模型,但在使用训练完成的模型进行推理时,我们仍然使用未经修改的原始网格特征提取器。这种方法可以有效地提高训练效率和模型性能,并且在实际应用中具有一定的可行性。

4. Experiment

4.1 Main Results

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FARTSsU5-1681220771880)(/imgs/2023-04-11/5f6eb5rpxQJVpgVO.png#pic_center =100%x100%)]

首先,与广泛使用的自下而上区域特征(第 1 行)相比,使用相同模型(第 3 行)直接从 C5 中提取输出效果出奇地好(64.29 : 63.64 准确度)。相比之下,在 ImageNet [6] 上预训练的标准 ResNet-50 模型显示出更差的性能——准确率为 60.76,与自底向上特征的差距超过 3%(网格特征的好处)。

4.2 Number of Regions

为了了解这些不同数量的区域特征如何影响精度,我们使用不同数量的特征N进行实验,结果如图3所示。对于区域特征,我们观察到,当区域数量从30个增加到200个时,精度有所提高,超过这个数字,精度达到饱和。有趣的是,即使与数量最多的区域相比,我们的网格特征也更好。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Mn5VDLNY-1681220771881)(/imgs/2023-04-11/8xVqpnHErKJJb7iI.png#pic_center =100%x100%)]

4.3 Test Accuracy and Inference Time

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ikM220Co-1681220771881)(/imgs/2023-04-11/d4XE7wHa2FiKwohc.png#pic_center =100%x100%)]

使用不同特征(region和grid)进行VQA2.0测试,并且使用trainval+vqa-eval来进行训练,得到了表2中的结果。该实验表明,使用grid作为特征的模型的速度比使用bottom-up region features作为特征的模型的速度快48倍。这是因为region features需要进行区域选择和区域特征计算等额外操作,占据了总推理时间的98.3%。同时,在测试集中使用grid作为特征的模型获得了更高的VQA准确度。

4.4 Qualitative Comparison

图4中展示的使用top-down attention module 在COCO数据集上的attention maps效果。作者使用了region和grid两种特征,并将两个特征对应的attention value传播到相应的像素上,然后对每个像素的attention value取平均值并进行归一化处理,以得到attention maps。结果显示,这两种特征都能够捕捉输入图像中的相关概念。区域特征的attention maps往往覆盖类似物体的区域,而网格特征的attention maps并不一定覆盖支持的整个区域,但这两种特征都能够在VQA任务中表现得很好。尽管本文指出定位是很重要的,但是精准的个体物体检测对于回答VQA问题并不是关键。此外,作者还展示了region和grid特征在一些失败案例中的表现,发现通常情况下模型会注意到支持概念但仍然给出错误答案。对于那些无论使用region还是grid特征都表现不佳的情况,可能需要特定设计的模块(例如计数模块)才能正确回答问题。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vI1yGdOq-1681220771881)(/imgs/2023-04-11/MOi5Xug4gAeyQQZW.png#pic_center =100%x100%)]

5. Why do Our Grid Features Work?

这段文字总结了在第2节中提到的,与之前的研究相比,为什么本文的网格特征表现得如此出色。作者在表3中展示了不同设置下基于网格的方法(ResNet-50 C5特征)的性能,并发现有两个主要因素:1)输入图像大小;2)预训练任务。接下来,作者分别研究了这两个因素,并在vqa-eval数据集上报告了结果。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wkzlh0YD-1681220771881)(/imgs/2023-04-11/wvy4A2zPw3GrGxWF.png#pic_center =100%x100%)]

5.1. Factor 1: Input Image Size

输入图像大小对VQA 2.0 VQA -eval集的影响。网格特性受益于更大的输入图像尺寸。对于ImageNet预训练的模型,其精度在600×1000附近饱和,但VG模型更好地利用了更大的输入图像尺寸。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dYuRDyWR-1681220771881)(/imgs/2023-04-11/PbVs5mZvT0c39dRW.png#pic_center =100%x100%)]

5.2 Factor 2: Pre-Training Task

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2eVW24Hj-1681220771881)(/imgs/2023-04-11/ZoCzJRIrhmmjEuKI.png#pic_center =100%x100%)]

作者在研究中通过引入不同的预训练模型,研究了ImageNet和VG两种不同预训练任务对VQA准确性的影响。作者在每个设置中都引入了一个额外的预训练模型来更好地理解这些差异。在分类预训练设置中,使用YFCC数据集(使用图像级标签进行训练)的模型表现比ImageNet模型更好,可能是因为它使用了数量级更大的数据进行训练。对于基于检测的预训练,VG模型(使用对象和属性进行训练)结果比COCO模型更好。VG具有比COCO更多的类别(1600 vs. 80)或额外的属性注释是提高性能的两个可能原因。接下来,作者研究了属性的影响。

6. Generalization of Grid Features

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-x7o0anGL-1681220771882)(/imgs/2023-04-11/iPpWf6YdDY9JRlCr.png#pic_center =100%x100%)]

7. Conclusion

本文重新审视了作为视觉和语言任务中广泛使用的 bottom-up 区域特征[2]的替代选择 - 网格特征。作者展示了网格特征实际上能够在不同的VQA任务和模型以及生成字幕方面实现相当的准确性。我们看到了显著的加速 - 往往是超过一个数量级的现有依赖于区域的特征。作者的实验表明,特征的“格式”(区域 vs. 网格)不如特征所代表的语义内容对其效果更为关键。实验发现,可以通过在对象和属性数据集(例如VG)上进行预训练,或者更重要的是通过直接为端任务直接训练网格特征来实现有效的表示。需要注意的是,虽然使用网格特征容易进行端到端训练,但使用区域特征进行端到端训练并不是一件容易的事情。作者已经展示了,在更灵活的设计空间下,即使没有任何区域级别的注释,预训练的网格特征实际上也可以在VQA上获得强大的性能。尽管我们知道,在诸如指代表达式[19]这样的任务中,输出本身就是一个区域,但我们希望我们的网格特征潜在地可以为视觉和语言研究提供新的视角。

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

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

相关文章

5年测试被裁,恶补3个月上岸字节28K,面试差点被问哭···

我的个人背景非常简单,也可以说丝毫没有亮点。 学历普通,计算机专业二本毕业,毕业后出来就一直在一家小公司,岁月如梭细,算了下至今从事软件测试已经5年了,也点点点了五年,每天都是重复的工作&…

大数据4 - 分布式计算

1.分布式计算概述 分散->汇总模式: 1. 将数据分片,多台服务器各自负责一部分数据处理 2. 然后将各自的结果,进行汇总处理 3. 最终得到想要的计算结果 1. 什么是计算、分布式计算? •计算:对数据进行处理&#x…

git版本规范-前端

前言 本文档适用于前端的小伙伴。针对目前前端只有测试环境和生产环境,为更好管理前端代码和适用于自动化部署,编写次文档,有不同意见的小伙伴可以进行讨论。 分支 由于没有目前没有预发环境,简化开发、测试、部署和发布流程&a…

W80X|联盛德|nulllab空想实验室|Arduino适配|学习(6):w80x_arduino环境安装

文章目录概述官方推荐安装方法(实测未成功)readme中的安装步骤:手动安装方法:clone项目至本地手动新建w80x_arduino管理器存放目录w80x_arduino开发进展说明概述 此开源项目由nulllab空想实验室团队维护,并得到联盛德…

STL基本概念

📖作者介绍:22级树莓人(计算机专业),热爱编程<目前在c++阶段>——目标Windows,MySQL,Qt,数据结构与算法,Linux,多线程&…

vue3+TS+Pinia+Vite项目实战之一

文章目录一、创建项目1.1 使用脚手架创建项目1.2 初始化项目二、登录页面的开发三、使用vite-plugin-mock模拟后台接口返回数据四、前端调用后端接口使用axios五、首页layout六、动态菜单七、设置需要登录才能访问某些页面一、创建项目 1.1 使用脚手架创建项目 npm init vuel…

【网络安全】SQL注入--报错注入

报错注入报错注入定义代码展示常用的报错语句1.获取数据库名称2.获取mysql账号密码3.获取表名4.获取字段名5.获取账号密码报错注入定义 报错注入:利用sql语句的不规范,获取相关sql提示信息 代码展示 常用的报错语句 select first_name, last_name FROM…

【小程序】django笔记2

templates路径除了在settings中的templates的DIR[]中申明还有什么别的方法?已知,django底层根据app注册顺序查找各app文件中的templates文件夹,在其中搜索目标模版文件。已知,app注册在settings中的INSTAll-APPS里。已知&#xff…

MyBatis基础增删改查

文章目录MyBatis1. MyBatis是什么?2. 为什么要学习MyBatis3. 第一个MyBatis环境搭建1)添加MyBatis框架支持2)配置MyBatis相关配置文件3)添加代码4. 解决类的属性名和数据表字段名不一致(resultMap)5. 增加操作1)返回受影响的行数2)返回自增的id6. 修改操作7. 删除操…

类和对象深入讲解(1)

目录 1.类和对象的初步认识 1.1面向过程和面向对象的区别 1.2类的引入 1.3内的定义 1.4类的访问限定符及封装 1.4.1访问限定符 1.4.2 封装 1.5类的作用域 1.6类对象模型 1.6.1如何计算类对象大小 1.类和对象的初步认识 1.1面向过程和面向对象的区别 C语言是面向过程的…

大模型混战,阿里百度华为谁将成就AI时代的“新地基”?

从算力基础到用户生态,群雄逐鹿大模型 自2022年stable diffusion模型的进步推动AIGC的快速发展后,年底,ChatGPT以“破圈者”的姿态,快速“吸粉”亿万,在全球范围内掀起了一股AI浪潮,也促使了众多海外巨头竞…

Golang每日一练(leetDay0030)

目录 88. 合并两个有序数组 Merge Sorted Array 🌟 89. 格雷编码 Gray Code 🌟🌟 90. 子集 II Subsets II 🌟🌟 🌟 每日一练刷题专栏 🌟 Golang每日一练 专栏 Python每日一练 专栏 C/…

为什么要创建FAQ?这篇文章告诉你

什么是FAQ 通过上述的引入大家应该也了解到了,FAQ是为了“解决问题”而存在的。FAQ是英文Frequently Asked Questions的缩写,中文意思就是“经常问到的问题”,或者更通俗地叫做“常见问题解答”。FAQ是当前网络上提供在线帮助的主要手段&…

小程序开发收费价目表

小程序作为一种新兴应用形式,正在逐渐成为企业和个人推广、运营的重要手段。然而,小程序开发的价格因项目规模和复杂程度差异较大,令不少人望而却步。本文将从小程序开发的相关因素入手,探讨小程序开发的价格范围和算法。 一、小…

【JLink仿真器】盗版检测、连接故障、检测不到芯片问题

【JLink仿真器】盗版检测、连接故障、检测不到芯片问题一、问题描述二、解决方法1、降低驱动(解决非法问题以及连接故障)2、SWD引脚被锁(解决检测不到芯片)三、说明一、问题描述 盗版检测:the connected probe appear…

【Linux】Mysql之索引的基本操作

一、为什么要使用索引 索引就是根据表中的一列或若干列按照一定顺序建立的列值与记录行之间的对应关系表,实质上是一张描述索引列的列值与原表中记录行之间一 一对应关系的有序表。 索引是 MySQL 中十分重要的数据库对象,是数据库性能调优技术的基础&…

GraphCL方法介绍(Graph Contrastive Learning with Augmentations)

论文链接:https://arxiv.org/pdf/2010.13902.pdf 附录链接:https://yyou1996.github.io/files/neurips2020_graphcl_supplement.pdf 代码链接:https://github.com/Shen-Lab/GraphCL 1 图的数据增强 我们专注于图级扩充。给定 M 个图的数…

【分布式】熔断、降级傻傻分不清楚-熔断和降级的真实关系

文章目录前言降级熔断什么是服务熔断熔断和降级的关系降级方式1、熔断降级(不可用)2、超时降级3、限流降级总结前言 刚开始我以为熔断和降级是一体的,以为他们必须配合使用; 只不过名字不一样而已,但是当我经过思考过…

[架构之路-164]-《软考-系统分析师》-3-操作系统基本原理-文件系统(文件的逻辑组织、文件的物理组织、硬盘空间管理、分布式文件系统)

目录 3 . 4 文件系统 3.4.1文件的组织结构 1 . 逻辑结构 2 . 物理结构 3 . 树形文件结构 3.4.2 硬盘存储空间管理 1 . 空闲文件目录 2 . 空闲块链 3 . 位示图法 4 . 成组链接法 3.4.3分布式文件系统 1. D F S 的特点 2. DFS 的组成 3. DFS 的架构 3 . 4 文件系统…

腾讯云服务器TencentOS系统安装宝塔Linux面板命令

腾讯云服务器TencentOS Server操作系统安装宝塔Linux面板命令选择CentOS安装脚本即可,TencentOS用户态环境与CentOS保持兼容,在CentOS上开发的应用程序可直接在TencentOS Server上运行。腾讯云百科分享腾讯云服务器TencentOS操作系统安装宝塔Linux面板命…