目标检测论文阅读:GaFPN算法笔记
标题:Construct Effective Geometry Aware Feature Pyramid Network for Multi-Scale Object Detection
会议:AAAI2022
论文地址:https://ojs.aaai.org/index.php/AAAI/article/view/19932
文章目录
- Abstract
- 1. Introduction
- 2. Related Work
- 2.1. Object Detectors
- 2.2. Mapping Strategy
- 2.3. Predictor Heads
- 3. Method
- 3.1. Geometry-aware Mapping Module
- 3.2. Geometry-aware Predictor Head
- 4. Experiments
- 4.1. Dataset and Evaluation Metrics
- 4.2. Implementation Details
- 4.3. Main Results
- 4.4. Ablation Study
- 4.5. Runtime Analysis
- 5. Conclusion
Abstract
特征金字塔网络(FPN)被广泛用于发挥多尺度特征来解决目标检测中的尺度变化。然而,目前大多数FPN方法的固有缺陷导致其难以适应不同几何目标的特征。为了解决这个问题,我们在FPN中引入几何先验,以获得更具识别力的特征。本文提出了几何感知特征金字塔网络(Geometry-aware Feature Pyramid Network,GaFPN),该网络主要由新颖的几何感知映射模块(Geometry-aware Mapping Module)和几何感知预测头(Geometryaware Predictor Head)组成。几何感知映射模块是为了充分利用所有的金字塔特征,通过权重生成子网络获得更好的建议特征。权重生成子网络利用建议的几何信息为每一层的建议特征生成融合权重。几何感知预测头通过嵌入的生成网络将几何先验引入预测头,从而加强特征表示,用于分类和回归。我们的GaFPN可以很容易地扩展到其它具有特征金字塔的两阶段目标检测器和用于实例分割任务。在MS COCO数据集上,GaFPN相比于各种基线检测器显著提高了检测性能。
1. Introduction
特征金字塔网络(FPN)是一种经典且有效的多尺度目标检测方法。它首先构建一个特征金字塔,然后通过启发式引导的映射机制为每个proposal选择一个单层特征。最后,每个proposal的特征通过RoI Align层输入到预测头中。
尽管FPN大幅提升了多尺度目标检测的性能,但其潜力尚未得到充分挖掘,如图1所示。我们总结了两个潜在的改进如下:
①几何引导的建议映射机制。 目标proposal通过启发式规则分配到某个层的特征图中,如proposal的面积。虽然目标proposal的面积相似,但它们的纵横比可能存在显著差异。例如,一个1000×10的目标和一个10×1000的目标被分配到同一个特征图。该问题导致了一个严重缺陷,即基于启发式引导的最优特征可能难以获得。同时,最近的研究表明,只选择单层特征可能会产生次优结果,因为这种方式忽略了其它层未选择特征的有效信息。通过使用来自特征金字塔的多层特征的几何引导建议映射机制可以缓解这些问题。
②几何特征嵌入。 proposal的几何信息是分类和定位细化的关键先验知识。一方面,额外的几何先验特征可以促进两个语义相似的proposal的分类学习,从而容易区分它们。另一方面,回归值可能根据额外的几何先验特征动态变化。然而,经过特征映射后,每个目标proposal通过RoI Align层提取7×7个特征。然后将提取到的特征输入由全连接层组成的检测器头部进行分类和回归。经过上述过程,proposal的几何信息在很大程度上被忽略和破坏。因此,如何将几何特征嵌入到proposal的特征中以生成更准确的结果是一个亟待解决的问题。
这些改进启发我们提出几何感知特征金字塔网络(GaFPN),这是一种简单有效的特征金字塔网络,用于改进多尺度目标检测的特征表示。首先,几何感知映射模块充分利用所有金字塔特征,以获得更好的proposal特征,并通过权重生成子网络减少启发式引导映射的影响。权重生成子网络利用proposal的几何信息为不同层的每个proposal生成融合权重。其次,利用几何感知预测头,通过嵌入生成网络将几何特征引入分类和回归分支。它处理几何先验缺失问题,生成更具识别力的特征。嵌入生成网络利用proposal的几何信息为每个proposal生成几何嵌入值,然后通过乘法操作将几何嵌入值嵌入到proposal的特征中。在MS COCO数据集上,GaFPN相比于各种基线检测器都提高了检测性能。
我们的贡献有三方面:①我们系统地研究了FPN检测器。我们的研究揭示了限制检测性能的两个缺陷。②为了解决这些问题,我们提出了一个新的特征金字塔网络GaFPN,它结合了新的组件:几何感知映射模块和几何感知预测头。③我们在MS COCO上验证了所提出的配备有各种探测器、主干和任务的GaFPN,并且与基于FPN的探测器相比,它始终获得了显著的改进。
2. Related Work
2.1. Object Detectors
介绍了一些两阶段和单阶段的目标检测器。
2.2. Mapping Strategy
为每个proposal选择FPN中合适的特征是一个关键问题。FASF在训练时根据最小的实例损失层动态选择金字塔特征进行分配。PANet制定映射策略,为每个proposal选择所有金字塔级别的特征独立地输入全连接层,并通过元素级最大化操作将其融合。为了更好地挖掘不同层的特征,AugFPN根据学习到的权重为两阶段检测器融合所有层的特征。这些方法与我们的工作有一个明显的区别,即我们提出了一种几何感知策略,根据proposal的外部抽象几何信息而不是proposal本身的卷积特征来获取权重。
2.3. Predictor Heads
近年来提出了许多提高分类和定位精度的预测头。Cascade R-CNN采用不同交并比(IoU)阈值的多阶段R-CNN头,逐阶段获得更精确的结果。Fitness NMS设计子网络来预测定位概率。IoU-Net提出了一个IoU预测模块来预测每个proposal的IoU。后两种方法都想根据定位质量(IoU)来优化分类置信度,但IoU的预测比较困难,需要引入复杂的结构。另一个努力的方向是将分类和定位解耦。Double-Head R-CNN采用全连接头进行分类,卷积头进行回归。TSD将分类和定位与proposal和特征提取器解耦。与它们不同的是,我们的方法将几何特征嵌入到预测头中,以弥补RoI Align层造成的几何信息缺失。
3. Method
在这一部分,我们介绍几何感知特征金字塔网络(GaFPN)。我们的框架如图2所示。GaFPN由3个部分组成:几何感知映射模块(GMM)、几何感知预测头(GPH)和特征增强金字塔(FAP)。
首先,将backbone中的内在特征层次结构记为{C2,C3,C4,C5}\{C_2,C_3,C_4,C_5\}{C2,C3,C4,C5}。然后将这些特征通过一个1×1的卷积减少到同一通道,记为{M2,M3,M4,M5}\{M_2,M_3,M_4,M_5\}{M2,M3,M4,M5}。同一通道特征采用ASPP启发的特征增强和注意力机制来增强特征,构建特征增强金字塔。将新生成的特征记为{P2,P3,P4,P5}\{P_2,P_3,P_4,P_5\}{P2,P3,P4,P5}。最后,将新特征输入GMM和GPH中进行分类和回归。GMM根据几何信息自适应地融合proposal的多层特征。GPH将几何信息嵌入到proposal的特征中。
3.1. Geometry-aware Mapping Module
传统的FPN中,每个proposal的特征层都是基于proposal的面积来映射的。这可能会产生次优结果。同时,其他层的特征可能有利于目标的分类或回归。这些发现启发我们探索几何引导的proposal映射机制,并利用多层特征来获得更好的proposal特征。
我们提出几何感知映射模块(GMM),它自适应地利用每个金字塔层的特征来丰富特征表示,而不是仅使用启发式指导的一个层的特征。自适应机制通过使用权重生成子网络为每一层生成权重来实现。该子网络直接将proposal的几何信息作为输入。
几何特征生成: 我们首先对每个proposal的坐标(x1,y1,x2,y2)(x1,y1,x2,y2)(x1,y1,x2,y2)进行归一化,其计算公式如下:
x1′=x1W,y1′=y1H,x2′=x2W,y2′=y2Hx_1^{\prime}=\frac{x_1}{W},~y_1^{\prime}=\frac{y_1}{H},~x_2^{\prime}=\frac{x_2}{W},~y_2^{\prime}=\frac{y_2}{H} x1′=Wx1, y1′=Hy1, x2′=Wx2, y2′=Hy2其中,WWW和HHH表示训练图像的尺寸,作为归一化项。
然后利用归一化后的坐标生成宽度、高度、长宽比(rrr)和面积(aaa)等额外的几何特征,计算公式如下:
w=x2′−x1′,h=y2′−y1′,r=wh,a=w×hw=x_2^{\prime}-x_1^{\prime},~h=y_2^{\prime}-y_1^{\prime},~r=\frac{w}{h},~a=w×h w=x2′−x1′, h=y2′−y1′, r=hw, a=w×h最后,将这些特征concatenate在一起作为权重生成子网络的输入X∈R8\mathbf{X}\in\mathbb{R}^8X∈R8,其可以表示为:
X=CAT(w,h,r,a,x1′,y1′,x2′,y2′)\mathbf{X}=\mathrm{CAT}(w,h,r,a,x_1^{\prime},y_1^{\prime},x_2^{\prime},y_2^{\prime}) X=CAT(w,h,r,a,x1′,y1′,x2′,y2′)权重计算: 在几何特征生成阶段之后,我们为每层特征金字塔中的每个proposal计算权重。我们首先使用仅由全连接层和ReLU组成的权重生成子网络对几何特征进行变换。几何特征表示经过该变化而得到增强。然后利用变换后的特征通过sigmoid运算为不同层生成不同的权重,其定义如下:
w=σ(MLPWG(X))=σ(δW4(δW3(δW2(δW1(X)))))\begin{align*} \mathbf{w}&=\sigma(\mathrm{MLP_{WG}}(\mathbf{X}))\\ &=\sigma(\delta\mathbf{W_4}(\delta\mathbf{W_3}(\delta\mathbf{W_2}(\delta\mathbf{W_1}(\mathbf{X}))))) \end{align*} w=σ(MLPWG(X))=σ(δW4(δW3(δW2(δW1(X)))))其中,δ\deltaδ表示线性整流函数(ReLU),σ\sigmaσ是Sigmoid函数。 MLPWG(⋅)\mathrm{MLP_{WG}}(·)MLPWG(⋅)是权重生成子网络。W1\mathbf{W_1}W1是维度增加层,W2\mathbf{W_2}W2、W3\mathbf{W_3}W3和W4\mathbf{W_4}W4是维度减少层。输出权重w=[w1,w2,w3,w4]∈R4\mathbf{w}=[w_1,w_2,w_3,w_4]\in\mathbb{R}^4w=[w1,w2,w3,w4]∈R4。权重生成子网络的详细结构如图3a所示。
特征聚合: 最后,我们通过对每个proposal进行自适应多层加权聚合得到一个合并特征V\mathbf{V}V。将RoI Align层提取的多层proposal特征记为{P2′,P3′,P4′,P5′}\{P_2^{\prime},P_3^{\prime},P_4^{\prime},P_5^{\prime}\}{P2′,P3′,P4′,P5′},合并特征计算如下:
V=∑i=25wi−1⋅Pi′\mathbf{V}=\sum_{i=2}^5w_{i-1}·P_i^{\prime} V=i=2∑5wi−1⋅Pi′其中,V∈R7×7×256\mathbf{V}\in\mathbb{R}^{7×7×256}V∈R7×7×256,Pi′∈R7×7×256P_i^{\prime}\in\mathbb{R}^{7×7×256}Pi′∈R7×7×256。
这样,我们充分利用金字塔特征来丰富特征表示,而不是仅使用启发式引导的单层特征。GMM将刚性的启发式映射策略软化为可以通过反向传播来与检测器进行联合训练的自适应策略。
3.2. Geometry-aware Predictor Head
在FPN中,每个proposal被RoI Align层提取为固定大小7×7×256的特征,并输入到预测头。经过上述过程,几何信息在很大程度上被忽略和破坏。
为了解决这个问题,我们提出几何感知预测头(GPH),它通过嵌入生成子网络学习生成几何感知特征。几何感知特征弥补了RoI Align层导致的几何信息缺失。此外,为了缓解分类和回归共享特征的副作用,针对不同的任务生成不同的嵌入特征。
具体来说,嵌入生成子网络类似于GMM的映射权重生成子网络。上式中的几何特征V\mathbf{V}V在这里作为输入X\mathbf{X}X来得到嵌入特征。
嵌入值生成: 在获得几何特征后,我们首先使用嵌入生成子网络为每个proposal生成嵌入值。该子网络仅由全连接层和ReLU组成。嵌入值的定义如下:
E=MLPEG(X)=W3(δW2(δW1(X)))\mathbf{E}=\mathrm{MLP_{EG}}(\mathbf{X})=\mathbf{W_3}(\delta\mathbf{W_2}(\delta\mathbf{W_1}(\mathbf{X}))) E=MLPEG(X)=W3(δW2(δW1(X)))其中,δ\deltaδ表示线性整流函数(ReLU), MLPEG(⋅)\mathrm{MLP_{EG}}(·)MLPEG(⋅)是嵌入生成子网络。W1\mathbf{W_1}W1是维度增加层,W2\mathbf{W_2}W2和W3\mathbf{W_3}W3是维度减少层。输出嵌入值E=[E1,E2]∈R2\mathbf{E}=[E_1,E_2]\in\mathbb{R}^2E=[E1,E2]∈R2
特征嵌入: 最后,结合嵌入值和来自分和回归分支的特征(Ucls\mathbf{U_{cls}}Ucls,Ureg\mathbf{U_{reg}}Ureg)来生成嵌入特征(Ucls′\mathbf{U_{cls}^{\prime}}Ucls′,Ureg′\mathbf{U_{reg}^{\prime}}Ureg′),计算公式如下:
Ucls′=E1⋅Ucls,Ureg′=E2⋅Ureg\mathbf{U_{cls}^{\prime}}=E_1·\mathbf{U_{cls}},~\mathbf{U_{reg}^{\prime}}=E_2·\mathbf{U_{reg}} Ucls′=E1⋅Ucls, Ureg′=E2⋅Ureg其中,Ucls,Ureg,Ucls′,Ureg′∈R1024\mathbf{U_{cls}},\mathbf{U_{reg}},\mathbf{U_{cls}^{\prime}},\mathbf{U_{reg}^{\prime}}\in\mathbb{R}^{1024}Ucls,Ureg,Ucls′,Ureg′∈R1024。
嵌入生成子网络的详细结构如图3b所示。值得注意的是,嵌入生成子网络没有在最后经过sigmoid激活,这与权重生成子网络不同。GPH通过反向传播来与检测器联合训练。这样一来,几何特征被嵌入到proposal特征中,丰富了特征表示,提高了分类和回归性能。
4. Experiments
4.1. Dataset and Evaluation Metrics
介绍了数据集和评价指标。
4.2. Implementation Details
介绍了实现细节。
4.3. Main Results
如表1所示,在不同主干、检测器甚至不同任务上的实验表明,GaFPN可以获得一致的性能提升。这些结果充分说明了GaFPN的鲁棒性和泛化能力。我们相信本文提出的方法也可以应用到其它计算机视觉任务中。具体的实验结论可以参照原文。
4.4. Ablation Study
各个组件的有效性,这三个部分是相辅相成的,处理不同的问题。具体的实验结论可以参照原文。
GMM模块的消融实验,具体的实验结论可以参照原文。
为了分析GMM产生的不同层的融合权重,我们基于启发式引导映射策略将COCO val2017上的proposal映射到4层。对于每个proposal,我们首先获得4个特征层对应的4个权重。然后,我们计算每层proposal的平均权重。4个金字塔层对应的结果如图4所示。我们可以观察到,原始映射到金字塔层P2P_2P2的proposal需要更多来自更高层的特征,并且需求的重要性随着金字塔层的增加而减弱。与此同时,原始映射到P3−P5P_3-P_5P3−P5的proposal需要更多来自较低和较高金字塔层的特征。总而言之,来自多层的特征共同促进了每个proposal更强大的特征生成。这些结果表明来自其它层的特征也有利于分类和回归。
GPH的消融实验。通过以上分析,我们对GPH中的两个分支采用非共享特征嵌入和乘积嵌入类型。这些结果表明GPH有利于分类和回归分支产生更有识别力的特征。具体的实验结论可以参照原文。
对FPN其它变体的通用性。我们相信本文提出的方法可以用于其它类似的检测器。最后,我们在图5中展示了一些检测结果的例子,与基于FPN的基线相比,GaFPN产生了更准确的结果。具体的实验结论可以参照原文。
4.5. Runtime Analysis
GaFPN及其各个组件并没有带来太多的FLOPs、Params,推理速度也相当。具体的实验结论可以参照原文。
5. Conclusion
在本文中,我们重新审视了基于FPN的检测器的训练过程,并在模型结构方面提出了一些改进。基于这些观察,本文提出了一种新的特征金字塔网络GaFPN,用于进一步增强多尺度目标检测的特征表示。GaFPN由3个部分组成:几何感知映射模块、几何感知预测头和特征增强金字塔。通过配备这些简单但有效的组件,GaFPN在具有挑战性的MS COCO数据集上与各种检测器和任务相比带来了巨大的提升。
相关文章:
目标检测论文阅读:GaFPN算法笔记
标题:Construct Effective Geometry Aware Feature Pyramid Network for Multi-Scale Object Detection 会议:AAAI2022 论文地址:https://ojs.aaai.org/index.php/AAAI/article/view/19932 文章目录Abstract1. Introduction2. Related Work2.…...
【转】Generative Pretrained Transformer
原文链接:https://www.cnblogs.com/yifanrensheng/p/13167796.html一、GPT简介1.1 背景目前大多数深度学习方法依靠大量的人工标注信息,这限制了在很多领域的应用。此外,即使在可获得相当大的监督语料情况下,以无监督学习的方式学…...
day34|343. 整数拆分、96.不同的二叉搜索树
343. 整数拆分 给定一个正整数 n ,将其拆分为 k 个 正整数 的和( k > 2 ),并使这些整数的乘积最大化。 返回 你可以获得的最大乘积 。 示例 1: 输入: n 2 输出: 1 解释: 2 1 1, 1 1 1。 示例 2: 输入: n 10 输出: 36 解…...
WeNet - 初识
文章目录关于 WeNet快速上手识别训练环境准备训练关于 WeNet Production First and Production Ready End-to-End Speech Recognition Toolkit github: https://github.com/wenet-e2e/wenet官方中文说明:https://github.com/wenet-e2e/wenet/blob/main/README_CN.md…...
为什么各个企业都在创建FAQ、常见问题页面?
常见问题解答页面是您可能已经为您的公司考虑过的东西,作为帮助客户回答有关您的产品和服务的常见问题的一种方式。但是您不知道最好的方法;肯定这只是一个问题清单吗?常见问题解答在整个购买过程中为客户提供支持,并减少客户需要与贵公司的联…...
【React-Router】路由传参,路由嵌套,手动导航,路由文件配置
文章目录React-RouterURL的hashHTML5的HistoryRouter的基本使用路由映射配置路由的嵌套路由配置和跳转Link和NavLink:手动路由的跳转路由参数传递Navigate导航Not Found页面配置路由的配置文件React-Router 前端路由是如何做到URL和内容进行映射呢?怎么…...
面向对象分析与设计(OOAD)
面向对象分析与设计(OOAD)概述人是怎么认识事物的分类与分层的两种思维问题域到解空间的映射软件生命周期要解决的问题三个一致性面向对象分析与设计过程对象从哪里来发现对象的方法组织对象结构职责是怎么来的分配职责的逻辑验证职责分配的合理性GRASP设…...
数据库调优
目录 硬件层面 操作系统层面 数据库层面 硬件层面 1.CPU(运算):48核CPU。 2.内存:96G-256G,跑3-4个实例。 3.disk(磁盘IO):机械盘:选SAS,数量越多越好。性能:SSD(高并发)>SAS(普通业务线上)>SATA(线下) 选SSD:使用SSD或者PCIe SSD设备,可提升上千倍的IOPS…...
OpenStack云平台搭建(3) | 部署Glance
目录 1、登录数据库授权 2、安装glance 3、测试一下 安装部署Glance镜像服务 Image Service 镜像服务:代号:Glance:为云平台虚拟机提供镜像服务,例如:上传镜像、删除镜像等。说明:镜像:磁盘…...
软件评测师考试总结
软件评测师是软考中级考试项,每年一次考试机会,2022年的是在11月份举行,具体事项需查看软考官网。 分享一下个人的备考经验,以及总结一下这个学习的过程,有需要的可以酌情参考。 一、方法策略 获取信息 官网&#x…...
小白系列Vite-Vue3-TypeScript:009-屏幕适配
上一篇我们介绍了ViteVue3TypeScript项目中mockjs的安装和配置。本篇我们来介绍屏幕适配方案,简单说来就是要最大程度上保证我们的界面在各种各样的终端设备上显示正常。通用的屏幕适配方案有两种:① 基于rem 适配(推荐,也是本篇要…...
查找企业微信聊天记录,会话存档有多重要
会话存档是基于企业微信API插口而开发设计的聊天记录查询专用工具。运用会话存档能不能找到误删除、到期的聊天记录呢?实际上能否通过会话存档找到企业微信中的聊天记录分两种状况,大家一起来看看吧:开启会话存档前的聊天记录没法找到和开启会…...
C语言经典编程题100例(1-20)
1、练习2-1 Programming in C is fun!本题要求编写程序,输出一个短句“Programming in C is fun!”。输入格式:本题目没有输入。输出格式:在一行中输出短句“Programming in C is fun!”。代码:#include<stdio.h> int main() {printf("Progra…...
小白系列Vite-Vue3-TypeScript:008-安装配置mock
上一篇我们介绍了ViteVue3TypeScript项目中axios的安装和配置,并手动封装了api。本篇我们来在上篇基础上介绍如何引入mock,并在本地模拟后台接口请求来达到本地测试的目的。在现在前后端分离的开发模式中,前端页面很多渲染的数据都需要通过ht…...
OnGUI Box 控件||Unity 3D OnGUI 常用控件
OnGUI Box 控件Unity 3D Box 控件用于在屏幕上绘制一个图形化的盒子。Box 控件中既可以显示文本内容,也可以绘制图片,或两者同时存在。GUIContent 和 GUIStyle 对于 Box 控件同样适用,既可以用来修饰 Box 控件的文本颜色,也可以用…...
shiro721——CVE-2019-12422
这两个漏洞主要区别在于Shiro550使⽤已知密钥碰撞,后者Shiro721是使⽤ 登录后rememberMe {value}去爆破正确的key值 进⽽反序列化,对⽐Shiro550条件只要有 ⾜够密钥库 (条件⽐较低)、Shiro721需要登录(要求⽐较⾼鸡肋 …...
爬虫JS逆向思路 - - 扣JS(data解密)
网络上几千块都学不到的JS逆向思路这里全都有👏🏻👏🏻👏🏻 本系列持续更新中,三连关注不迷路👌🏻 干货满满不看后悔👍👍👍 ❌注意…...
Android 进阶——Framework 核心之Binder 相关预备理论(一)
文章大纲引言一、进程的内存空间和进程隔离二、Linux 系统内存的用户空间和内核空间1、用户空间(User Space)2、内核空间(Kernel Space)三、Linux IPC 原理1、内核态和用户态2、IPC 步骤四、内核模块和驱动五、Binder1、Binder IP…...
【23种设计模式】结构型模式详细介绍
前言 本文为 【23种设计模式】结构型模式 相关内容介绍,下边将对适配器模式,桥接模式,组合模式,装饰模式,外观模式,亨元模式,代理模式,具体包括它们的特点与实现等进行详尽介绍~ &a…...
接口自动化实战-postman
1.测试模型 单元测试并非测试工程师的本职工作,它属于开发工程师的工作,开发进行单元测试的情况我们不知道,为了确保系统尽可能没有Bug,于是接口测试在测试工程师这里就变得由为重要了。实际工作中为菱形模型。 接口测试能更早的…...
前端跨域方案简单总结
1、什么是跨域 【】跨域是一种浏览器同源安全策略,也即浏览器单方面限制脚本的跨域访问。很多人可能误认为资源跨域时无法请求,实质上请求是可以正常发起的(指通常情况下,部分浏览器存在部分特例),后端也可…...
【HTML】HTML 表格 ② ( 表头单元格标签 | 表格标题标签 )
文章目录一、表头单元格标签二、表格标题标签一、表头单元格标签 表头单元格 可以在表格中 用作第一排 作为表格 的 表头 使用 , 表头单元格 中的 文本设置 可以与 普通单元格 中的文本设置 不同 ; 表头单元格 中的 文本 会 居中 , 并且 加粗 显示 ; 表头单元格 标签 如下 : &…...
常用的辅助类2(StringBuilder、StringBuffer、处理时间相关的类、对象比较器)
Java知识点总结:想看的可以从这里进入 目录7.7、字符串相关类7.8、时间处理7.8.1、JDK8前7.8.2、JDK8后1、时间日期类2、格式化日期3、其他7.9、对象比较器7.7、字符串相关类 String:JDK1.0出现,字符串类,被final修饰其值不可改。…...
anaconda下pytorchCPU GUP安装及问题记录
1 pytorch安装(CPU版本) pip3 install torch torchvision torchaudio -i https://pypi.tuna.tsinghua.edu.cn/simple2 torchvision、torchaudio、torchtext安装:解决ModuleNotFoundError: No module named ‘torchvision‘问题 (…...
香港中文大学MISC Lab GNN团队: 异质图神经网络研究进展从谱的角度看待(图)对比学习(图自监督学习)
简介 实验室简介 香港中文大学机器智能与社会计算实验室(MISC Lab, Machine Intelligence and Social Computing Lab) 由Prof. Irwin King 创建并不断发展, 在图学习,推荐系统,自然语言处理,机器学习等领域取得了卓越的研究成果。在图学习方面, MISC Lab关注异质图学习(Het…...
C#开发的OpenRA的Enumerable.Concat方法应用
C#开发的OpenRA的Enumerable.Concat方法应用 在OpenRA游戏里,可以让用户指定搜索目录,也可以搜索应用程序所在的目录。 还需要把这两个结果集连接到一起,那么它是怎么实现的呢? 它是采用了Enumerable.Concat方法,实现两个列表的结果集进行合并。 可以看一下这个函数的代码…...
前端知识点总结(自参)
BFC 块级格式化上下文。BFC元素不会影响到其它环境中的布局。 触发BFC的条件 根元素或其它包含它的元素浮动元素 (元素的 float 不是 none)绝对定位元素 (元素具有 position 为 absolute 或 fixed)内联块 (元素具有 display: inline-block)表格单元格 (元素具有 display: tabl…...
[ 靶场环境片 ] kali-linux采用Docker 搭建 pikachu(特别详细)
🍬 博主介绍 👨🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~ ✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 🎉点赞➕评论➕收藏 == 养成习惯(一键三连)😋 🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步📝文末…...
阿里6面,成功唬住面试官拿了27K,软件测试面试也没有传说中那么难吧....
阿里的面试挺独特,每轮面试都没有 HR 约时间,一般是晚上 8 点左右面试官来一个电话,问是否能面试,能的话开始面,不能就约一个其它时间。 全程 6 面,前五面技术面,电话面试,最后一面…...
为什么静默安装未经过数字签名的驱动是不可行的?
我想,在 Windows XP 系统上,造成蓝屏的最主要原因是带有 Bug 的设备驱动程序。 请问在座的,谁赞成,谁反对。 因为驱动运行在内核模式,再也没有更高级别的组件对其进行行为监管,它可以做它想做的任何事情。…...
wordpress登录无反应/自媒体135网站免费下载安装
该文章属于《Java并发编程》系列文章,如果想了解更多,请点击《Java并发编程之总目录》 前言 在上篇文章《Java并发编程之锁机制之Lock接口》中,我们已经了解了,Java下整个Lock接口下实现的锁机制是通过AQS(这里我们将AbstractQueu…...
一元购物网站怎么做/关于新品牌的营销策划
导LEAD语感谢关注matlab爱好者公众号!如果公众号文章对您有帮助,别忘了点击分享和“在看”哦!若您对公众号有什么意见或建议,请在公众号中回复或在任意文章底部留言!本文作者:过冷水优化算法的讲解姗姗来迟…...
专业建站开发/网络营销培训课程
注:以下内容适用于WPF、C#编码。 最近对异步编程产生了较大的兴趣,所以写出来和感兴趣的朋友一起分享! 1、关于Dispatcher 调度类: 提供用于管理线程的工作项队列的服务。 通常,WPF 应用程序从两个线程开始&#…...
南京网站建设工作室/百度扫一扫识别图片在线
1 基础知识Python语言与其他编程语言一样,也支持四则运算(加、减、乘、除),以及圆括号运算符。在Python语言中,数字分为整数和浮点数。整数就是无小数部分的数,浮点数就是有小数部分的数。例如,下面的代码是标准的四则…...
番禺网页设计公司/厦门seo代理商
1,请问一个完整的操作系统,应该包含哪些部分?答:两部分:(1)核心与其提供的接口工具。(2)利用核心提供的接口工具所开发的软件。2,UNIX 是谁写出来的?GNU计划是…...
wordpress产品筛选/阿里云注册域名
cat /etc/redhat-release...