当前位置: 代码迷 >> 综合 >> Path Aggregation Network for Instance Segmentation
  详细解决方案

Path Aggregation Network for Instance Segmentation

热度:60   发布时间:2024-02-10 14:31:33.0

Path Aggregation Network for Instance Segmentation

信息在神经网络中的传播方式是非常重要的。在本文中,我们提出了PANet(Path Aggregation Network),旨在提升proposal-based 的实例分割框架中的信息流。具体来说,我们通过自下而上的路径增强(path augmentation),在下层用精确的位置信息增强整个特征层次,从而缩短下层和最上层特征之间的信息路径。我们提出了adaptive feature pooling,将feature grid和所有特征层联系起来,使每个特征层的有用信息直接传播到下面的proposal subnetworks。为进一步提高mask prediction能力,创建了一个捕捉每个proposal不同视图的补充分支。

这些改进的实现很简单,但有少量的额外计算开销。我们的PANet在COCO 2017挑战赛实例分割任务中达到了第一名,在没有大批量训练的情况下,在物体检测任务中达到了第二名。它在MVD和Cityscapes上也是最先进的。代码可在https://github.com/ShuLiu1993/PANet。

1. Introduction

实例分割是最重要和最具挑战性的任务之一。它的目的是预测类标签和像素上的instance mask ,以定位图像中呈现的不同数量的实例。这项任务广泛惠及自动驾驶、机器人、视频监控等等。

在深度卷积神经网络的帮助下,提出了一些例如分割的框架,例如[21,33,3,38],性能增长迅速[12]。Mask R-CNN[21]是一个简单有效的实例分割系统。在Fast/Faster R-CNN[16,51]的基础上,采用全卷积网络(FCN)进行mask prediction,同时进行box回归和分类。为了获得更高的性能,利用特征金字塔网络(FPN)[35]来提取网络中的特征层次,其中增加了一条具有横向连接的自上而下的路径来传播语义强的特征。

一些新发布的数据集[37,7,45]为算法改进提供了很大的空间。COCO[37]包含20万张图片。在每幅图像中捕捉到大量空间布局复杂的实例。不同的是,城市景观[7]和MVD[45]为街道场景提供了大量的traffic participants。这些数据集中会出现模糊、严重遮挡和极小的实例。

在图像分类中,已经提出了一些设计网络的原则,这些原则对于对象识别也是有效的。例如,通过residual连接[23,24]和dense连接[26]来缩短信息路径和缓解信息传播是有用的。通过split-transform-merge strategy[61,6]建立平行路径来增加信息路径的灵活性和多样性也是有益的。

Our Findings 我们的研究表明,最先进的Mask R-CNN中的信息传播可以进一步改进。具体来说,低层的特征对大实例识别有帮助。但从低层结构到最上层特征有很长的路径,增加了获取准确定位信息的难度。此外,每个proposal都是基于从一个feature grids pooled的特征网格进行预测。这个过程可以更新,因为在其他层特征中丢弃的信息可能对最终的预测有帮助。最后,mask prediction是在single vi上进行的,失去了收集更多样化信息的机会

在这里插入图片描述

图1.我们框架的说明。(a)FPN骨干。(b) 自下而上的路径增强。? 自适应特征池。(d)Box branch。(e)全连接融合。请注意,为了简洁起见,我们省略了(a)和(b)中特征图的通道维度。

Our Contributions 在这些原则和观察的启发下,我们提出了PANet,如图1所示,对于实例分割。

首先,为了缩短信息路径,利用低层存在的准确位置信息增强特征金字塔,建立了自下而上的路径增强。事实上,在[44,42,13,46,35,5,31,14]的系统中,低层的特征被利用。但没有探讨传播低层特征来增强整个特征层次结构以实现instance recognition。

其次,为了恢复每个proposal和所有feature levels之间的broken information path,我们提出了自适应特征池。它是一个简单的组件,用于聚合所有feature levels的特征。通过这个操作,与[4,62]相比,创建了更有效的路径。

最后,为了捕捉每个proposal的不同views,我们用小的全连接(fc)层来增强mask prediction,它与Mask R-CNN最初使用的FCN具有互补性。通过融合这两种观点的预测,信息多样性增加,产生了质量更好的masks。

前两部分由对象检测和实例分割两部分共享,导致两个任务的性能大大增强。

Experimental Results 通过PANet,我们在多个数据集上实现了最先进的性能。以ResNet-50[23]作为初始网络,我们的PANet以single scale已经在对象检测[27]和实例分割[33]任务中优于COCO 2016挑战赛的冠军。需要注意的是,之前的这些结果是由更大的模型[23,58]加上多尺度和水平翻转测试实现的。

我们在COCO 2017挑战赛实例分割任务中取得了第一名的成绩,在没有大批量训练的情况下取得了物体检测任务的第二名。我们还在Cityscapes和MVD上对我们的系统进行了基准测试,同样产生了排名靠前的结果,体现了我们的PANet是一个非常实用且性能一流的框架。我们的代码和模型可以在https://github.com/ShuLiu1993/PANet。

2. Related Work

Multi-level Features 来自不同层的特征被用于图像识别。SharpMask[49]、Peng等人[47]和LRR[14]融合了特征图,用于更精细的分割。FCN[44]、U-Net[54]和Noh等[46]通过skip-connections融合了下层的信息。TDM[56]和FPN[35]都在自上而下的路径上增加了lateral connections,用于对象检测。TDM采取融合后分辨率最高的特征图来作为池化后特征,SSD[42]、DSSD[13]、MS-CNN[5]和FPN[35]将proposals分配到合适的特征层进行推理。我们以FPN为基线,并对其进行了很多增强

ION[4]、Zagoruyko等[62]、Hypernet[31]和Hypercolumn[19]将不同层的特征网格进行了串联,以便更好地进行预测。但是需要进行一系列的操作,即归一化、concatenation和减维,才能得到可行的新特征。相比之下,我们的设计要简单得多。

在[52]中也利用了不同的特征网格对每个proposal进行融合。但这种方法是在输入上提取不同比例的特征图,然后进行特征融合(用max operation),从输入图像金字塔中改进特征选择。相比之下,我们的方法旨在利用single-scale输入的网络特征层次中所有特征层次的信息。已启用端到端训练。

Larger Context Region [15,64,62]的方法将每个proposal的特征与foveal structure汇集起来,以利用不同分辨率的区域的上下文信息。从更大区域汇集的特征提供了周围的上下文。在PSPNet[67]和ParseNet[43]中使用了全局池化,大大提高了语义分割的质量。Peng等人[47]也观察到了类似的趋势,全局卷积被利用。我们的mask prediction branch也支持访问全局信息。但技术是完全不同的。

3. Framework

我们的框架如图1所示。为了提高性能,进行了路径扩增和聚合。自下而上的路径被增强,使低层信息更容易传播。我们设计了自适应的特征池,让每个proposal都能从各层的特征图中获取信息进行预测。在mask-prediction branch中增加了一条补充路径。这种新结构带来了不错的性能。与FPN类似,这种改进与CNN结构无关,例如[57,32,23]。

3.1. Bottomup Path Augmentation

Motivation 高层的神经元对整个物体有强烈的反应,而其他神经元更容易被局部纹理和图案激活,这一深刻的观点[63]体现在FPN中增强自上而下的路径来传播语义强的特征,增强所有特征的合理分类能力的必要性。

在这里插入图片描述

图1.我们框架的说明。(a)FPN骨干。(b) 自下而上的路径增强。? 自适应特征池。(d)Box branch。(e)全连接融合。请注意,为了简洁起见,我们省略了(a)和(b)中特征图的通道维度。

FPN已经证明了加入一条top-down的旁路连接,能给feature增加high-level的语义性有利于分类。但是low-level的feature是很利于定位用的,虽然FPN中P5也间接得有了low-level的特征,但是信息流动路线太长了如红色虚线所示(其中有ResNet50/101很多卷积层),本文在FPN的P2-P5又加了low-level的特征,最底层的特征流动到N2-N5只需要经过很少的层如绿色需要所示(仅仅有几个降维的卷积)

Augmented Bottom-up Structure 我们的框架首先完成了自下而上的路径增强。我们按照FPN来定义,产生具有相同空间大小的特征图的图层处于同一个网络阶段。每个特征层对应一个阶段。我们也以ResNet[23]为基本结构,用{P2,P3,P4,P5}来表示FPN产生的特征层。我们的增强路径从最低处特征 P 2 P_2 开始,然后逐渐到 P 5 P_5 从P2到P5,空间大小逐渐下采样,每一层下采样因子为2。我们用 { N 2 , N 3 , N 4 , N 5 } \{N_2,N_3,N_4,N_5\} 表示对应 { P 2 , P 3 , P 4 , P 5 } \{P_2,P_3,P_4,P_5\} 新生成的特征图。值得注意的是 N 2 N_2 是由 P 2 P_2 直接复制的

在这里插入图片描述

如图2所示,每个building block通过横向连接取一个分辨率较高的特征图 N i N_i 和一个较低的图 P i + 1 P_{i+1} ,生成新的特征图 N i + 1 N_{i+1} 。每个特征图 N i N_i 首先经过一个3×3的卷积层,步长2,以减小空间大小。然后将特征图 P i + 1 P_{i+1} 和下采样图的每个元素通过横向连接相加。融合后的特征图再经过另一个3×3卷积层处理,生成 N i + 1 N_{i+1} ,用于以下子网络。这是一个反复的过程,并在 P 5 P_5 后终止。在这些building block中,我们始终使用通道数为256的特征图。所有卷积层之后都有一个ReLU[32]。然后从新的特征图中汇集每个提案的特征网格。然后从新的特征图(即 { N 2 , N 3 , N 4 , N 5 } \{N_2,N_3,N_4,N_5\} )汇集每个proposal的feature grid

3.2. Adaptive Feature Pooling

Motivation 在FPN[35]中,根据proposals的大小,将提案分配到不同的特征级别。它使得小的proposals被分配到低的特征级别,大的proposals被分配到高的特征级别。虽然简单有效,但仍可能产生非最佳的结果。例如,两个相差10像素的提案可以被分配到不同的级别。事实上,这两项建议相当相似。

外,特征的重要性可能与它们所属的特征层并不紧密相关。高层次的特征是用大的感受野产生的,并能捕获更丰富的上下文信息。允许小proposals访问这些特征,可以更好地利用有用的上下文信息进行预测。同样,低级特征也具有许多精细的细节和较高的定位精度。让大proposals访问它们显然是有利的。基于这些思想,我们提出将各个层次的特征汇集到每个proposals中,并将它们融合起来进行后续预测。我们将此称为自适应特征池

在这里插入图片描述

图3. 在自适应特征池化的情况下,从不同特征级别汇集的特征比例。每条线代表一组应分配到FPN中同一特征级别的proposals,即具有相似尺度的proposals。横轴表示池化特征的来源。它表明,不同规模的proposals都利用了几个不同层次的特征。

我们现在分析不同层次的特征池与自适应特征池的比例。我们使用max
operation运算来融合不同级别的特征,让网络选择element-wise的有用信息。我们根据proposals在FPN中最初被分配到的级别,将proposals聚类为四类。对于每一组proposals,我们计算从不同级别中选择的特征比例。在符号中,1-4级代表从低到高的级别。如图3所示,蓝线代表最初在FPN中被分配到level 1的小proposal。令人惊讶的是,近70%的特征来自其他更高的级别。我们还用黄线代表在FPN中被分配到level 1的大proposal。同样,50%以上的特征是来自其他较低级别的汇集。这一观察结果清楚地表明,多个级别的特征在一起对准确预测很有帮助。这也是对设计自下而上路径增强的有力支持

Adaptive Feature Pooling Structure 自适应特征池在实现上其实很简单,在图1?中进行了演示。首先,对于每个proposal,我们将它们映射到不同的特征级别,如图1(b)中深灰色区域所表示。按照Mask R-CNN[21],使用ROIAlign将每个级别的特征网格进行池化。然后利用融合操作(element-wise max or sum)来融合不同层次的特征网格

在下面的子网络中,pooled feature grids独立地经过一个参数层,之后进行融合操作,使网络能够适应特征。例如,在FPN中的box分支中有两个fc层。我们在第一层之后应用融合操作。由于Mask R-CNN的掩mask prediction分支中使用了四个连续的卷积层,我们将融合操作放在第一层和第二层卷积层之间。消融研究在4.2节中给出

融合后的特征网格作为每个proposal的特征网格,用于进一步的预测,即分类、box回归和mask prediction。box branch上自适应特征池的详细说明由附录中的图6所示。

在这里插入图片描述

我们的设计侧重于融合来自in-network特征层次结构的信息,而不是来自输入图像金字塔不同特征图的信息[52]。与[4,62,31]中需要进行L-2归一化、concatenation和降维的过程相比,我们的设计更加简单。

3.3. Fullyconnected Fusion

**Motivation ** 全连接层,即MLP,被广泛用于实例分割[10,41,34]和mask proposal generation生成[48,49]中的mask prediction。[8,33]的结果表明,FCN也能胜任实例的像素化mask prediction。最近,Mask R-CNN[21]在pooled feature grid应用一个微小的FCN来预测相应的masks,避免了类之间的竞争。

我们注意到fc层与FCN相比产生了不同的特性,后者在每个像素上基于局部感受野给出预测,并且参数在不同的空间位置是共享的。相反,fc层对位置敏感,因为不同空间位置的预测是通过不同的参数集实现的。所以它们具有适应不同空间位置的能力。同时在每个空间位置的预测都是用整个proposal的全局信息来实现的。这对于区分实例[48]和识别属于同一对象的独立部分很有帮助。考虑到fc层和卷积层的属性不同,我们将这两类层的预测进行融合,以达到更好的mask prediction效果。

在这里插入图片描述

Mask Prediction Structure 我们的mask prediction组件是轻量级的,易于实现。mask branch对每个proposal的pooled feature grid进行操作。如图4所示,主路径是一个小型的FCN,它由4个连续的卷积层和1个deconvolutional层组成。每个卷积层由256个3×3滤波器组成,deconvolutional层以因子2对特征进行上采样。它为每个类独立预测一个binary pixel-wise mask,以解耦分割和分类,类似于Mask R-CNN。我们进一步创建一条从层conv3到fc层的短路径。有两个3x3卷积层,其中第二个卷积层将通道收缩到一半,以减少计算开销。

fc层用于预测与类无关的前景/背景mask。它不仅效率高,而且允许用更多的样本训练fc层中的参数,从而获得更好的通用性。我们使用的mask大小是28×28,这样fc层就会产生一个784×1×1的向量。该向量被reshaped为与FCN预测的mask相同的空间大小。为了得到最终的mask prediction,需要将FCN中每个类的mask和fc中的前景/背景预测相加。只使用一个fc层而不是多个fc层进行最终预测,可以避免将隐藏的空间特征图折叠成一个短的特征向量,从而丢失空间信息的问题

4. Experiments

我们将我们的方法与具有挑战性的COCO[37]、Cityscapes[7]和MVD[45]数据集上的最先进方法进行比较。我们的结果在所有这些数据集中都是排名靠前的。在COCO数据集上进行了全面的消融研究。我们还介绍了我们在COCO 2017 Instance Segmentation和Object Detection Challenges上的结果。

4.1. Implementation Details

我们基于Caffe[29]重新实现了Mask R-CNN和FPN。我们在实验中使用的所有预训练模型都是公开的。我们采image centric training[16]。对于每张图像,我们对512个感兴趣的区域(ROIs)进行采样,正负比为1 : 3,权重衰减为0.0001,动量设置为0.9。其他超参数根据数据集略有不同,我们在各自的实验中详细说明。继Mask R-CNN之后,为了方便消融和公平比较,建议来自独立训练的RPN[35,51],即骨干不与目标检测/实例分割共享。

4.2. Experiments on COCO

Dataset and Metrics 由于数据的复杂性,COCO[37]数据集是实例分割和对象检测中最具挑战性的数据集之一。2017年,共有115k张图片,用于训练。测试开发中使用20k个图片,使用20k个图片作为测试挑战。testchallenge和testdev的Ground-truth标签不公开。

我们遵循标准的评价指标,即AP、 A P 50 AP_{50} A P 75 AP_{75} A P S AP_S A P M AP_M A P L AP_L 。后面三个衡量的是针对不同尺度的对象的性能。由于我们的框架对实例分割和目标检测都是通用的,所以我们还训练了独立的目标检测。我们报告了独立训练的目标检测的maskAP、box ap A P b b AP^{bb} ,以及以多任务方式训练的目标检测分支的box ap A P b b M AP^{bbM}

Hyper-parameters 我们在一个图像batch中取16张图像进行训练。如果没有特别说明,图像的短边和长边分别为800和1000。对于实例分割,我们训练我们的模型,学习率为0.02,迭代120k,再迭代40k,学习率为0.002。对于目标检测,我们训练一个目标检测器,没有mask prediction分支。目标检测器以学习率0.02进行60k次迭代训练,另外20k次迭代学习率为0.002。这些参数采用了Mask R-CNN和FPN,没有进行任何微调。

在这里插入图片描述

表1.PANet与Mask R-CNN的比较 COCO 2016实例分割挑战赛冠军PANet和Mask R-CNN在COCO test-dev子集上Mask AP的对比,其中后两者为基线。

Instance Segmentation Results 我们报告了我们的PANet在测试-dev上的性能,以进行比较,有多尺度训练和没有多尺度训练。如表1所示,我们的PANet与ResNet-50在多尺度图像上训练并在单尺度图像上测试已经优于Mask R-CNN和2016年的Champion,后者使用了更大的模型集合和测试技巧[23,33,10,15,39,62]。在图像尺度800,与Mask R-CNN相同的情况下进行训练和测试,在相同初始模型下,我们的方法比single-model最先进的Mask R-CNN性能高出近3个百分点。

在这里插入图片描述

表2. COCO 2016物体检测挑战赛冠军PANet、RentinaNet和Mask R-CNN在COCO测试-dev子集上的box AP比较,其中后三者为基线。

Object Detection Results 与Mask R-CNN中采用的方式类似,我们也报告了从box分支推断的bounding box结果。表2显示,我们使用ResNet-50的方法,在单尺度图像上进行训练和测试,即使使用大得多的ResNeXt-101[61]作为初始模型,也以很大的优势优于所有其他single-model。在多尺度训练和单尺度测试的情况下,我们使用ResNet-50的PANet在2016年的表现优于使用更大模型集后和测试技巧的Champion。

Component Ablation Studies 首先,我们分析了每个proposed组件的重要性。除了自下而上的路径增强、自适应特征池和全连接融合外,我们还分析了多尺度训练、多GPU同步批量归一化[67,28]和heavier head。对于多尺度训练,我们设置较长的边为1400,另一个范围为400到1400。在使用多GPU同步批量归一化时,我们基于一个批次所有GPU的所有样本计算均值和方差,在训练过程中不固定任何参数,并使所有的new layers之后都有一个批量归一化层。heavier head**使用了4个连续的3×3卷积层,由box分类和box回归共享,而不是两个fc层。它与[36]中使用的头类似,但在其案例中,box分类和box回归分支的卷积层并不共享。

在这里插入图片描述

表3. 在val-2017上独立训练的目标检测器的mask AP、box ap A P b b AP^{bb} ,以及用多任务方式训练的box 分支的box ap A P b b M AP^{bbM} 方面的性能。在我们重新实现的基线(RBL)的基础上,我们逐步加入多尺度训练(MST)、多GPU同步批量归一化(MBN)、自下而上路径增强(BPA)、自适应特征池(AFP)、全连接融合(FF)和heavier head(HHD)进行消融研究。MRB是原论文中报道的Mask R-CNN结果的简称。最后一行显示与基线RBL相比的总改进。

我们的消融研究从基线逐渐到所有组件纳入是对val-2017子集进行的,并在表3中显示。ResNet-50[23]是我们的初始模型。我们报告的性能在mask AP,box ap A P b b AP^{bb} 的一个独立训练的对象检测器和箱ap A P b b M AP^{bbM} 的箱分支训练的多任务方式。

1) Re-implemented Baseline. 我们重新实现的Mask R-CNN的性能与原论文中描述的相当,并且我们的目标检测器性能更好。

2) Multi-scale Training & Multi-GPU Sync. BN. 这两种技术有助于网络更好地收敛,提高泛化能力。

3) Bottom-up Path Augmentation. 无论是否自适应特征池,自下而上的路径增强都能持续改善mask AP和box ap A P b b AP^{bb} ,分别提高0.6和0.9以上。在具有大尺度的实例上改善最为显著。这验证了较低特征层次的信息的有用性

4) Adaptive Feature Pooling. 无论是否有自下而上的路径增强,自适应特征池都能持续改善性能。根据我们的观察,其他层的特征在最终预测中也是有用的,所有尺度的性能普遍提高

5) Fully-connected Fusion. 全连接融合的目的是预测质量更好的mask具。它在mask AP方面产生了0.7的改进。它对所有规模的实例都是通用的

6) Heavier Head. Heavier head对于用多任务训练的bounding box ap A P b b M AP^{bbM} 相当有效。而对于mask AP和独立训练的目标检测器,改善不大。

在PANet中使用所有这些组件,在mask AP上的改进比基线高4.4。独立训练的目标检测器的Box ap A P b b AP^{bb} 增加4.2。它们是显著的.中小尺寸实例贡献最大.一半的改进来自于多尺度训练和多GPU同步BN,这是帮助训练更好模型的有效策略

在这里插入图片描述

Ablation Studies on Adaptive Feature Pooling 我们对自适应特征池进行消融研究,寻找融合操作的位置和最合适的融合操作。我们将其放置在ROIAlign和fc1之间,用 "fu.fc1fc2 "表示,或者放置在fc1和fc2之间,用表4中的 "fc1fu.fc2 "表示。类似的设置也适用于mask预测分支。对于特征融合,测试了max和sum操作。

如表4所示,自适应特征池对融合操作不敏感。但是,允许参数层从不同层次的特征网格进行自适应,这一点非常重要。我们使用max作为融合操作,并在我们框架中的第一个参数层后面使用它。

在这里插入图片描述

Ablation Studies on Fully-connected Fusion

我们研究了用不同方式实例化增强的fc分支的性能。我们考虑了两个方面,即开始新分支的层和融合新分支和FCN预测的方式。我们实验分别从conv2、conv3和conv4创建新路径。“max”、"sum "和 "product "操作被用于融合。我们以我们重新实现的Mask R-CNN与自下而上的路径增强和自适应的特征池作为基线。相应的结果如表5所示。它们清楚地表明,从conv3盯住并取和进行融合产生了最好的结果。

在这里插入图片描述

在这里插入图片描述

COCO 2017 Challenge

我们用PANet参加了COCO 2017 Instance Segmentation和Object Detection挑战赛。我们的框架在没有大批量训练的情况下,在实例分割任务中达到了第一名,在对象检测任务中达到了第二名。如表6和表7所示,与去年的冠军相比,我们在实例分割上实现了9.1%的绝对提升和24%的相对提升。而在对象检测方面,则取得了9.4%的绝对改进和23%的相对改进。

在PANet中,顶级的性能还伴随着一些细节。首先,我们使用了可变形卷积,其中采用了DCN[11]。采用了常见的测试技巧[23,33,10,15,39,62],如多尺度测试、水平翻转测试、mask voting和box voting。对于多尺度测试,我们将较长的边设置为1400,其他范围为600~1200,步长为200。只使用了4个尺度。其次,我们使用公开的较大的初始模型。我们使用3个ResNeXt-101(64 4d)[61]、2个SE-ResNeXt-101(32 4d)[25]、1个ResNet-269[64]和1个SENet[25]作为bounding box和mask generation的合集。不同较大初始模型的性能相似。1个ResNeXt-101(64 4d)作为基础模型来生成proposals。我们用不同的随机种子来训练这些模型,用和不用平衡采样[55]来增强模型之间的多样性。我们提交的检测结果是通过tightening instance masks获得的。我们在图5中展示了一些视觉结果–我们的大部分预测都具有较高的质量

B. Details on Implementing Multi-GPU Synchronized Batch Normalization.

ls。我们用不同的随机种子来训练这些模型,用和不用平衡采样[55]来增强模型之间的多样性。我们提交的检测结果是通过tightening instance masks获得的。我们在图5中展示了一些视觉结果–我们的大部分预测都具有较高的质量**。

B. Details on Implementing Multi-GPU Synchronized Batch Normalization.

我们在Caffe[29]和OpenMPI上实现了多GPU批量归一化。给定n个GPU和batch B的训练样本,我们首先将训练样本平均分成n个子批,每个子批表示为 b i b_i ,分配给一个GPU。在每个GPU上,我们根据 b i b_i 中的样本计算平均值 μ i \mu_i 。然后应用AllReduce操作收集所有GPU上的所有 μ i \mu_i ,得到整个batch B的平均值B。 μ B \mu_B 被广播给所有的gpu。然后,我们在每个GPU上独立计算临时统计,并应用AllReduce操作,得出整个batch B的方差 σ B 2 \sigma^2_B σ B 2 \sigma^2_B 也广播给所有的gpu。因此,每个GPU都有B中所有训练样本的统计结果,然后我们对每个训练样本进行[28]中的归一化 y m = γ x m ? μ B σ B 2 + ? y_m=\gamma\frac{x_m-\mu_B}{\sqrt{\sigma^2_B+\epsilon}} 。在后向操作中,同样应用AllReduce操作来收集所有GPU的信息进行梯度计算。

  相关解决方案