多标签分类论文笔记 | ML-Decoder: Scalable and Versatile Classification Head

个人论文精读笔记,主要是翻译+心得,欢迎旁观,如果有兴趣可以在评论区留言,我们一起探讨。
Paper: https://arxiv.org/pdf/2111.12933.pdf
Code: https://github.com/Alibaba-MIIL/ML_Decoder

文章目录

  • 0. 摘要
  • 1. 介绍
  • 2. 方法
    • 2.1 Baseline分类头
    • 2.2 回顾-Attention and Transformer-Decoder
    • 2.3 ML-Decoder
  • 3. 实验研究
    • 3.1 查询类型比较
    • 3.2 比较不同分类头
    • 3.3 Zero-shot学习
  • 4. 实验结果
    • 4.1 多标签分类
    • 4.2 Zero-shot学习
    • 4.3 单标签分类
  • 5. 结论与未来工作

0. 摘要

  • 翻译
    本文介绍了一种新的基于注意力的分类头——ML-Decoder。ML-Decoder通过查询预测类标签的存在,与全局平均池化相比,它能够更好地利用空间数据。通过重新设计解码器架构,并使用一种新颖的组解码方案,ML-Decoder具有很高的效率,并且可以很好地扩展到数千个类。与使用更大的主干相比,ML-Decoder始终提供更好的速度-精度权衡。ML-Decoder也是通用的——它可以作为各种分类头的临时替代品,并且在与单词查询操作时推广到不可见的类。新颖的查询扩充进一步提高了其泛化能力。使用ML-Decoder,我们在几个分类任务上取得了最先进的结果:在MS-COCO多标签上,我们达到了91.4%的mAP;在NUS-WIDE的zero-shot上,我们达到了31.1%的ZSL(Zero shot learning) mAP;在ImageNet单标签上,我们在没有额外数据或蒸馏的情况下,用vanilla ResNet50主干达到了80.7%的新最高分。

  • 笔记

    1. 摘要主要讲了下ML-Decoder不同于一般的全局平均池化,通过查询来预测类别能更好的利用空间信息;
    2. 跟更大的backbone相比,ML-Decoder能更好权衡速度-精度;
    3. ML-Decoder也是通用的——它可以作为各种分类头的临时替代品,并且在与单词查询操作时推广到不可见的类;
    4. 最后展示了下实验数据,能在不同数据集上多标签分类的任务达到SOTA的性能;

1. 介绍

先说了一下图像分类的概念,可以根据图像中的物体分配一个或多个标签,那么分配一个标签的就是单分类,多个标签就是多分类。然后单分类需要对输出结果做softmax操作,softmax操作其实就是把输出的多个类别通过运算缩放到0~1之间的值,我们可以称为概率值,然后对于每个物体预测的所有类别之和为1,具体可以参考这篇博文。再说回多分类,其实自然图片通常包括多个对象,那么就需要多标签分类。然后作者介绍了下他的做法:类似处理多任务问题,分别独立地预测每个类别。然后介绍了业界一般的做法:通过图神经网络利用标签相关性,改进损失函数、预训练方法和主干,在多标签分类领域取得了显著的成功。

极端分类时,我们需要预测大量类的存在(通常是数千或更多),迫使我们的模型和训练方案是高效和可扩展的。多标签零次学习(ZSL)是多标签分类的扩展,在推理过程中,网络尝试识别看不见的标签,即在训练过程中未使用的其他类别的标签。这通常是通过文本模型在可见类(用于训练)和不可见类之间共享知识来实现的。

分类网络通常包含主干和分类头。主干输出空间嵌入张量,分类头将空间嵌入张量转换为预测逻辑。在单标签分类中,这通常是通过全局平均池化 (GAP)完成的,然后是一个全连接层。基于GAP的分类头也用于多标签分类。然而,由于需要识别具有不同位置和大小的多个对象,这可能会使平均池的使用不是最优的。最近,一些研究提出了基于注意力分类头的多标签分类方法。有论文提出一种双流注意力框架,用于从全局图像到局部区域的多类别物体识别。还有论文提出了简单的空间注意分数,然后将其与类别无关的平均池化特征相结合。还有论文提出了一个具有可学习查询的池化transformer,用于多标签分类,获得了顶级结果。(具体哪篇论文请参考原文)

基于GAP的分类头简单而有效,并且由于它们具有固定的空间池化成本,因此可以很好地随类数量的增加而扩展。然而,它们提供了次优结果,并且不能直接应用于ZSL。基于注意力的分类头确实改善了结果,但通常成本很高,即使对于具有少量类别的数据集也是如此,并且对于极端的分类场景实际上是不可行的。它们也没有自然延伸到ZSL。

在本文中,我们介绍了一种新的分类头,称为ML-Decoder,它为单标签、多标签和零采样分类提供了统一的解决方案,并取得了最先进的结果(见图1)。ML-Decoder的设计基于原始的transformer-decoder,进行了两大修改,显著提高了其可扩展性和效率。首先,它通过去除冗余的自关注块,将解码器在输入查询数量上的二次依赖关系降低为线性依赖关系。其次,ML-Decoder使用一种新颖的组解码方案,它不是为每个类分配查询,而是使用固定数量的查询,这些查询通过称为组全连接(group
fully-connected)的新体系结构块插值到最终数量的类。使用组解码,ML-Decoder还享有固定的空间池成本,并且可以很好地扩展到数千个类。

在这里插入图片描述
ML-Decoder灵活高效。它可以用可学习的或固定的查询进行同样好的训练,并且可以在训练和推理期间使用不同的查询(见图2)。这些关键特性使ML-Decoder适合ZSL任务。当我们为每个类分配查询并使用单词查询训练MLdecoder时,它可以很好地泛化到看不见的查询,并显着改进了以前最先进的ZSL结果。我们还证明了组解码方案可以扩展到ZSL场景,并在训练过程中引入新的查询增强以进一步促进泛化。
在这里插入图片描述
本文的贡献可以总结如下:

  1. 我们提出了一种新的分类头,称为ML-Decoder,它为多标签、零标签和单标签分类提供了统一的解决方案,并具有最先进的结果。
  2. ML-Decoder可以作为全局平均池化的替代方案。它简单而高效,与更大的主干或其他基于注意力的头相比,它提供了更好的速度和精度权衡。
  3. ML-Decoder新颖的设计使其可扩展到分类数千类。互补的查询增强技术也提高了它对不可见类的通用性。
  4. 我们通过对常用分类数据集(MS-COCO、Open Images、NUS-WIDE、PASCAL-VOC和ImageNet)的综合实验验证了ML-Decoder的有效性。
  • 笔记:
    以上是翻译带一点补充,然后是Intro,是介绍关于分类、多分类各大家的做法,然后提出自己的做法,并且总结了下自己的贡献。比较关键的几点在最后的贡献也总结了,好像也没啥其他好写的了= =下面看具体的方法,方法我就不翻译了,直接带理解的做笔记。

2. 方法

先是回顾baseline分类头,包括 GAP-based 和 Attention-based。然后再介绍本文的重点ML-Decorder,包括他的优点以及介绍他在CV多重任务中什么适用的,多重任务当然就包括多标签分类、ZSL、单标签分类。

2.1 Baseline分类头

首先是统一一套框架,backbone+cls head的结构:
在这里插入图片描述
cls head又分为GAP-based和Attention-based,GAP-based就是用全局平均池化算子把backbone输出的tensort减到一维,然后全连接层转换为N个输出,N为类别,GAP通常处理单标签分类任务,有一定的泛化性,有些论文也把GAP作为多标签分类的baseline。
在这里插入图片描述

对于Attention-based的分类头,可以更好的使用空间数据,并提高结果,具体看下面。

2.2 回顾-Attention and Transformer-Decoder

这里回顾了transformer-decoder并且说明了ML-Decoder与之的区别。首先Attention的定义如下,Q、K、V分别为3个输入向量
在这里插入图片描述
多头的输出为:
在这里插入图片描述
在这里插入图片描述
图中展示了transformer-decoder和ML-Decoder的区别,FF是前馈全连接层。token池化阶段是在token嵌入的维度D上进行简单池化,以产生N个输出。

2.3 ML-Decoder

2.3.1 动机
transformer-decoder分类头有个缺点,计算成本是类别的平方。 导致类别越多,速度越慢,或者不可行。如Open Images(9600个类),从计算成本的角度来看,这类方法实际上是不可行的。另外,变压器-解码器作为分类头只适用于多标签分类。一个更普遍的基于注意力的头部,也可以处理其他任务,如单一标签和ZSL,将是有益的。

2.3.2 ML-Decoder设计
详细说明图3中,对于transformer-decoder,ML-Decoder做了哪些修改。

(1)移除Self-attention:

我们首先观察到,在推理过程中,transformer-decoder的self-attention模块对输入查询提供了固定的转换。然而,当查询进入cross-attention模块时,在进行注意操作之前,它们要经过一个投影层(参见公式1)。在实践中,投影层可以将查询转换为任何想要的输出,使自注意模块冗余。因此,我们可以去除自关注层,同时仍然保持分类头的相同表达性,并且不会降低结果。我们将在3.1节中验证这一点。通过消除自关注,我们避免了昂贵的模块,并将ML-Decoder在输入查询数上的二次方关系变为线性关系,使其更加实用和高效。

(2)组编码(Group-decoding)

在极端的分类场景中,即使分类头与类别数量的线性依赖关系也可能代价高昂。我们希望打破这种耦合,使交叉关注模块及其后的前馈层与类的数量无关,与GAP操作相同。为此,我们没有为每个类分配一个查询,而是使用固定数量的组查询K作为输入(参见图3)。

然后看图4,很明显只跟K有关而不跟N相关。
在这里插入图片描述
对组解码方案的一些额外观察和见解:

  • 使用全解码(g = 1),每个查询检查单个类的存在性。使用组解码,每个查询检查几个类的存在性。我们选择以随机的方式把班级分成几组。通过语义接近对类进行聚类是另一种选择,但需要一个繁琐的聚类过程,并且可能需要对每个数据集进行调优的额外超参数。在第3.2节中,我们将展示随机分组聚类足以提供与全解码方案相当的结果。
  • 在flops方面,组全连接层相当于基于gap的头部中的全连接层(N × D乘法)。两者在类的数量上都是线性相关的,但在实践中,即使对于数千个类,它们的计算开销也很小。就内存消耗而言,在单个操作中执行完全连接在一起的两个任务比连续执行它们更有效,因为不需要存储大型中间映射。
  • ML-Decoder中唯一依赖于输入图像大小的组件是cross-attention模块。我们可以把cross-attention层想象成空间池,类似于GAP。对于组解码,ML-Decoder具有固定的空间池开销,与N无关。

(3)Non-learnable查询

用于多标签分类的transformer-decoder只有在可学习的查询下才能获得最佳结果。然而,我们观察到查询总是被输入到一个多头注意层,该注意层对查询应用了一个可学习的投影计算(参见公式1)。因此,将查询权重设置为可学习的是多余的——可学习的投影可以将任何固定值查询转换为可学习查询获得的任何值。我们将在第3.1节中验证这一点,表明使用可学习或固定查询训练ML-Decoder时获得相同的准确性。除了简化训练过程之外,使用固定查询将使我们能够进行ZSL。

2.3.3 ML-Decoder for ZSL

接下来,我们将介绍在多标签ZSL场景中使用ML-Decoder所需的适应性,并讨论ML-Decoder的关键特性,使其适合该任务。我们还将证明组解码方案可以扩展到ZSL,并提出新的查询增强功能,进一步提高ML-Decoder的泛化性。

基于NLP的查询:我们首先介绍一个具有完整解码方案的ZSL ML-Decoder版本(每个标签都有一个相应的查询)。如前一节所讨论的,输入查询可以是可学习的,也可以是固定的。对于ZSL,我们使用固定的基于nlp的查询——对于每个标签,使用语言模型提取单词嵌入向量,并将其设置为输入查询。我们还在组全连接层中使用共享投影矩阵(在Eq. 3中设置Wk = W)。使用基于nlp的查询和共享投影矩阵,语义信息可以在推理期间从可见(训练)类传播到不可见(测试)类,从而实现泛化。

ML-Decoder功能:ML-Decoder包含几个有利的功能,使其非常适合ZSL。首先,它的注意机制是基于向量之间的点积相似度(Eq. 1)。由于NLP词嵌入保留了这种点积语义相似度[15],因此未见的标签更有可能与解码器内最相似的键和值匹配。此外,具有共享投影矩阵的MLDecoder允许可变数量的输入查询,并且对查询的顺序不敏感。这是有益的,因为在ZSL中,我们对不同的类集执行训练和测试,因此对不同的查询集执行训练和测试。对于ZSL,我们只对可见标签进行训练,并对不可见类进行推理,而对于广义ZSL (GZSL),我们对不可见和可见标签集的并集进行推理。

组解码:组解码(K < N)需要修改才能在ZSL设置中工作。在附录B中,我们详细介绍了ZSL组解码的变体。

查询增强:通过基于nlp的查询,MLDecoder自然地扩展到ZSL任务。然而,我们希望应用专门的训练技巧来进一步提高其通用性。在计算机视觉中,对输入图像进行增强以防止过拟合,并提高对未见过的新图像的泛化能力是一种常见的做法。
类似地,我们引入查询扩展来鼓励对不可见的类查询进行泛化。第一个增强是random-query,它向输入查询集添加额外的随机值查询,并为这些添加的查询分配一个表示“随机”的正基础真值标签。第二个增强是查询噪声,我们在每批输入查询中添加一个小的随机噪声。
请参见附录中的图8,以了解增强的示例。在第3.3节中,我们将展示查询增强鼓励模型识别以前没有遇到过的新查询向量,并提高ZSL分数。我们还尝试了查询截断增强,即每批删除查询的随机部分。然而,在我们的实验中,这种技术并不是有益的。

2.3.4 ML-Decoder for Single-label Classification
先前提出的大多数基于注意力的分类头都是用于多标签分类的,这也是我们在工作中关注的主要任务。然而,我们的ML-Decoder设计使其能够在其他计算机视觉任务(如单标签分类)中用作基于gap的磁头的直接替代品,如图2所示。

在多标签分类中,基于注意的头部的主要动机是需要识别几个不同位置和大小的物体。我们将在4.3节中展示ML-Decoder的好处更普遍,并且完全适用于单标签问题,其中图像通常包含单个对象。

3. 实验研究

在这部分,我们将为我们提出的ML-Decoder分类头带来消融测试和内部比较。首先,我们将使用不同类型的输入查询测试ML-Decoder。然后,我们将ML-Decoder与其他分类头进行比较,例如transformer-decoder和基于GAP的分类头。最后,我们将利用增强查询和群解码对ZSL进行消融研究。

3.1 查询类型比较

如第2.3.2节所述,由于注意模块中的线性投影,ML-Decoder在使用可学习或固定查询时保持相同的表达性。在表7中,我们比较了MS-COCO多标签数据集上不同类型查询的ML-Decoder结果(参见附录C以获得MS-COCO的完整训练细节)。

事实上,我们看到可学习的、固定随机的和固定基于NLP的单词查询都产生了相同的准确率,88.1% mAP,正如预期的那样。为了减少学习参数的数量,我们将使用固定查询。
在这里插入图片描述

3.2 比较不同分类头

在这里插入图片描述
在这里插入图片描述
TResNet-M 的backbone相当于Resnet50
在这里插入图片描述
在图5中,我们在MS-COCO上比较了mAP分数与基于gap和ML-Decoder分类头的失败,具有三种不同的架构- tresnet, TResNet-M, TResNet-L(在运行时相当于ResNet34, ResNet50和ResNet101)。

3.3 Zero-shot学习

在这里插入图片描述
从表中可以明显看出,随机查询和附加噪声都有助于模型泛化到不可见类的能力。当同时应用这两种方法时,我们看到未见过的课程的mAP分数增加了1.2%。我们还测试了查询增强对所见类的影响。在MS-COCO和NUS-WIDE上,添加查询扩展对所见类的mAP分数没有影响(MS-COCO为88.1%,NUS-WIDE为22.7%)。这与3.1节的结果一致,在3.1节中,可学习查询和固定查询在所见类上提供相同的结果。使用查询增强的好处是可以更好地泛化到不可见的类。

在表4中,我们比较了ZSL任务的组解码器和全解码器。附录B描述了对ZSL组解码方案的修改。
在这里插入图片描述
从表4中我们可以看到,组解码方案也适用于ZSL场景,与完全解码相比,mAP分数略有下降。

4. 实验结果

在本节中,我们将在流行的多标签、ZSL和单标签分类数据集上评估基于ml解码器的解决方案,并将结果与已知的最先进技术进行比较。

4.1 多标签分类

在这里插入图片描述

4.2 Zero-shot学习

在这里插入图片描述

4.3 单标签分类

在这里插入图片描述

5. 结论与未来工作

本文介绍了一种新的基于注意力的分类头——ML-Decoder。通过去除冗余的自关注层并使用新颖的组解码方案,ML-Decoder可以很好地扩展到数千个类,并且比使用更大的主干提供更好的速度-精度权衡。ML-Decoder可以很好地处理固定查询或随机查询,并在训练和推理时使用不同的查询。通过基于单词的查询和新颖的查询增强,ML-Decoder还可以很好地泛化到不可见的类。大量的实验分析表明,ML-Decoder优于基于GAP分类头的多个分类任务,如多标签,单标签和Zero-shot,并取得了新的最先进的结果。

我们未来的工作重点是将ML-Decoder的使用扩展到其他计算机视觉任务,包括分类,如目标检测和视频识别。我们还将探索更普遍地使用群解码方案来处理任何空间嵌入张量,并将尝试将其应用于其他领域和任务,如分割,姿态估计和NLP相关问题。

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

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

相关文章

免疫球蛋白介绍

免疫球蛋白&#xff08;Immunoglobulin&#xff0c;Ig&#xff09;是广泛存在于哺乳动物血清、淋巴液、组织液和外分泌液中的一种具有抗体活性或化学结构与抗体相似的球蛋白&#xff0c;在机体防御疾病的重要成分在疾病研究、药物研发、疫苗评价中具有重要作用。抗体&#xff0…

【实训项目】“优品果园”-线上水果商城小程序

1.项目背景 随着现代人对消费水平的追求以及对食物安全的需要&#xff0c;无污染、产地直销的有机水果受到越来越多市民的喜欢。交易过程的简洁化是现代消费者的追求&#xff0c;产地直销也是近期流行的一种新型的交易模式。产地直销的交易模式使得交易过程更加简便快捷&#…

【MySQL】关于MySQL升级到8.0版本的实践方案

关于MySQL升级到8.0版本的实践方案 关于数据库版本升级,一直都是热议话题,对于升级的缘由各家也有所不同,有业务驱动的,有DBA自发驱动的,有规划导向也有方向指引的……抛开各种原因,当升级这个决定落下来的时候,对于DBA手头的几百几千套数据库来说,就好比是一场动物大…

[电源选项]没有系统散热方式,没有被动散热选项

背景 笔记本的风扇声音太大&#xff0c;想改成被动散热方式&#xff0c;又不想影响性能。 于是我打开了控制面板\所有控制面板项\电源选项&#xff0c;点更改计划设置-> 更改高级电源设置。 想把散热方式改成被动散热。发现win11中好像没有这个选项了&#xff01; 如何…

198、RabbitMQ 的核心概念 及 工作机制概述; Exchange 类型 及 该类型对应的路由规则;了解什么是JMS。

目录 JMS 讲解★ RabbitMQ的核心概念★ RabbitMQ工作机制★ Connection&#xff08;连接&#xff09; 与 Channel&#xff08;通信信道&#xff09;★ Exchange★ Exchange与Queue★ Exchange的类型&#xff08;4种&#xff09;及 该类型对应的路由规则 看RabbitMQ 之前&#x…

技术分享| 二进制部署MySQL

一、介绍 ​MySQL是一个关系型数据库管理系统&#xff0c;由瑞典MySQL AB 公司开发&#xff0c;属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一&#xff0c;在 WEB 应用方面&#xff0c;MySQL是最好的 RDBMS (Relational Database Management System&#x…

拼多多历史价格数据接口,拼多多商品历史价格接口,拼多多API接口

采集拼多多商品历史价格接口可以采用以下方式&#xff1a; 使用价格监控工具。价格监控工具是一种可以自动监测商品价格变化的工具&#xff0c;它可以帮助消费者快速采集拼多多商品价格信息&#xff0c;还可以提供价格变动趋势的图表分析&#xff0c;使消费者更好地掌握商品价…

PLL的环路滤波器

本篇文章仅为分享PLL学习过程及一些公式推导&#xff0c;如有错误&#xff0c;还请批评指正&#xff01; 文章目录 1、一阶RC低通滤波器&#xff08;II类锁相环&#xff09;2、二阶RC低通滤波器A、加电容型B、加RC低通滤波器型 3、三阶低通滤波器 锁相环3大组成部分&#xff1…

Unity 表面凝结水珠效果(无需编码案例分享)

文章目录 前言正文1、准备工作2、瓶子的表面会先慢慢变白3、身周围的物体的反射会慢慢变得模糊4、周围的反射又会慢慢的变回清晰5、出现一个个不跪着的小水珠 结语 前言 今天跟大家分享一一个非常简单的使用Unity制作出在物体便面凝结小水珠的过程动画&#xff0c;老规矩先上图…

JMeter三种常用的逻辑控制器

一. 如果&#xff08;if&#xff09;控制器 1.1 使用js语法来判断&#xff1a; ## 1.2 使用jexl3函数来判断性能好&#xff1a; 二. 循环控制器 三. ForEach控制器 ForEach控制器一般和用户自定义变量或者正则表达式提取器一起使用&#xff0c;其在用户自定义变量或者从正…

c++视觉处理---均值滤波

均值滤波 cv::blur()函数是OpenCV中用于应用均值滤波的函数。均值滤波是一种简单的平滑技术&#xff0c;它计算每个像素周围像素的平均值&#xff0c;并用该平均值替代原始像素值。这有助于降低图像中的噪声&#xff0c;并可以模糊图像的细节。 以下是cv::blur()函数的基本用…

如何在手机上设置节日提醒和倒计时天数?

在平淡的生活和工作中&#xff0c;时不时有各种各样节日的点缀&#xff0c;为我们的日常增添了一些仪式感&#xff0c;例如春节、元宵节、情人节、端午节、七夕节等。此外还有一些特殊的日子也值得纪念&#xff0c;例如恋爱纪念日、结婚纪念日、亲朋好友生日等。面对这些节日&a…

【数据结构】算法的空间复杂度

&#x1f984;个人主页:修修修也 &#x1f38f;所属专栏:数据结构 ⚙️操作环境:Visual Studio 2022 算法空间复杂度的定义 算法的时间复杂度和空间复杂度是度量算法好坏的两个重要量度,在实际写代码的过程中,我们完全可以用空间来换时间,比如说,我们要判断某某年是不是闰年,大…

css实现一行N个元素动态布局(以4个为例)

昨日同事问了我一个前端问题&#xff0c;前端开发的尺寸都不按照UI图上面还原的吗&#xff1f; 我了解了其中原由&#xff0c;告知UI图并不会考虑到所有的场景&#xff0c;只能给个案例&#xff0c;画图是死的&#xff0c;代码写出来的得是活的。就像他遇到的案例&#xff0c;请…

GTX312L比TSM12更具优势的智能门锁触摸芯片方案

韩国GreenChip&#xff08;绿芯&#xff09;GTX312L是一款高灵敏、超强抗干扰能力具有自动灵敏度校准的12通道电容传感器&#xff0c;电源电压范围为1.8V&#xff5e;5.0V&#xff0c;支持单键/多点触控&#xff1b;采用I2C通信协议&#xff1b;内部控制寄存器可以使用I2C读写接…

华为云云耀云服务器L实例评测使用 | 云耀云服务器L实例Docker可视化Portainer容器管理

一、使用背景 之前一直在用阿里云或者腾讯云的服务器&#xff0c;现在接触了一下华为云的服务器实例&#xff0c;点开产品列表发现有弹性云服务器ECS、云耀云服务器HECS等&#xff0c;本文主要使用云耀云服务器&#xff0c;看到官方简介&#xff1a; 华为云耀云服务器&#x…

uniapp小程序中给web-view页面添加授权弹窗(使用cover-view组件覆盖实现该功能)

效果图&#xff1a; web-view是承载网页的容器。会自动铺满整个小程序页面&#xff0c;个人类型的小程序暂不支持使用。 再看下面一个提示&#xff1a; 每个页面只能有一个 web-view&#xff0c;web-view 会自动铺满整个页面&#xff0c;并覆盖其他组件。 也就是说&#xff0c;…

Android Studio版本升级后的问题 gradle降级、jdk升级

Cannot use TaskAction annotation on method IncrementalTask.taskAction$gradle_core() because interface org.gradle.api.tasks.incremental.IncrementalTaskInputs is not a valid parameter to an action method. 修改下面两处地方分别为7.0.3、7.3.3Android Gradle plu…

前端-Vue-开发指南

VueJS 开源文档 拉入vscode安装node.js安装vue脚手架components : 组件router&#xff1a;路由创建新组建 &#xff1a;assets&#xff1a; 系统图片存放地址main.js&#xff1a; vue脚手架对象存放地 &#xff08;新的包要放在里面&#xff09;属性 computedslot 插槽error St…

Hadoop-2.5.2平台环境搭建遇到的问题

文章目录 一、集群环境二、MySQL2.1 MySQL初始化失败2.2 MySQL启动报错2.3 启动时报不能打开日志错2.4 mysql启动时pid报错 二、Hive2.1 Hive修改core-site.xml文件后刷新权限2.2 Hive启动元数据时报错2.3 Hive初始化MySQL报错2.3.1 报错信息2.3.2 错误原因2.3.3 参考文档 2.4 …