没有合适的资源?快使用搜索试试~ 我知道了~
随机反向传播:内存高效视频模型训练
(a) activation maps(b) gradients of activation mapsInputLayer 7Video Swin-Tmore different at the top layers. An example of Video Swin-T [33] on Kinetics-400 [7] dataset is shown in Fig. 1. Dur-ing model training, the tiny difference in the seemly similarfeatures (i.e., fine-grained information) of the bottom lay-ers is crucial for producing the difference in the top layers,however, they may not make much difference in terms ofupdating the parameters of these bottom layers. Thus, wehypothesize that complete computation is necessary for theactivation maps (forward paths) to extract important seman-tic information but could be unnecessary for the gradients(backward paths).In this paper, we propose a memory saving technique,named Stochastic Backpropagation (SBP). Different fromprevious work that jointly removes the forward and back-ward paths [1], SBP randomly drops a proportion of the in-83010随机反向传播:一种内存高效的视频模型训练策略0Feng Cheng 1 * Mingze Xu 2 † Yuanjun Xiong 2 Hao Chen 2 Xinyu Li 2 Wei Li 2 Wei Xia 201 UNC Chapel Hill 2 AWS AI Labs0fengchan@cs.unc.edu, {xumingze,yuanjx,hxen,xxnl,wayl,wxia}@amazon.com0摘要0我们提出了一种名为随机反向传播(SBP)的内存高效方法,用于训练视频的深度神经网络。它基于这样的发现:即使反向传播的执行不完整,梯度仍然可以有效地训练模型,而且准确度损失很小,这归因于视频的高冗余性。SBP保留所有的前向路径,但在每个训练步骤中随机且独立地删除每个网络层的后向路径。它通过消除需要缓存与被丢弃的后向路径对应的激活值来降低GPU内存成本,其数量可以由可调节的保留比例来控制。实验证明,SBP可以应用于各种视频任务的模型,可节省高达80.0%的GPU内存,并在动作识别和时序动作检测中以少于1%的准确度下降的代价下提高10%的训练速度。01. 引言0在训练视频理解模型时,常见的挑战之一是GPU内存的有限可用性。尽管已知视频模型(例如动作识别[3, 42, 45,49]和时序动作检测[6, 13])从整个视频的上下文特征中受益[49,50],但往往不可行以尽可能多地采用输入帧(例如通常数百帧)进行端到端训练。例如,当使用ResNet-50[21]作为特征提取器、128帧作为输入和批量大小为4来训练时序动作检测器时,特征提取器本身就需要超过40GB的内存,这可能超过大多数现代GPU的限制。另一方面,视频数据具有很高的冗余性,这为优化提供了机会。我们观察到在视频模型中,不同帧的激活图和梯度在底层是相似的,但在顶层则变得更加不同。图1展示了在Kinetics-400 [7]数据集上使用Video Swin-T[33]的示例。在模型训练过程中,底层的微小差异(即细粒度信息)对于产生顶层的差异至关重要,然而,对于更新这些底层参数来说,它们可能并没有太大的影响。因此,我们假设激活图(前向路径)的完整计算对于提取重要的语义信息是必要的,但对于梯度(后向路径)来说可能是不必要的。在本文中,我们提出了一种名为随机反向传播(SBP)的内存节省技术。与之前同时删除前向和后向路径的方法不同[1],SBP在每个训练步骤中随机丢弃一部分的0* 本工作是在亚马逊实习期间完成的。† 通讯作者。0第1层0第4层0第12层0图1.激活和梯度来自不同层次(例如,第1、4、7和12层)的VideoSwin-T[33]。底层的激活和梯度在帧之间是相似的,而顶层则有很大的差异,这符合我们的假设,即底层的帧之间有很多冗余,而顶层的冗余较少。action instance. One common practice [4,8,10,17,30,31,55]is to first generate action proposals, then identify their ac-tion classes and temporal boundaries. On the other hand, the”bottom-up” fashion [40, 57] first makes frame-level densepredictions and groups them as action instances. Online ac-tion detection [13,16,18,19,39,41,52,54,56], however, rec-ognizes actions as soon as each video frame arrives withoutaccessing any future information. Due to the high cost ofGPU memory, most above offline and online methods can-not be trained in end-to-end manner and thus are built uponthe extracted features from raw videos. Transformers re-cently achieve convincing results in video tasks, such as ac-tion recognition [2,3,27,33] and detection [37,44,54]. How-ever, the high computational cost and memory demands alsolimit most of them to be only trained on short video clips.A few methods [5, 11] focus on designing Transformers tomodel long-form inputs, but mainly for text.83020时态模型0空间模型0端到端冻结骨干0帧选择0随机反向传播0输入0图2.不同内存节省技术的比较。与冻结骨干或帧选择不同,随机反向传播在训练空间模型时随机删除反向路径,但在时间模型中保留它们。0在反向传播中,随机删除了逐层连接的某些随机抽样神经元的路径。由于反向传播算法中的链式依赖关系,这将导致所有网络参数的梯度计算不完整。然而,我们经验证明,即使是这种不完整计算的梯度仍然足以有效地更新网络参数,只要整体计算图保持不变。这使得SBP易于实现,无需考虑跨多个层的依赖关系的变化。SBP的内存节省来自于避免在删除的计算路径上缓存相应的激活图。由于在反向传播中可以安全地重复使用内存,因此反向过程几乎不使用额外的内存(最多一层),这使得激活缓存成为训练过程中主要的内存消耗来源。因此,节省的数量仅取决于保留比例,并且当保留比例较低时可以显著减少。SBP是一种通用技术,适用于广泛的视频任务和模型。实验结果表明,使用SBP进行训练仅使用0.2×�0.5×的GPU内存,并且在Kinetics-400[7]和Epic-Kitchen-55[12]的动作识别中,速度提升了1.1×�1.2×,准确性损失不到1%,在THUMOS'14[22]的时间动作检测中,mAP损失不到1%。02. 相关工作0视频理解。动作识别[7,42,45,46,49]旨在对各种类型和应用的视频中的一个或多个主体的活动进行分类,从隐私敏感[53]和监控摄像头[43]到自我中心视频[12,28,34]。给定一个未修剪的视频,时间动作定位估计每个动作实例的开始和结束时间。一种常见的做法[4,8,10,17,30,31,55]是首先生成动作提议,然后识别它们的动作类别和时间边界。另一方面,“自下而上”的方式[40,57]首先进行帧级密集预测,然后将其分组为动作实例。然而,在线动作检测[13,16,18,19,39,41,52,54,56]在每个视频帧到达时即刻识别动作,而不需要访问任何未来信息。由于GPU内存的高成本,大多数离线和在线方法都无法以端到端的方式进行训练,因此都是基于从原始视频中提取的特征构建的。Transformer最近在视频任务中取得了令人信服的结果,例如动作识别[2,3,27,33]和检测[37,44,54]。然而,高计算成本和内存需求也限制了它们大多只能在短视频片段上进行训练。少数方法[5,11]专注于设计用于模拟长格式输入的Transformer,但主要用于文本。01 这种机制已经封装在大多数现代深度学习框架中,如PyTorch和Tensorflow。0内存节省技术。内存和准确性之间的权衡一直是深度学习研究中的一个重要话题。梯度检查点[9]和累积可以节省大量内存(约50%),但可能会减慢训练过程。稀疏网络[14]应用于图像识别模型,但理论上只能节省内存。Sideways[35,36]通过在新的激活可用时覆盖激活来降低内存成本,但只能应用于因果模型。对于视频特定的方法,训练时间动作检测器的一种流行范式是在预提取的时间建模和推理特征的基础上构建模型(图2中的“冻结骨干”)。最近的两种方法,AFSD[29]和DaoTAD[48],是端到端训练的(DaoTAD还冻结了他们骨干的前两个阶段),但它们需要减小空间分辨率(即AFSD中的96×96和DaoTAD中的112×112)。然而,冻结骨干或减小输入尺寸可能会降低准确性,不是最佳解决方案。由于视频通常在相邻帧之间存在高冗余,一些工作还尝试减少输入帧的数量,包括帧丢弃[1]、早期池化[32]和帧选择[20](图2中的“帧选择”)。然而,过度对输入帧进行子采样将不可避免地丢失时间域中重要的细节信息,从而对最终的准确性产生负面影响[50,54]。此外,这些方法不能应用于需要每帧预测(例如在线动作检测)或涉及高运动(例如唇读)的任务。SBP与其他内存节省技术的比较如图2所示。03. 随机反向传播0我们提出了一种内存高效的策略,随机反向传播(SBP),用于训练视频模型。由于底部层存在高冗余,SBP在反向传播过程中随机丢弃了一部分梯度。这样可以节省内存,因为我们不再需要跟踪用于计算梯度的某些激活值。56789101112567891011121234123456789101112123456789101112123483030前向传播 反向传播013 13 时间建模0(a)树模型上的SBP。0前向传播 反向传播013 13 时间建模0(b)图模型上的SBP。0图3.树模型和图模型上的SBP示例。在树模型(a)中,每个节点只与相邻层具有相同位置的节点相连。在图模型(b)中,每个节点都可能与相邻层的所有节点相连(为了更好的可视化,只绘制了Node-6的连接)。在反向传播过程中,梯度只在采样节点之间传播(以灰色表示)。0由于底部层存在高冗余,SBP在反向传播过程中随机丢弃了一部分梯度。这样可以节省内存,因为我们不再需要跟踪用于计算梯度的某些激活值。在本节中,我们首先介绍SBP在广泛应用于视频任务中的树模型和图模型中的工作原理,然后解释这两种类型模型的具体实现。03.1. 概述0当定义一个模型时,其反向计算图是一个有向无环图(DAG),G(V,E),其中顶点V是用于计算梯度的激活值,边E是用于计算梯度的操作。由于模型是一堆叠的层,我们还以层为单位组织V,即V ={Vl0,Vl1,Vl2,∙∙∙,Vln},其中Vli是第li层的输出,Vl0是模型输入。我们将Vli视为一组特征向量。例如,如果Vli∈RC×D×H×W,我们将Vli视为D×H×W个顶点,其中每个顶点(我们在本文中称之为节点)是一个属于RC的特征向量。如图3所示,我们通常将整个模型分为两部分:1)空间模型(虚线下方)和2)时间模型(虚线上方)。模型的顶部几层可以看作是时间模型,因为这些层主要从所有帧中学习全局语义信息。所有其他底部层被视为空间模型,主要学习空间和局部上下文信息。SBP仅应用于空间模型。树模型是一种具有树状DAG的特殊类型模型,其子节点通常只与一个父节点相连。它是最简单的模型结构之一,但在长期视频任务中被广泛采用。为了更好地说明SBP,我们首先介绍在树模型上的SBP,然后将其扩展到更一般的图模型。03.1.1 树模型上的SBP0在树模型中,每个节点只与相邻层具有相同位置的节点相连(如图3a所示)。在长期视频任务中,大多数方法[52, 54,55]使用空间骨干,如ResNet[21],来提取帧特征。这样的模型可以看作是树模型,因为帧是相互独立处理的。图3a展示了在树模型上进行SBP的过程。顶部几层用于进行时间建模,从多个帧中捕捉时间信息。由于底部层比顶部层具有更多的冗余,我们只丢弃底部层的梯度,并保留顶部层的所有梯度。在正常的端到端训练中,由于底部层的特征维度要高得多,大部分内存被消耗。SBP在底部层丢弃梯度,并消除了跟踪相应中间节点的必要性,从而节省了大量内存。03.1.2 图模型上的SBP0在更一般的图模型中,每个节点都可能与相邻层的所有节点相连(如图3b所示)。Vision Transformers [3, 15,33]是一种全连接的图模型。图3b展示了在图模型上进行SBP的过程。在前向传播过程中,每个节点将从前一层的所有节点聚合数据(为了更好的可视化,只绘制了Node-6的连接)。在反向传播过程中,类似于树模型,梯度只在采样节点之间传播。在树模型中,采样节点的梯度与使用所有节点进行训练的梯度完全相同。例如,在图3a中,我们计算Node-6的梯度无论Node-9、11、5、7是否被采样都是相同的。但在一般的图模型中,由于所有顶部节点都会将梯度传播到底部节点,对于底部节点的梯度计算会有所不同。0246810layer index0.60.70.80.91.01.1CKA similarityVideo SwinVideo Swin w/ SBPVideo Swin w/ FD83040图4. SBP、帧丢弃(FD)[1]和Video Swin-T[33]上相同层的激活的CKA相似性[26]。底层的相似性非常高,这表明底层的梯度丢弃不会对模型造成伤害,因为底层具有高冗余性。w/ SBP在顶层的相似性比w/FD更高,这表明保留所有顶层的梯度的重要性。0采样节点并不是精确的,并且从上到下会越来越不准确。然而,由于从上到下的层之间存在越来越多的冗余,这不会成为问题。保持采样节点在所有层中保持一致也将缓解这个问题。我们为所有层设置了统一的SBP保留比例,以简化参数识别。但我们确实注意到可以为每层设置特定的保留比例的系统策略。0为什么我们可以有效地学习部分梯度?我们认为这是因为我们消除了帧之间的冗余,但保留了所有重要信息。如图1所示,底层帧的激活图和这些激活图的梯度在帧之间非常相似,因此丢弃一些帧的梯度不会对模型造成太大的伤害。图4也支持了这一观点。CKA相似性[26] ∈ [0,1]用于衡量两个神经网络之间表示的相似性。帧丢弃(FD)[1]仅使用1/4的帧进行训练,相当于在所有层中丢弃了3/4的梯度。FD的曲线是使用1/4的帧和使用所有帧(基线)进行训练的模型之间的CKA相似性。前6层的相似性非常高(>0.9),这意味着丢弃梯度不会显著降低模型的性能。0与帧选择方法的比较。帧选择方法[20,25]使用轻量级网络从视频中采样帧,然后将采样的帧输入目标模型。假设我们使用相同的帧采样器,SBP和帧选择方法之间的区别在于是否保留未采样帧的前向路径。我们认为保留所有的前向路径是有必要的。0路径的保留很重要。顶层进行时间建模,从所有帧中学习全局时间信息,因此学习到的特征包含的冗余性较少,如图1所示。像帧选择方法那样丢弃前向路径将影响时间建模,因为冗余性较少的时间模型只能从一组采样的帧中进行学习。如图4所示,保持顶层的梯度(使用SBP)具有比丢弃梯度(使用FD)更高的CKA相似性。0与梯度丢弃[47]的比较。SBP和梯度丢弃都会在反向传播过程中丢弃梯度。我们的SBP旨在通过丢弃大部分(即75%)的反向路径来节省内存,而梯度丢弃旨在通过随机将一小部分(10%�20%)的梯度置零来正则化训练。我们探索了梯度丢弃在新方向上的应用,然后设计了一种策略来丢弃反向路径,以实现实际的内存节省。03.2. 实例化0树模型通常用于将数百帧作为输入的长期视频任务。对于短期视频任务,如动作识别,全连接图模型(例如,VideoTransformers [2, 3, 27,33])可以获得更高的准确性。在本节中,我们对这两种类型的模型进行实例化。03.2.1 空间-时间(StT)模型对于在线动作检测和离线动作检测等长期任务,大多数现有方法都是空间-时间模型(StT模型)。StT模型是树模型的实例(图3a)。它们首先使用空间模型(使用滑动窗口的2D或3D-CNN)提取每个帧/块的空间特征,然后将提取的特征输入到时间模型(RNN、Transformer等)进行时间建模。将空间模型表示为fs,时间模型表示为ft,输入视频x∈RC×D×H×W是具有空间分辨率H×W的D帧剪辑。为简化起见,我们省略了批次维度。空间模型接受大小为RC×K×H×W的输入,其中K是块大小。例如,2D-CNN将单个帧作为输入(K=1),3D-CNN将K帧块作为输入。因此,该模型的前向传递将是:0x i = x[:, i * K : (i + 1) * K], i ∈ {0, ..., n} (1)0h = {f s (x 0), f s (x 1), ..., f s (x n)}, n = T/K - 1 (2)0y = f t ( h ) (3)0在这个模型中,空间模型主要从帧中提取空间和局部时间特征,而时间模型从空间模型的输出中收集全局时间语义特征。由于时间模型包含的冗余较少,SBP仅应用于空间模型。SBP can be implemented by dividing the input framesinto two sets using a predefined sampling function: Set-1{xi0, xi1, ..., xiu} in which the gradients are kept and Set-2{xj0, xj1, ..., xjv} in which the gradients are dropped. Dur-ing forward, we track all the activations for Set-1 and onlytrack the extracted features for Set-2. Then we concatenatethe extracted features and do fully forward and backward onthe temporal model ft.# forward without gradient calculationwith torch.no_grad():# cache sampled nodesctx.save_for_backward(inputs[idx])# cache sampled indexctx.idx = idxreturn ydy = dy[ctx.idx]nodes = ctx.saved_tensorswith torch.enable_grad():d_nodes = torch.autograd.grad(y, nodes, dy)# gradients w.r.t inputsd_inputs = zeros.fill(ctx.idx, d_nodes)return d_inputs83050第i层的输出0第i+1层的输出0值0查询0键的注意力权重0点积注意力0图5. Dot-ProductAttention层上的SBP。在这个例子中,保留比例为1/3。只有采样的节点(灰色)在模型训练中用于梯度计算。03.2.2 视频Transformer0对于短期视频任务,如动作识别,视频Transformer(例如TimeSformer [3]和Video Swin Transformer[33])实现了更高的准确性。在这里,我们将SBP应用于视频Transformer。在树模型中,一个时间位置上的输入节点与空间模型中其他时间位置上的节点是独立的,因此我们可以轻松地将SBP应用于它。然而,在视频Transformer中,不同时间位置上的节点彼此之间是相互依赖的,这是由于点积注意力层。我们通过逐层应用SBP而不是模型级别应用SBP来解决这个问题。图5显示了如何将SBP应用于Transformer层。对于所有的层,都会采样相同的节点(图5中的灰色节点)。在点积注意力中,所有的键和值节点都与每个查询节点相关。给定输出中采样节点的梯度,为了准确计算查询中相应节点的梯度,需要采样所有的键和值节点。采样所有的键和值节点只会稍微增加内存消耗,因为在点积注意力中,注意力权重占据了大部分GPU内存使用量。假设查询、键和值的形状为R(h×d)×n,注意力权重的形状为Rh×n×n,其中h、d和n分别是头的数量、维度和令牌的数量。0算法1SBP的类似于Pytorch的伪代码,用于对任意操作f进行前向和后向传播。0# f: 一个任意操作 # idx: 采样的梯度保留的索引0# 前向函数 def FORWARD(ctx, inputs, idx):0y = f(inputs)0# 后向函数 def BACKWARD(ctx,dy):0# 带梯度计算的重新前向 nodes =nodes.detach().requires_grad_(True) y = f(nodes)0每个头的维度和令牌数量分别为h和n。在视频Transformer中,令牌的数量n远大于头的维度d(例如,在视频SwinTransformer中,n = 392,d =32),因此注意力权重占据了大部分GPU内存。在视频Transformer中,我们将几个顶层(本文中为3层)作为“时间模型”,完全进行反向传播,并且仅将SBP应用于底层(空间模型)。03.3. 高效实现0算法1展示了对任意操作f的实现,包括StT中的空间模型以及VideoTransformers中的点积注意力和多层感知机(MLP)。在前向传播过程中,输出是在不跟踪激活的情况下产生的。只有需要计算梯度的采样输入才会被保存用于反向传播。在反向传播过程中,SBP对采样输入进行重新前向传播和反向传播以计算梯度。这可以充分利用深度学习框架中的“自动求导引擎”,并且具有很小的开销。03.4. 空间和时间复杂度0对于StT模型,M s 是空间模型所需的内存,M c是时间模型所需的内存。因此,它的空间比率为(rM s + Mc) / (M s + M c),接近于r,因为M s 通常比M c大5倍到10倍[ 52 , 54 , 55 ]。对于VideoTransformers,d和n分别是多头注意力中的头维度和令牌数量。梯度计算所需的激活图为E2ESBPE2ESBPE2ESBPE2ESBPSwin-T15.24.45.83.20.220.210.290.26Swin-B32.58.68.04.60.430.410.570.52583060模型训练 K400(%) Epic-55(%) 内存(GB/gpu) Top-1Top-5 Top-1 Top-50Swin-T E2E 78.8 93.6 46.0 81.5 15.20FD 76.3 92.4 38.9 79.9 2.9 SBP 78.2 93.1 45.281.7 4.40Swin-B E2E 82.7 95.5 49.4 83.2 32.50FD 80.8 94.9 44.8 82.5 6.3 SBP 81.9 95.2 47.383.6 8.60表1. 使用Video Swin-T和-B进行动作识别的结果。这里SBP和FrameDropout(FD)的保留比率都为0.25。0Transformer层中的梯度计算包括2 × 输入(2hdn),QKV向量(每个向量大小为hdn),注意力权重(softmax之前和之后的2hnn)以及MLP 20(10 hdn),因此总共需要15 hdn + 2hnn的内存。SBP(如图5所示)将查询的内存减少到hdnr,注意力权重减少到2 hnnr,MLP减少到10hdnr。因此,空间比率为04 hdn015 hdn + 2 hnn = r (11 d0n + 2) + 4 d0(11 d0n + 2) + 4 d0n (4)0对于这两个模型,空间比率几乎与采样率r成正比,因此如果r很小(即0.25),SBP的内存减少可以显著。这是因为在训练过程中,最消耗内存的部分是缓存用于梯度计算的激活值,但是使用SBP,我们只需要缓存采样的激活值。关于时间比率,假设前向传播和反向传播时间相等,则总体比率为1+2r。0当我们执行(1 + r) × 前向传播和r × 反向传播时,r为2。04. 动作识别实验0我们通过将SBP应用于最先进的动作识别模型Video Swin [38 ]来评估SBP,并在Kinetics-400(K400)[ 24]和EPIC-Kitchens-55(Epic-55)[ 12]数据集上进行实验。K400包含约240K个训练视频和20K个验证视频,涵盖400种动作。每个视频被剪辑为10秒。Epic-55包括在厨房环境中记录的非脚本活动(主要是烹饪)的主观视角视频。每个视频的片段都标有一个动词和一个名词。我们按照之前的工作[ 50]使用他们的训练和验证集,并报告动词分类的Top-1和Top-5准确率。04.1. 实现细节0我们使用每个GPU上批大小为4的Video Swin-T和-B [ 38]作为主干进行训练。我们分别使用学习率2.5e-4和7.5e-5对Swin-T和-B进行训练,训练模型30个epochs。其他超参数保持不变。02 它由norm ( hdn ) → fc ( 4 hdn ) → activation ( 4 hdn ) → fc ( hdn)组成,其中fc的隐藏大小可能会有所变化,但在大多数视觉Transformer中为4 hd [ 3 , 33 ]。0模型 内存(GB/个GPU) 速度(s/迭代)0无 有 无 有0表2.SBP在有无梯度检查点的情况下的内存使用和训练速度的基准测试。SBP的保留比率为0.25,每个GPU的批量大小为4。内存使用使用torch.cuda.max_memory_allocated()进行测量。速度在单个Nvidia A100显卡上进行测量。0训练 采样 维度 K400(%) Epic-55(%)0SBP 时间 78.2 93.1 45.2 81.7 空间和时间 78.3 93.0 45.4 81.30表3.时间(逐帧)和空间-时间采样(3D棋盘格)达到了可比较的结果。模型为Video Swin-T,SBP的保留比率为0.25。0与原论文[ 38 ]相同。在推理过程中,我们按照之前的工作[50],对4×3个视图(即4个均匀时间裁剪和3个从左上、中心和右下裁剪的空间裁剪)进行预测平均,用于K400,并仅使用中心裁剪用于Epic-55。对于SBP,我们沿时间维度使用均匀随机采样器,使得与一帧对应的节点要么全部采样,要么全部丢弃。采样的节点在所有层中保持不变。对于Video Swin-T,SBP应用于前8层,层次为{2,2,6,2};对于VideoSwin-B,SBP应用于前18层,层次为{2,2,18,2}。04.2. 评估结果0与先前的工作相比较。在表1中,我们将SBP(保留比率为0.25)的准确性和内存使用与使用VideoSwin在K400和Epic-55上的现有训练策略进行了比较。结果显示,SBP仅使用了E2E训练所使用内存的25%,在K400上仅下降了约0.7%的Top-1准确性,在Epic-55上下降了约1.0%。帧丢弃(FD)[ 1]是一种简单的帧选择方法,只处理一部分均匀采样的帧。与SBP只丢弃反向路径不同,FD会同时删除前向和反向路径的丢弃帧。表1显示,尽管FD的内存消耗最少,但它导致了更显著的准确性下降,特别是在以时间为主的数据集Epic-55上。这证明了在训练和推理过程中保留所有前向路径的重要性。0SBP能与其他高效训练策略配合使用吗?我们验证了SBP是否与其他节省内存的方法相辅相成。由于梯度检查点[ 9]被广泛用于节省内存,我们报告了将SBP与梯度检查点集成时的内存和速度。如图所示TRN [52]Feat. Extract.55.31 × 12E2E56.88 × 14.6SBP (0.25)56.78 × 5.6SBP (0.125)56.98 × 4.3LSTR [54]Feat. Extract.56.81 × 5E2E59.28 × 32SBP (0.25)59.18 × 12.2SBP (0.125)59.58 × 783070方法 训练 mAP(%) GPU内存(#GPU × GB)0表4. 使用固定特征提取器(Feat.Extract.)和端到端(E2E)训练的SBP与TRN和LSTR的比较。0如表2所示,SBP的内存消耗与具有检查点的标准端到端训练相似,但速度更快约30%。当将梯度检查点应用于SBP时,与仅使用SBP相比,额外的内存可以节省约40%。此外,我们测试了将混合精度(使用O1优化级别)应用于SBP。结果显示,这可以在不损失准确性的情况下,使Swin-T的GPU内存节省约50%。0我们能在空间和时间维度上都放弃梯度吗?到目前为止,与一帧对应的节点要么全部保留,要么全部丢弃。为了验证SBP是否可以应用于空间和时间维度,我们使用3D棋盘格模式实现了空间-时间梯度丢弃。从表3可以看出,时间采样(逐帧)和空间-时间(3D棋盘格)采样的准确性相当,这表明SBP在空间采样中也能很好地工作。这个结果表明了将该方法应用于图像领域的潜力。05. 时序动作检测实验0为了验证SBP在长期视频任务中的效率,我们将其建立在多个最先进的方法[52,54,55]之上,用于未修剪视频中的时序动作检测。实验在THUMOS'14[22]数据集上进行,该数据集包含约20小时的视频和20个体育动作。由于其训练集只包含无法用于训练时序动作检测模型的修剪视频,我们遵循之前的工作[52,54],在验证集(200个视频)上进行训练,并在测试集(213个视频)上进行评估。大多数实验在8个Tesla 16GBV100上进行,只有需要更多内存的端到端训练在8个Tesla32GB V100上进行训练。05.1. 在线动作检测0给定一个实时视频流,在线动作检测试图在不看到未来的情况下检测每一帧中发生的动作。现有的方法采用了空间-时间(StT)范式,其中空间模型是预训练的,用于从视频中提取特征。0帧,而时序模型在特征序列上操作以捕捉长距离上下文。我们采用了两种最先进的方法(即TRN [52]和LSTR[54]),并使用RGB作为输入进行实验。特别地,TRN基于循环网络进行时序建模,而LSTR使用多个级联的Transformer来捕捉长期和短期依赖关系。05.1.1 实现细节0我们遵循现有方法[52,54]的常见设置。具体而言,空间模型是在K400上预训练的ResNet50。模型的批量大小为16,初始学习率分别为1e-6和5e-5,用于TRN和LSTR。注意,TRN和LSTR都冻结了它们的空间模型,只训练时序模型。TRN以64帧作为输入,LSTR以160帧(即长期128帧和短期32帧)作为输入。当将其转换为使用SBP的端到端训练时,我们将空间模型的学习率设置为初始学习率的约10倍较小(此设置在后面的章节中得到验证)。由于TRN和LSTR都是StT模型,我们使用了第3.2节中描述的实现。采用每帧平均精度(mAP)来评估在线动作检测的性能。05.1.2 评估结果0结果如表4所示。首先,冻结骨干网络导致TRN和LSTR的mAP分别下降了1.5%和2.4%。其次,通过应用保留比率为0.125的SBP,我们可以使用相似的mAP训练模型,但只使用了22%的内存,相比端到端训练。第三,一个有趣的观察是,保留比率r=0.125的SBP甚至略高于端到端训练,这可能是因为SBP可以作为一种正则化方法,减轻了相对较小的THUMOS数据集上的过拟合问题[47]。第四,LSTR的改进大于TRN,这表明更强的时序模型可以更多地受益于端到端训练。05.1.3 消融研究0如何采样节点?SBP的一个关键方面是如何采样应用SBP的最顶层的输出节点(简称为候选节点)。我们检查了以下三种采样方法。(1)均匀随机采样器将候选节点均匀地分成沿时间维度的块。每个块的大小为1/r。我们在每个块内随机采样1个节点。(2)多样性特征采样器首先根据大小对候选节点进行排序,然后在排序后的节点列表上进行均匀随机采样。(3)多样性梯度采样器...0在原始论文中,他们将RGB和光流合并作为输入。为了简化问题,我们在实验中只使用RGB。83080训练 保留比率 mAP(%) GPU内存(#GPU × GB) 0.3 0.4 0.5 0.6 0.7 平均0特征提取 - 43.15 35.84 28.36 19.89 11.96 27.84 8 × 3 端到端 - 46.14 39.86 32.02 23.29 14.5631.17 8 × 260SBP 0.5 45.36 38.72 31.46 22.74 14.01 30.46 8 × 12 0.25 45.12 37.80 30.44 22.81 14.52 30.14 8× 6 0.125 46.40 38.50 29.95 20.37 11.82 29.41 8 × 50表5. THUMOS'14上的时间动作定位结果。为了简单起见,我们只使用RGB帧作为输入。请注意,对许多研究团队来说,端到端训练几乎是不可能的,但是带有保留比率0.5的SBP可以在主流GPU(12GB)上进行训练。0图6.使用不同的采样方法和初始学习率对空间模型的mAP性能的影响。时间模型的初始学习率为5e-5。0采样器根据候选节点的梯度大小进行排序,然后对排序后的节点列表进行均匀随机采样。从图6的结果中,我们可以观察到:1)多样特征采样器实现了最好的mAP;2)这三个采样器的mAP非常相似,这表明我们的方法对采样器具有鲁棒性。由于均匀随机采样器的mAP与其他采样器相当,但实现起来更简单(从奥卡姆剃刀的角度来看更可取),我们将其作为后续实验的默认采样器。0如何设置空间模型的学习率?我们进行了一些经验研究,以确定使用SBP训练StT模型的最佳学习率。结果如图6所示。我们观察到:1)对于所有保留比率,空间模型的最佳学习率约为时间模型的
下载后可阅读完整内容,剩余1页未读,立即下载
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_lunwen.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/default.jpg!1)
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
会员权益专享
最新资源
- 京瓷TASKalfa系列维修手册:安全与操作指南
- 小波变换在视频压缩中的应用
- Microsoft OfficeXP详解:WordXP、ExcelXP和PowerPointXP
- 雀巢在线媒介投放策划:门户网站与广告效果分析
- 用友NC-V56供应链功能升级详解(84页)
- 计算机病毒与防御策略探索
- 企业网NAT技术实践:2022年部署互联网出口策略
- 软件测试面试必备:概念、原则与常见问题解析
- 2022年Windows IIS服务器内外网配置详解与Serv-U FTP服务器安装
- 中国联通:企业级ICT转型与创新实践
- C#图形图像编程深入解析:GDI+与多媒体应用
- Xilinx AXI Interconnect v2.1用户指南
- DIY编程电缆全攻略:接口类型与自制指南
- 电脑维护与硬盘数据恢复指南
- 计算机网络技术专业剖析:人才培养与改革
- 量化多因子指数增强策略:微观视角的实证分析
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)