没有合适的资源?快使用搜索试试~ 我知道了~
153一种高效训练视频模型的多重网格方法吴朝元1,2RossGirshick2何凯明2ChristophFeichtenhofer2PhilippKr aéhenb uéhl11德克萨斯大学奥斯汀分校2Facebook AI Research(FAIR)摘要训练有竞争力的深度视频模型比训练其对应的图像模型慢一个数量级。训练速度慢导致研究周期长,阻碍了视频理解研究的进展。根据用于训练图像模型的标准实践,视频模型训练使用固定的小批量形状:特定数量的剪辑、帧和空间大小。然而,什么是最佳形状?高分辨率模型表现良好,但训练缓慢。低分辨率模型训练速度更快,但准确度较低。受数值优化中多重网格方法的启发,我们建议使用具有不同时空分辨率的可变小批量不同的形状来自于在多个采样网格上重新分配训练数据。在缩小其他维度的同时,通过扩大小批量和学习率我们根据经验证明了一种通用且强大的网格计划,该计划可以为不同的模型(I3 D,非本 地 , SlowFast ) , 数 据 集 ( Kinetics , Something-Something,Charades)和训练设置(有和没有预训练,128 GPU或1 GPU)提供显着的开箱即用的训练作为说明性示例,所提出的多重网格方法训练ResNet-50SlowFast网络速度提高4.5倍(挂钟时间,相同硬件),同时还提高了Kinetics-400的准确性(绝对值+0.8%)与基线训练相比。代码在网上可用。11. 介绍在视频上训练深度网络(CNN [27])比训练2DCNN图像模型的计算量更大,可能是一个数量级长时间的训练会减慢视频理解研究的进展,阻碍扩展到真实世界的数据源,并消耗大量的能源和硬件。这种缓慢的训练是不可避免的,还是有特定于视频的优化策略可以加速训练?使用小批量优化方法(例如,SGD)处理一个小批次1github.com/facebookresearch/SlowFast/blob/master/projects/multigrid807570650 5 10 15 20 25 30挂钟培训时间(小时)图1. 训练时间VS在Kinetics-400上使用ResNet-50 SlowFast网络获得顶级精度。每个点对应于针对特定数量的时期训练的多重网格训练,本文开发的方法,获得了显着更好的权衡比基线训练.例如,在默认设置下,多重网格训练的速度提高了4.5倍,同时达到了更高的(+0.8%绝对)top-1精度。这里的所有方法以及本文中的所有方法都使用相同的硬件和软件实现。每次迭代。小批量形状B×T×H×W2(小批量大小×帧数×高度×宽度)在整个训练过程中通常是恒定的各种各样的考虑-选择该输入形状时,通常的启发是为了提高精度而使T×H×W尺寸变大,例如,如图所示[9,45,47]。然而,这种启发式方法只是一种可能的选择,而且通常存在权衡。例如,可以使用更少数量的帧和/或空间大小,同时同步地增加小批量大小B。通过这样的交换,可以用更少的挂钟时间处理相同数量的epoch(通过数据集),因为每次迭代处理更多的结果是训练速度更快,准确度更低。本文的中心思想是避免这种权衡-即,在不损失精度的情况下具有更快的训练-通过在训练期间使小批量形状可变。通过将小批量中的输入视频剪辑视为在采样网格(待定义)上采样的原始视频信号,我们可以将其连接到用于数值计算的多重网格方法2为了清晰起见,我们省略了通道维度(RGB为3)。多重网格速度提高4.5倍,76.4%基线百分之多网格培训(我们的)基线训练确认top-1准确度154计算分析[1]。这些方法利用由粗到细的网格来加速优化。直观地说,如果我们在训练早期使用具有相对小的时间和空间维度的大型迷你批次(“粗网格”),然后使用具有大的时间和空间维度的小型迷你批次(“细网格”),那么SGD可以平均更快地扫描数据,同时最终求解高精度模型,类似于粗网格如何在多重网格数值求解器中更快地解决更细网格上的问题[1]。多重网格训练是可能的,因为视频模型由于权重共享操作而与可变空间和时间维度的输入数据兼容(例如,卷积)。此外,CNN在多个尺度上学习模式是有效的,正如在使用数据增强进行训练时所观察到的那样[18,26,38]。我们观察到类似的多尺度鲁棒性和泛化与多网格训练。我们提出的多重网格训练方法是简单而有效的。它很容易实现,通常只需要对数据加载器进行很小的更改。从经验上讲,它适用于默认的学习率计划和已经使用的超参数。无需调谐。此外,多网格训练对于不同的模型(I3D [3],非本地[47],SlowFast [9]),数据集( Kinetics-400 [23] , Something-Something V2 [14] 和Charades [36]),初始化(随机和预训练)和硬件规模(例如,128个GPU或1个GPU)。我们observe一致的加速和性能增益在所有情况下,无需调整。举个例子,我们训练一个慢快网络-在大规模的Ki- netics数据集上,在挂钟时间内的工作速度提高了4.5倍(图(1)同时,也要达到更高的准确度,活泼(绝对值+0.8%)。我们希望多网格训练所提供的这些好处将使视频理解的研究更容易获得,可扩展性和经济性。2. 相关工作3D CNN视频模型扩展了2D CNN,可以对空间和时间模式进行建模。它们是目前视频理解的最新技术[3,9,12,19,30这些方法对于训练和推理来说都是计算昂贵的[43,49]。最近的一些研究提出了使用有效的时间模块[2,5,19,21,28在本文中,我们证明了最先进的有效模型[9]的训练时间仍然可以显着减少。有效的培训也可以通过,优化方法(例如,[8,24,33,39]),预训练[3,11],分布式训练[13,50],或硬件[22]和软件设计[4,6]的进步。在本文中,我们提出了一个互补的方向,利用可变的小批量形状进行快速训练。与我们的方法相关,Wanget al. [47] Feichtenhoferet al.[10]初始化较大的模型小一点的训练有素的人这些方法也可以潜在地加速训练,并且(如稍后所见)是多重网格训练的特殊情况。分割[16]和分类[18,38]中的多尺度训练然而,小批量形状保持固定[16,18,38]。另一方面,多重网格训练使用可变的小批量形状。He等人[17]更改输入形状,但固定小批量大小。这些方法表明,使用可变尺度的训练可能是有益的。多网格训练也具有相同的属性。多重网格方法最初是为数值边值问题提出的,后来发展成为计算数学的一个完整领域[1]。它们典型地涉及通过粗和细问题的循环迭代,并利用可以有效地解决粗问题以加快整体问题解决的事实。他和Xu [15]通过识别传统多重网格方法中的步骤与卷积神经网络中的运算符之间的对应关系,将多重网格方法与深度网络联系起来。在本文中,我们从一个更抽象的角度来加速视频模型的训练,从多重网格的概念3. 视频模型的多重网格训练为了开发我们的多网格训练方法,我们将考虑参考视频模型(例如,C3D [43],I3D [3]),其由基线小批量优化器(例如,SGD),该公司生产B×T×H×W形状的小批量产品(小批量尺寸×帧数×高度×宽度)一定数量的时期(例如,100)。时空形状T×H×W根据采样网格从训练数据集中的恢复源视频产生,是由时间跨度、空间跨度、节奏来指定的ral stride和spatial stride(在§3.1中定义)。这些概念直观地对应于网格基线优化器保存在所有训练迭代中保持小批量形状常数提出的多重网格方法。受数值分析中的多重网格方法的启发,该方法解决了交替的粗网格和细网格上的优化问题,本文的核心观察是用于训练视频模型的底层采样网格在训练期间不需要是恒定事实上,我们将在实验中证明,通过在训练过程中改变采样网格和小批量大小,可以大幅降低训练复杂度(就总FLOP和挂钟时间而言),同时实现与基线相比类似的准确度。支持多重网格训练的基本概念是在分配给每个小批处理更多示例的计算与分配给每个小批处理更多示例的计算之间取得平衡。分配给处理更大的时间和空间维度的计算控制155W为了达到这种平衡,我们将考虑通过使用具有其自己的跨度和步幅的新采样网格重新排列源视频而形成的时间和空间形状t×w×h当改变输入形状时,我们使用满足关系b·t·h·w=B·T·H·W的缩放的小批量大小b,或者T H Wb=B,(1)东惠其 产 生 的 计 算 ( 以 FLOP 为 单 位 ) 大 致 等 于 典 型3DCNN的上述基线小批量的计算。3我们的多重网格方法使用一组采样网格和一个网格计划,该计划确定在每次训练迭代中使用哪个网格。如果不管网格的选择如何,训练都运行类似数量的epoch,那么通过平均使b>B,整个训练过程可以使用更少的总FLOP,并且具有更低的挂钟时间。我们将通过实验研究两个问题:(i)是否有一组网格,其网格时间表可以导致更快的训练而不损失准确性?和,(ii)如果是,它是否鲁棒地推广到新的模型和数据集-修改?在下文中,我们将详细阐述核心的多重网格训练概念(第3.1节),提供一个实现(即,一组网格和一个网格时间表),在实践中工作得很好(§3.2),然后探索消融和泛化实验(§4)。3.1. Multigrid培训理念采样网格。数据集中的每个视频都是从物理世界生成的基础连续信号中采样的离散信号。视频具有一定数量的帧和每帧的像素,其通过记录设备的时间和空间分辨率(其取决于许多相机属性)与物理世界当在训练小批量中使用这些源视频之一时,采样网格用于对其进行重采样。一维(空间或时间)的采样网格由两个量定义:一个跨度和一个步幅。其单位定义为w.r.t.源视频被重新采样。对于时间维度,单位是帧,而对于空间维度,单位是像素。跨度是网格的支撑尺寸,并定义网格覆盖的持续时间或区域步幅是采样点之间的间距划分3实际上,由于四舍五入的原因,计算不是完全相等的(例如,w可以是0(2)、填充,以及,例如,完全连接或非局部层。我们忽略这些细微之处,只使用近似的FLOP作为粗略的设计原则所有的加速都是通过挂钟时间来衡量的。4在实践中,类似数量的时期(例如,在2的因子内)步长的跨度给出了网格中的点数,这决定了输入数据的形状注意,不同的网格可以产生相同的数据形状,这意味着如果采样网格中的变化也改变了数据形状,则小批量大小将仅改变(等式(1))我们注意到,如果基线优化器使用多尺度空间数据增强,则空间采样网格已经出现在基线优化器中[7,26,37]。在我们的多网格视角下,多尺度空间数据增强改变了空间按比例调整重置网格的跨度和步幅,以便生成的小批始终具有相同的H×W空间形状。相反,我们将通过不同的因子来改变跨距和步幅,这将导致每个网格的空间形状h×w不同(时间维度也是如此网格调度。我们使用小批量优化器,其最基本的调度单元是一个小批量迭代,其中执行一个模型更新。训练时间表由一定数量的小批量迭代组成,通常用epoch表示。例如,训练可以由100或200个迭代时期组成。在这个总体训练计划中,通常让学习率变化,例如根据迭代或时期定义的计划对其进行退火安排其他训练属性也是可能的。我们的多重网格方法的核心是调度在整个训练过程中使用的采样网格的想法。当改变网格时,小批量大小总是根据等式(1)缩放,使得小批量FLOP大致保持恒定。网格调度是高度灵活的,ad-mitting一个大的设计空间,从简单地循环通过一系列预定义的网格,以使用随机网格。在第3.2节中,我们将介绍一个在实践中效果良好的随机分层多重网格属性。多重网格训练依赖于数据和模型的两个属性。首先,在不同的网格上重新分配数据需要一个合适的操作员。对于视频,该运算符可以是应用于源离散信号的重构滤波器,随后计算由网格指定的点处的值(例如,双线性插值)。其次,模型必须与在不同网格上重新采样的输入兼容,因此在训练期间可能具有不同的形状。由在重新采样的维度之间使用权重共享的函数组成的模型,例如,2D和3D卷积、递归函数和自注意是兼容的,并且覆盖了大多数常用的架构;全连接层,除非它们的输入被池化到固定大小,否则是不兼容的。6我们将专注于使用2D和3D控制的模型,通常用于给定的数据集,即使是非常不同的模型。在两个视频之间,如果视频由具有不同属性的摄像机捕获(例如,从24 FPS视频到24帧跨度,来自30 FPS视频的24帧跨度这些属性可能是未知的,因此我们相对于源视频而不是物理世界来定义网格单元。6.如果存在一个合适的算子用于“重置”模型参数,使它们与新的输入形状兼容,那么这些参数仍然可以用于多重网格训练。这个概念可以与重量共享相结合,通过扩张或扩张模型滤波器来反映数据采样网格,尽管初步实验没有改善结果。1562√2√2216×8×4×2×1×迭代(a) 基线16×8×4×2×1×迭代(b) 长周期16×8×4×2×1×迭代(c) 短周期16×8×4×)2×1×············(T,H,W)2 2···(T,,)HW22···(T,H,W)迭代(d) 长+短周期图2. 一个通用的、鲁棒的网格计划(§3.2)。我们将多网格训练与标准基线训练进行对比。(a)基线训练方法通常在整个训练过程中使用固定的小批量形状。(b)多重网格长周期循环从小形状(具有大的迷你批量大小)到大形状(具有小的迷你批量大小)的输入,在每个形状上停留几个epoch。(c)多重网格短周期快速移动通过各种空间形状,在每次迭代时改变。(d)多重网格长+短周期(我们的默认设置)结合了长周期和短周期,并同时以两种频率在形状中移动。(b)、(c)和(d)中的深绿色点分别对应于长周期、完整短周期和长+短周期的一个完整周期。演化,以及非局部块形式的自注意操作[47];所有模型都以全局平均值长周期。我们使用的采样网格,导致在一个有序的序列S=4的基础小批量形状的非-T H W池化和单个全连接层作为分类器,这是惯例。培训和测试分布。 这项工作的重点是训练的多重网格方法,因此我们使用一个标准的推理方法,使用一个单一的形状的测试数据。然而,这种选择可能会在用于训练模型的数据分布和测试时使用的数据分布之间引入为了缩小这个差距,训练可以用一些数量的“微调”迭代来完成,这些迭代使用与测试分布更紧密对齐的见[42]。我们发现,这种微调提供了一个小的,但一致的改善。3.2. 实现细节多重网格训练涉及到采样网格的选择和网格时间表,这导致了丰富的设计空间。我们使用一个分层的时间表,其中包括以两种不同的频率交替小批量形状:一个长周期移动通过由各种网格生成的一组基本形状,在每个形状上停留几个时期,而一个短周期移动通过在当前基本形状“附近”的一组形状,在每个形状上停留一次迭代。这种分层网格时间表是沿每个维度减小尺寸:8B× 4×102×102,4B× T× H× W,2B× T×H×W和B×T ×H×W。这四种形状涵盖了直观的范围,在实践中效果很好。长周期与逐步学习率衰减时间表同步:对于每个学习速率阶段,在S形上的完整周期恰好发生一次。我们在每个形状上训练相同数量的迭代。我们使用一个简单的随机化策略来为每个训练迭代生成一个对于要在小批量中使用的每个视频,我们从指定范围中选择一个随机跨度,并设置步幅,以便在结果网格上采样时产生所需的形状。对于空间维度,该策略相当于使用双线性插值将随机裁剪转换为所需形状(类似于图像分类中使用的随机裁剪[18,26,38])。对于时间维度,该策略相当于选择随机的时间裁剪并对其帧进行子采样。跨距的取样范围在每个实验部分中规定。短周期。 短周期快速移动通过各种空间形状,在每次迭代时改变。默认情况下对于迭代i,令m=i(mod 3);如果m=0,则我们设置空间形状公司简介更详细地描述,并在图1中示出。二、本小节的其余部分提供了这种设计的细节,我们发现这种设计在实践中工作得很好在介绍了这些细节之后,我们将探讨在消融实验中什么样的设计决策是重要的。优化器我们使用具有动量的SGD和逐步学习率衰减时间表,因为这些是实践中的常见选择[9,18,26,43]。使用其他学习率调度和优化器也是可能的。每个实验部分给出了具体的时间表。到2×2;如果m=1,则使用2×2;否则,当前使用来自长周期的基本空间形状短周期可以单独应用或与长周期结合应用。再次使用等式(1)缩放小批量大小将相同的随机化网格策略应用于目标小批量形状的样本数据。学习率缩放。当小批量大小由于长周期而变化时,我们应用线性缩放规则[13]通过小批量大小缩放因子(因此可以是8×,4×,2×或1×)来调整学习率。我们发现这种调整-(T,H,W)···(,,)不HW422···(,,)不HW···222···(T,H,W)···2···(T,H,W)(T,H,W)2 2(T,,)HW22···(T,H,W)小批量大小157H不如果由于短周期而应用于小批量大小的变化,则分段是有害的,因此我们仅在长周期基础形状变化时调整学习速率。微调相位。如果基线优化器使用L个学习速率(LR)阶段,那么我们在前L-1个LR阶段应用长周期和短我们使用相应的第L阶段进行微调,以帮助匹配训练和测试类似于[42]。在微调迭代的前半部分,我们使用第L-1次学习率,在后半部分,我们使用最终(第L次)学习率。在微调时,我们使用短周期(作为数据扩充),但不是长周期。批次归一化。批量归一化(BN)[20]的行为取决于小批量统计。在传统的训练器中,恒定的小批量大小也是影响BN行为的超参数(例如,统计数据的噪声由于我们的多重网格方法使用可变的小批量大小,因此希望将其对BN的影响与训练加速的影响解耦。 以下启发式方法在实践中效果良好:我们用标准化的当短周期将总小批量增加2倍或4倍时,我们同样将BN子小批量大小分别增加到16和32。4. 动力学实验我们对Kinetics-400数据集[23]进行消融研究,该数据集用于先前的研究,需要将每个视频分类为400个类别之一。它包含240k的培训视频和220k的验证视频,我们在这些视频上报告结果。性能通过前1和前5的准确性来衡量。基 线 模 型 和 训 练 。 我 们 使 用 ResNet-50 ( R50 )SlowFast网络[9,18],具有32帧快速路径,速度比α=4,通道比β=18作为默认模型。输入帧以2的时间步幅采样。我们的基线训练配方遵循Feichtenhofer等人。[9]的文件。我们在128个GPU上运行了112k次同步SGD迭代 , 每 个 GPU 的 小 批 量 大 小 为 4 个 片 段 ( 1239 个epoch),初始学习率为0.8。 (We执行罪-§5中的GPU实验。)在迭代44k、72k和92k时,学习率降低10倍7我们使用10−4的权重衰减,0.9的动量和线性学习率从0.002到16k次迭代的预热[ 13 ]。输入剪辑是随机的224×224空间裁剪,这些裁剪来自随机调整大小的剪辑,以使短边∈ [256,340]像素。在测试时,我们每个视频采样10个剪辑,时间间隔,并结合预测与平均池以下[9,25,47]。我们使用224×224中心裁剪[7]我们使用逐步学习率时间表,而不是Feichtenhofer等人使用的余弦时间表。[9]这是因为它更常见。带有余弦时间表的结果可在补充材料中获得。默认测试[25,48],并在补充材料中使用其他设置显示结果我们使用基线训练方法,根据验证准确性选择这些训练和推理程序。我们采用完全相同的配方进行多网格训练实验,除了多网格特定的变化。这种选择可能会使多重网格训练处于不利地位,但它反映了一个现实的场景,即人们希望应用多重网格训练来加速已知的训练时间表,而无需进一步调整。评 价 加 速 因 子 是 在 P100 GPU 上 使 用 CUDA 9.2 和cuDNN 7.6.3的挂钟GPU训练时间。为了公平比较,所有方法都使用相同的硬件和软件实现。我们注意到,多重网格训练利用更大的小批量,这增加了数据加载吞吐量的要求。如果数据加载器没有得到适当的优化,或者使用了远程数据访问,那么训练可能会受到有了足够的本地磁盘和优化的数据加载器,训练通常不受IO限制。Multigrid培训详情。为了对具有小于H×W的空间形状h×w的数据进行采样,我们将默认随机短边间隔更改为[256h,340],注意在我们的实验中w=h对于时间维度,我们在[2,2T]中取具有随机步幅的t(t T)帧。4.1. 主要结果我们在图中比较了多重网格训练和基线训练。3.第三章。除了默认基线之外,还可以通过使用具有较大minibatch大小和学习率的较小时空形状来加速训练,因此我们还比较了这个基线变量。对于每种方法,我们使用范围从0.25×到3×基线epoch数(10239)的训练时间表进行实验,以研究训练时间和准确性之间的权衡 总的来说,多电网列车-与基线训练相比,ing总是能实现更好的权衡例如,使用长和短的多网格训练cycle算法的迭代次数仅为基线算法的1/ 3.4倍,训练时 间仅 为 基线 算 法的 1/ 4.5 倍 , 准确 率 为75.6%→76.4%。挂钟加速比大于迭代缩减因子,作为具有更小的空间/时间维度在现代GPU上更有利于并行化。长周期和短周期都改善了权衡,两者一起使用效果最佳。在图3中,我们还观察到,当训练≥1.5×epoch时,基线训练的准确性会下降。对于长周期和/或短周期,对于高达2.0× epochs的时间表,没有观察到精度下降,这表明可变网格可以帮助防止过拟合。在下文中,我们使用具有长周期和短周期以及比基线多1.5倍的epoch的多重网格训练作为我们的默认值,因为它获得了良好的权衡。1587570650 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40挂钟时间(以小时为单位)(所有方法的硬件和软件实现相同图3. 多网格vs.基线训练。每个点对应于一个使用特定调度选择训练的模型。注释表示相对于基线1.0×计划的训练时期例如,“1.5×”表示训练时间比默认的“1.0×”基线时间表多1.5倍(112k次迭代或12239个我们看到,多重网格训练的所有变体都比使用恒定小批量形状的基线训练。还要注意,多重网格训练可以更有效地遍历相同数量的epoch。4.2. 消融实验长周期设计。默认情况下,我们使用S=4的长周期形状和1.5×epoch时间表。在表1a中,我们探索使用较少的形状,其中我们取最后的S′
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功