Transformer3

news/2024/5/10 16:04:05/文章来源:https://blog.csdn.net/qq_29788741/article/details/127437507

又是 一篇关于Transformer的~~ 太多了 

本文结合Transformer和ConvNets的优点,构造了一种新的即插即用运算符ParC,可以高效地部署在不同的平台上。一个Trick 搞定 CNN与Transformer,即插即涨点即提速!

论文链接:https://arxiv.org/abs/2210.04020

近年来,Transformer模型在各个领域都取得了巨大的进展。在计算机视觉领域,视觉TransformerViTs)也成为卷积神经网络(ConvNets)的有力替代品,但它们还无法取代ConvNet,因为两者都有各自的优点。例如,ViT善于利用注意力机制提取全局特征,而ConvNets由于其强烈的归纳偏差,在建模局部关系时更有效。

一个自然的想法是结合ConvNetsViT的优势来设计新的结构。本文提出了一种新的基本神经网络算子,称为位置感知循环卷积(ParC)及其加速版本Fast-ParCParC算子通过使用全局核和循环卷积来捕获全局特征,同时通过位置嵌入来保持位置敏感性。

Fast-ParC使用快速傅里叶变换将ParC的O(n2)时间复杂度进一步降低为O(n log n)。这种加速使得在具有大型特征映射的模型的早期阶段使用全局卷积成为可能,但仍保持与使用3x3或7x7内核相当的总体计算成本。所提出的操作可以以即插即用的方式使用:

1)将ViT转换为纯ConvNet架构,以获得更广泛的硬件支持和更高的推理速度;

2)在ConvNets的深层替换传统的卷积,通过扩大有效感受野来提高准确性。实验结果表明,ParC操作可以有效地扩大传统ConvNets的感受野,并且在所有三种流行的视觉任务(图像分类、目标检测和语义分割)中,采用所提出的操作都有利于ViTConvNet模型。

视觉Transformer近年来一直呈上升趋势。2017年首次提出变压器,以解决NLP任务。2020年,Dosovitskiy等人将原始Transformer直接应用于图像分类任务,发现在对大型数据集(如ImageNet-21K或JFM-300M)进行预处理时,它比卷积网络(ConvNets)取得了更好的结果。ViT及其变体随后被广泛用于其他下游视觉任务,如物体检测、语义分割和多模态任务,如人-物体交互(HOI)、文本-图像(T2I)合成等。尽管Transformer取得了巨大成功,但它们仍然不能完全取代ConvNets。正如在以前的工作中总结的那样,与ViTS相比,ConvNets具有更好的硬件支持,更易于训练。此外,ConvNets在移动和其他边缘计算场景的轻量级模型领域仍然占据主导地位。

TransformerConvNets都有其独特的特点。对于Transformer,广泛认可的多头注意力机制旨在捕获Token之间的远程关系,这为Transformer提供了强大的全局建模能力。虽然擅长这种全局表示能力,但它也需要更高的计算资源。自注意力机制的时间复杂度是Token数量的二次方,因此处理高分辨率特征图的速度较慢。与之不同的是,卷积运算擅长于提取局部信息。它在一个小的滑动窗口(通常为3x3)内捕获局部信息,并将同一卷积核用于不同的输入和不同的空间位置。它可以解释为一种有效的隐式权重分配方案,使得卷积的所需参数仅随输入线性增长。

此外,ConvNets已经被很好地研究并使用了更长的时间,因此它们还具有其他一些独特的优势。例如,ConvNets的剪枝和量化等压缩算法已经成熟。至于硬件实现,无论是在CPUGPU等通用平台上,还是在FPGAASIC等专用加速器上,都有许多现有的加速方案(如WinogradFFTim2col)。总之,卷积运算的实现成本较低,但它不能像自我注意那样捕获全局关系。显然,变压器的表示能力和ConvNets的效率之间存在互补关系,两者对于实际应用都是不可或缺的。

最近有一些工作结合了TransformerConvNets的优点。PVTSwinCoAtNet试图重新引入卷积的感应偏差(例如其滑动窗口策略),以帮助Transformer模型更好地学习。像LeViTMobileViTEfficientFormer这样专注于设计高效的混合架构。这些工作大多将这两种网络结合在一起,但它们未能解决关键问题:新引入的注意力算子的额外计算和工程复杂性。很自然地会问:如果有可能设计一个不同于自注意力和传统卷积的新算子,它同时具有双方的优点吗?

本文结合TransformerConvNets的优点,构造了一种新的即插即用运算符ParCParC具有全局接受域,因为使用全局核(Kh=H或Kw=W)并采用循环卷积方案。然后,在卷积之前采用一个明确的可学习位置嵌入,以保持模型位置敏感。

如图1所示,不同的ConvNet模型通过简单地应用提出的ParC算子,改善了它们对全局的有效感受野。由于ParC使用纯卷积运算,因此可以高效地部署在不同的平台上。最后,将二维卷积分解为两个一维卷积,以克服FLOP/参数的增加。基于上述设计实现了提取全局特征的目标,同时在空间和时间复杂度方面仍保持低成本。

通过实验验证了新算子在各种任务和模型中的有效性。总之,本文的贡献可以概括为以下3点:

  1. 结合ViTConvNets的优点,提出了一种有效的新算子ParC。实验证明了ParC的优势,将其应用于广泛的模型,包括MobileViTResNet50MobileNetV2ConvNext。我们还对这些模型进行了多任务评估,包括分类、检测和分割。

  2. 为了克服输入特征分辨率较大时,ParC的复杂性变得难以克服的问题,提出了快速ParC。Fast Parc理论上等同于Parc,例如,当给定相同的输入时,它们的输出是相同的。然而,当给定较大的分辨率(例如112×122)时,它比ParC效率高得多。Fast ParC扩展了ParC的使用场景,使其成为一个更广泛的应用操作符。

  3. 分析了新算子的内部机理。通过可视化显示了ParC和标准卷积之间的几个不同之处。实验表明,标准ConvNet的有效感受野(ERF)非常有限,而基于ParC的网络确实具有全局ERFGrad CAM还表明,基于ParC的网络在关注图像的重要区域方面比普通ConvNets更全面。作者还对ParC和标准卷积之间的差异进行了详细分析。

相关工作

2.1、理论上/有效的感受野

Hebel等人在神经科学中发现,浅层神经元仅提取局部特征,覆盖范围逐层累积,称为“感受野(RF)”。自VGGNet成功以来,CNN架构的设计遵循了类似的模式——使用3×3这样的小卷积核堆叠,而不是更大的卷积核。之前的一些工作给出了CNN感受野的理论计算,即理论感受野(TRF)——在这个概念下,两层3×3的感受野等于一层5×5。

然而,一些工作对这一观点提出了质疑,因为事实上像素在特征图中的重要性从中心到边缘迅速退化。随后,有效感受野(ERF)被提出用于测量输入图像中可能影响神经元激活模式的区域。Luo等人通过反向传播中心像素并计算输入图像的偏导数来检查该区域。通过研究一系列卷积网络,他们发现有效的感受野通常比理论上的对应物小得多。

SKNet采用注意力机制选择合适的感受野。RF Next提出了一个基于NAS的工作流,用于自动搜索模型的感受野。

这些工作表明,对感受野的正确选择对网络的性能非常有利。最近的工作还发现,扩大卷积网络的感受野可以导致更好的模型性能。这里称之为“大卷积核网络”。

2.2、Vision Transformer和混合结构

ViT在各种视觉任务上取得了令人印象深刻的表现。然而,最初的ViT有一些限制。例如,它很重,计算效率低,很难训练。为了克服这些问题,提出了ViT的后续变体。从改进训练策略的角度出发,Touvron等人提出使用知识蒸馏来训练ViT模型,并用较少的预训练数据实现竞争准确性。为了进一步改进模型架构,一些研究人员试图通过学习ConvNets来优化ViT。其中,PVTCVT将卷积操作插入到ViT的每个阶段,以减少Token的数量,并构建分层多阶段结构。Swin transformer在移位的局部窗口内计算自注意力。PiT联合使用池化层和深度卷积层来实现通道倍增和空间缩减。CCNet提出了一种称为交叉注意力的自注意力机制的简化版本,并将其插入到ConvNets中,以构建具有全局感受野的ConvNet。这些论文清楚地表明,ConvNets的一些技术可以应用于视觉transformer,以设计更好的视觉transformer模型。

另一个流行的研究方向是结合ViTConvNets的元素来设计新的主干。Graham等人在其LeViT模型中混合了ConvNettransformer,在速度/精度权衡方面明显优于以前的ConvNetViT模型。在ResNet的最后几个块中,BoTNet用多头注意力代替了标准卷积。ViT-C为标准ViT添加了早期StemConViT通过门控位置自注意力结合了软卷积感应偏置。CMT模块由基于深度卷积的局部感知单元和轻量化transformer模块组成。CoatNet将卷积和自注意力结合起来,设计了一个新的transformer模块,该模块同时关注局部和全局信息。

2.3、Large Kernel卷积网络

早期的ConvNets(如AlexNetGoogleNet)使用5×5或7×7这样的大卷积核。但由于VGGNet的成功,堆积3x3和1x1这样的小卷积核被认为是计算和存储的有效选择。最近,受视觉transformer成功的启发,大卷积核被重用为一个强大的工具,再次提高模型的性能。ConvNext通过引入一系列增量但有效的设计,使标准ResNet现代化,用于视觉transformer的设计,其中7×7深度方向卷积是按照SwinWindow SA使用的。RepLKNet将卷积内核扩展到31×31并获得性能增益,但使用的重参化技巧会加重训练过程的负担,并且模型部署需要额外的转换步骤。后来,Rao等人使用了一个更大的51×51的动态稀疏卷积核。GFNetFFT实现的全局傅里叶卷积代替transformer块中的SA(自注意力)。

我们的工作与RepLKNetGFNet密切相关。这些方法和我们提出的ParC都侧重于扩大有效感受野,但我们提出的操作与以下观点不同:

  1. 我们的ParC使用可学习的位置嵌入来保持结果特征地图的位置敏感。这对于位置敏感的任务很重要,例如语义分割和对象检测。烧蚀研究中的实验也证实了这一点。

  2. 我们的ParC采用轻质设计。RepLKNet使用重型2D卷积核,GFNet使用2CHW形状的可学习复杂权重矩阵,而我们使用二维一维卷积,将核缩减为CH或CW。

  3. 与强调整体网络设计的RepLKNetGFNet不同,我们提出的ParC是一个新的基本运营商,可以以即插即用的方式插入到ViTConvNets中。

此外,我们还提出了Fast ParC,它进一步拓宽了ParC的使用场景。

方法

3.1、ParC Operation

1、Vanilla Depth-wise Convolution

 2、ParC: 位置感知循环卷积

  1. Global kernel

  2. Circular Convolution

  3. Positional Embedding

  4. 1-D Decomposition

为了有效地提取全局特征,这些设计都是必不可少的,这在后面的消融实验中得到了证明。

Global kernel and Circular Convolution

Positional Embedding

正如在之前的工作中得出的结论,标准卷积可以在使用零填充时对位置信息进行编码。然而,Circular Convolution会周期性地重用输入图片,这会丢失部分位置信息。为了克服这个问题,引入了可学习的位置编码,它被插入到Circular Convolution之前。在接下来的实验中证明了这对模型的性能非常重要,特别是对于对空间信息敏感的下游任务。

1D Decomposition

最后,为了确保模型尺寸和计算的可接受成本。将2D卷积和位置编码分为H(水平)和V(垂直)方向,这样可以将参数和FLOP的数量从O(H×W)减少到O(H+W),当分辨率较大时,这是一个相当大的压缩。

Implementation of Circular Convolution

从概念上讲,Circular Convolution需要与普通卷积分开实现,因为在计算卷积像素的索引时有额外的模op。实际上,在调用普通的1D卷积例程之前,可以使用“concat”函数将输入特征映射与其副本填充,从而轻松实现该功能(参见算法1)

3.2、Fast-ParC: 用FFT等价形式加速ParC

如图3所示,当特征分辨率较小时(如7×7),应用ParC可以有效地提取全局特征并降低计算复杂度。但随着输入分辨率的提高,ParC的复杂度迅速超过7×7卷积。为了克服这个问题提出了一个名为Fast ParCParC加速版本。当特征分辨率较大时(例如,56×56),Fast ParCParC效率更高。事实上,Fast ParC虽然具有全局提取能力,但在较宽的分辨率区间内,其效率甚至比7×7卷积更高。

借助于快速傅里叶变换(FFT)设计了Fast ParC。众所周知,FFT可以简化线性卷积运算。但根据卷积定理,对于离散信号,傅里叶域的点积更接近于空间域的Circular Convolution。这正是ParC和普通卷积的区别之一。

 公式5显示了两个严格等效的数学表达式。空间域中的ParC需要卷积式运算,而在傅里叶域中,它变成了简单的逐元素乘法。基于此提出了一种傅里叶域形式的ParC运算,称为Fast ParC。理论上可以证明,Fast ParC在空间域上严格等价于ParC。这两种实现之间的误差可以忽略不计。可以根据实际使用的平台,分别选择适当的ParC实现进行训练和推理。这为ParC提供了强大的灵活性。Fast ParC的优势显而易见:

与表1相对应,当N较大时,空间卷积的复杂度明显超过了基于FFT的卷积。ParC使用Global kernelCircular Convolution,这与傅里叶卷积的默认空间格式相匹配。考虑到下游任务,如多实例检测或分割,通常需要更高的分辨率。例如,对于COCO,常用的测试分辨率为1280×800,对于ADE20k为2048×512。当N较大时,Fast ParC可以节省模型的FLOP并实现更好的加速。Fast ParC还允许在计算预算可接受的情况下,将ParC用于较浅的阶段。这对于在新架构中实现ParC是必要的。

另一个优势实际上来自对FFT的软件/硬件支持。由于FFT是一种经典的信号处理算法,许多平台都对其加速提供了现成的支持。当ParC应用于FPGA等定制平台时,许多资源(如片上DSP、预先设计的IP核)可以得到有效利用。

此外,通用计算平台也有现成的工具包(例如CPU:torch.fftnumpy.fftGPU:cuFFT)。Fast ParC的灵活性使之能够根据不同的标准(例如,最大吞吐量、最小内存占用)以及不同计算平台中算法的实际偏好选择更好的实现。

幸运的是,FastParC完全等同于ParC,并且替换不需要任何额外的转换。可以根据平台的要求选择ParC的具体实现形式。由于ParCFast ParC拥有最高级别的灵活性,用于训练和推理的实现也可以解耦。

3.3、在ViT和ConvNets上应用ParC

为了验证ParC作为即插即用元运算符的有效性,基于第3.1节中提出的操作构建了一系列基于ParC的模型。这里,基线模型包括ViTConvNets。具体而言,对于ViTMobileViT被选为基线,因为它在最近提出的轻型混合结构中实现了最佳参数/精度权衡。

采用ResNet50MobileNetv2MobileViTConvNext作为ConvNet基线。ResNet50是实际应用中使用最广泛的模型。MobileNetV2是移动设备中最流行的轻量化模型。ConvNext是第一个ConvNet,它保留了纯ConvNets架构,同时集成了ViT的一些特性。在这里采用的4种模型都具有代表性。

1、ParC-ViTs

ParC-MetaFormer Block

如图4和图5所示,ConvNetsViTs的外层结构差异较大。vit通常采用 meta-former block作为基本架构。为了在ViTs上应用ParC运算符,作者设计了ParC-MetaFormer block,并使用它来替换ViTs中的transformer blocks

Adopting MetaFormer like structure

MetaFormer块是ViT最常用的块结构,它通常由2个组件组成:token mixer和 channel mixer。这两个组件都使用残差结构。采用ParC作为token mixer来构建ParC MetaFormer块。这样做是因为ParC可以从全局空间中提取全局特征并交互像素之间的信息,这满足了token mixer模块的要求。与复杂度为二次的自注意力不同,ParC在计算上效率更高。用ParC替换此部分可以显著降低计算成本。在ParC MetaFormer区块,采用了ParC-HParC-V的串行结构。考虑到对称性,一半通道首先通过ParC-H,其他通道首先通过ParC-V(如图4所示)。

Adding channel wise attention in channel mixer part

尽管ParC保持了全局感受野和位置嵌入,但ViTConvNets的另一个好处是数据驱动。在ViT中,自注意力模块可以根据输入调整权重。这使得ViT数据驱动模型能够专注于重要特性并抑制不必要的特性,从而带来更好的性能。

以前的文献已经解释了保持模型数据驱动的重要性。通过用提出的全局循环卷积代替自注意力,得到了一个能够提取全局特征的纯卷积网络。但被替换的模型不再是数据驱动的。为了进行补偿,将通道注意力模块插入 channel mixer部分,如图4所示。

MobieViT-ParC Network

目前,现有的混合结构基本上可以分为3种主要结构,包括串行结构、并行结构和分叉结构。在所有三种结构中,第三种结构目前性能最佳。MobileViT也采用了分叉结构。受此启发,基于MobileViT,还构建了具有分叉结构的模型。MobileViT由两种主要类型的模块组成。浅层由MobileNetV2区块组成,具有局部感受野。深层阶段由ViT块组成,享有全球接受场。保留所有MobileNetV2块,并用相应的ParC块替换所有ViT块。此替换将模型从混合结构转换为纯ConvNet,同时保留其全局特征提取能力。

2、ParC-ConvNets

 

对于ParC ConvNets,专注于为ConvNet提供全局感受野。用ParC操作替换标准卷积(如图5(a)所示),作者构建了不同的基于ParC的块。以往的混合结构工作得出了类似的结论:早期使用局部模块,深层使用全局提取模块的模型性能最佳。由于ParC拥有一个全局感受野,按照这个规则将基于ParC的块插入ConvNets(如图5(e)所示)。

ParC BottleNeck and ResNet50-ParC Network

ResNet是最经典的ConvNet之一。只需将原始ResNet50 BottleNeck的3×3卷积替换为ParC运算符,即可获得ParC BottleNeck(见图5(b))。由于ParC-HParC-V的特性可能有显著差异,因此它们之间没有引入通道相互作用。这类似于采用group=2的组卷积。ResNet的主要部分可以分为4个阶段,每个阶段由几个重复的瓶颈块组成。

具体来说,ResNet50在4个阶段中分别有[3、4、6、3]个块。通过将ResNet50倒数第二阶段的最后1/2和最后阶段的最后1/3替换为ParC BottleNeck,获得了ResNet50 ParC

ParC-MobileNetV2 Block and MobileNetV2-ParC Network

MobileNetV2是轻量级模型的典型代表。通过将Inverted Bottleneck中的3×3深度旋转替换为depthwise ParC,得到了ParC-MobileNetV2块(见图5(c))。MobileNetV2Resnet50要更细更深,7个阶段的块数分别为[1、2、3、4、3、3、1]。通过将第4阶段的最后1/2块和第[5,6]阶段的最后1/3块替换为ParC-MobilenetV2块,可以获得MobilenetV2 ParC

ParC-ConvNeXt Block and ConvNeXt-ParC Network

ConvNeXt对原始ResNet50结构进行了一系列修改,以学习transformers。在此期间,3×3卷积替换为7×7深度卷积。这扩大了局部感受野,但仍无法分级全局信息。作者进一步用depthwise ParC替换ConvNeXt块中的7×7深度卷积。由此得到了ParC ConvNeXt区块(见图5(d))。将ConvNeXt最后两个阶段的最后1/3块替换为ParC ConvNeXt块,得到了ConvNeX t ParC的一个示例。将ConvNeXt-T中的基本通道数减少到48(即每个阶段为[48,96,192,384]),以获得一个轻量级ConvNeXt-XT,这在部署边缘计算设备时更受欢迎,而且实验周期也更短。

请注意,在ParC MetaFormer中,采用了ParC-HParC-W序列,以保持感受野与自注意力一致,因为这种设计用于取代自注意力。在ParC ConvNets中采用了ParC-HParC-V的并行结构(每一层都是单层),如图5所示。根据实验结果,这种设置已经可以提供足够的性能增益来对抗普通ConvNet。事实上,由于不仅使用一个ParC ConvNet块,ParC ConvNets仍然具有全局感受野。

实验

4.1、ImageNet-1K

 4.2、语义分割与目标检测

4.3、实例分割

4.4、速度与参数对比 

 完事了 哈哈      whaosoft aiot http://143ai.com  

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

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

相关文章

Ansible自动化运维工具介绍与部署

ansible自动化运维工具介绍与部署 文章目录一、什么是自动化运维?二、常用的自动化运维工具2.1 Ansible2.2 SaltStack2.3 Puppet2.4 三种自动化工具特点对比三、介绍Ansible3.1 什么是 Ansible?3.2 Ansible 无需代理3.3 Ansible 方式四、部署Ansible4.1 控制节点4.…

U-BOOT小全(三):SPL框架

1、什么是SPL? 为了可以使已有的所有SPL的设计统一,也为了简化添加适用于新板子的设计,专门设计一个通用的SPL框架。在SPL框架下,一个板子的所有代码都能够被重用。代码复制和链接不再是必要的。 在uboot-2011的/doc/README.spl…

跨境电商必读:什么是社交媒体营销?

关键词:跨境电商,社交媒体营销 社交媒体渠道已迅速成为业务发展战略不可分割的一部分,关于社交媒体如何重塑消费者行为,以及组织如何利用它获得收益,网络上已经有大量相关信息,但仍有许多跨境电商企业难以…

H3C VLAN简单配置

将两台电脑都设为自动获取IP&#xff0c;然后左边的加入vlan10,右边的加入vlan20 先配置左边交换机 <H3C>system-view [H3C]user-interface console 0 [H3C-line-console0]idle-timeout 0 0 [H3C-line-console0]exit [H3C]vlan 10 [H3C-vlan10]port GigabitEthernet 1/…

04-Jenkins构建Maven项目

1&#xff09;Jenkins项目构建类型 a&#xff09;Jenkins构建的项目类型介绍 Jenkins中自动构建项目的类型有很多&#xff0c;常用的有以下三种&#xff1a;自由风格软件项目&#xff08;FreeStyle Project&#xff09;Maven项目&#xff08;Maven Project&#xff09;流水线项…

沉睡者IT - 如何识别NFT“洗盘交易”?

推荐阅读1&#xff1a;【创业粉引流变现项目】 推荐阅读2&#xff1a;【抖音网上如何赚钱变现】 推荐阅读3&#xff1a;【中视频横版16:9视频制作教程】 对金融人士来说&#xff0c;“洗盘交易”&#xff08;wash trading&#xff09;并不是一个新词。加密货币也以相同的买入…

grid管理的数据库实例修改时区问题

问题描述 由于安装创建数据库之前没将操作系统的时区设置为本地正确的时区&#xff08;Pacific/Apia&#xff09;&#xff0c;使用的是GMT时间&#xff08;UTC时区&#xff09;&#xff0c;后续将操作系统和数据库修改成正确时区之后&#xff0c;发现sysdate显示有误。 服务端…

计算机网络基础 ---- 动态路由---OSPF协议----详解

OSPF协议&#xff1a; ospf&#xff1a;开放式最短路径优先协议&#xff08;Open Shortest Path First&#xff09; 一、基本概念&#xff1a; 是携带真实掩码&#xff08;无类别链路状态IGP协议&#xff09;&#xff1b;周期更新&#xff08;30min&#xff09; 触发更新 -…

Taichi 加速 Python 中图像处理

Taichi 咱来说一说哈 在计算机视觉&#xff08;特别是深度学习图片预处理、模型训练&#xff09;等复杂度较高&#xff0c;技术迭代速度快的领域&#xff0c;用 Python 快速开发出算法原型、验证效果是许多研发人员的首选方案。著名图像处理库 OpenCV 就提供了完整的 Python 封…

Ubuntu Linux 操作系统-清华大学开源软件镜像站下载

Ubuntu 是一个由全球化的专业开发团队建造的操作系统。它包含了所有您需要的应用程序&#xff1a;浏览器、Office 套件、多媒体程序、即时消息等。Ubuntu 是一个 Windows 和 Office 的开源替代品。 Ubuntu 的名称来自非洲南部祖鲁语或豪萨语的 “ubuntu” 一词&#xff08;译为…

总结超参数最优化

1.超参数是什么&#xff1f; 超参数是指的是比如SGD的一个学习率&#xff0c;或者是抑制过拟合时候的一个权重衰减率参数等等&#xff0c;这些参数需要一个合适的值才能很好的提升神经网络的学习效率 2.我们在进行超参数最优化的时候如何去做到超参数最优化&#xff1f; 2.1.设…

盘点十大国内外热门的SaaS点评平台

在B端市场里&#xff0c;企业如何调研、选择企服软件是困扰已久的问题。使用者需要选择合适的企服软件去提升企业内部效率&#xff0c;因此&#xff0c;选择一个合适的SaaS点评平台便非常重要。在SaaS点评平台&#xff0c;使用者可以了解、选择产品&#xff0c;而服务商可以收获…

撰写SCI论文好用的免费工具(下) - 易智编译EaseEditing

书接上文。易智编译再推荐几种好用的写作工具&#xff1a; 7.Grammarly Grammarly是谷歌浏览器的一个扩展程序&#xff0c;可在浏览器任一窗口中检查你文字的拼写和语法。无论是使用Google文档编写&#xff0c;撰写电子邮件还是发布文章&#xff0c;Grammarly都会指出英语错误…

CNN的识别机制

搬来这个给自己学学~~ 所有基础都要写一个 大佬勿怪 只为自己学习 近年来&#xff0c;CNN 因其优异的性能&#xff0c;在计算机视觉、自然语言处理等各个领域受到了研究者们的青睐。但是&#xff0c;CNN 是一个 「黑盒」 模型&#xff0c;即模型的学习内容和决策过程很难用人类…

Blazor组件自做十 : 光学字符识别 OCR 组件

光学字符识别 OCR 组件 演示地址 https://blazor.app1.es/ocr使用方法手机或者电脑点击拍照OCR可启动相机拍照,或者点击文件OCR选择文件,稍等片刻即可获得OCR结果.直接输入Url可识别在线图片AI表格识别 AI Form 演示地址 https://blazor.app1.es/aiform

读《趣学算法》:重开算法之门,时间复杂度与空间复杂度

14天阅读挑战赛 一、前言 程序 数据结构 算法 时过境迁&#xff0c;自己早已把算法的基础忘记得干干净净&#xff0c;最近看到CSDN发起了《趣学算法》的14天阅读挑战赛&#xff0c;兴趣再次油然而起&#xff0c;既然想学&#xff0c;就不用那么计较&#xff0c;马上就开始&a…

web权限提升-令牌窃取烂土豆dll劫持

目录 &#xff08;一&#xff09;Windows2008&7令牌窃取提升-本地 0x01 前置知识——令牌&#xff08;TOKEN&#xff09; 令牌有很多种&#xff1a; MSF伪造令牌实战 0x02 原理和利用范围 &#xff08;二&#xff09;烂土豆提权 1. 原理&#xff1a; 总结 2.环境搭…

Cosmos模块化功能链 走向亿级用户的超级Dapp时代

前言 加密不缺故事&#xff0c;而 Aptos 贡献了一次事故。 Move 生态的威力不应被轻视&#xff0c;跟随 Aptos 主网上线的&#xff0c;已经有域名服务 Aptos Names、钱包 Pontem、多签钱包 Momentum Safe、NFT 市场 Souffl3、借贷协议 Argo。 这是第一次众多应用和主网一起上…

【预测模型-DELM分类】基于哈里斯鹰算法改进深度学习极限学习机实现数据分类附matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;修心和技术同步精进&#xff0c;matlab项目合作可私信。 &#x1f34e;个人主页&#xff1a;Matlab科研工作室 &#x1f34a;个人信条&#xff1a;格物致知。 更多Matlab仿真内容点击&#x1f447; 智能优化算法 …

Kubernetes—k8s介绍

文章目录k8s是什么kubernetes的主要概念PodReplicaSetDeploymentLabelServiceKubernetes 架构及组件Kubernetes架构kubernetes组件k8s是什么 官方介绍&#xff1a; Kubernetes 也称为 K8s&#xff08;中间8个字母&#xff0c;省略好记&#xff09;&#xff0c;是用于自动部署、…