美文网首页
《X3D: Expanding Architectures fo

《X3D: Expanding Architectures fo

作者: ce0b74704937 | 来源:发表于2021-03-27 10:50 被阅读0次

    论文地址:https://arxiv.org/abs/2004.04730
    代码地址:https://github.com/facebookresearch/SlowFast

    该篇文章也是Facebook的作品,为什么说也,因为它是slowfast之后出的,而且可以理解为是slowfast思路上的改进版本,代码仓库和slowfast是一个仓库。文章说它的启发来自于之前2D高效网络,将扩展(expand)操作应用到3D卷积网络中。但是由于实验方式,网络结构,对标baseline,还有文章也提到了slowfast中计算量较复杂的slow-path是否是必要的,所以我认为它其实就是slowfast网络思路的改进,虽然它的网络结论不完全来自于slowfast,而且纯实验。

    该文章的实验方式也很人工,没有用的nas,完全人工搜索出来,所以理论上没有太多需要解释的地方。只是实验结果从速度和精度都优于slowfast,所以大概本博客大概介绍一下它的实验思路。

    首先文章提出几个网络可以拓展的维度,如下图所示


    1.png

    图中所有的\gamma都是扩展对应维度的因子,下面解释一下图中各个参数对应维度的含义:

    • \gamma_s作用的维度是空间分辨率
    • \gamma_t作用的维度是时间维度的分辨率
    • \gamma_{\tau}作用的维度也是时间维度的分辨率
    • \gamma_d作用的维度是网络的层数,即网络深度depth
    • \gamma_w作用的维度是网络中特征的通道数,即网络宽度width
    • \gamma_b作用的维度是残差层的特征通道数,即残差层的宽度width

    上述有两个因子参数是作用在时间维度的,在此特别说明一下,增加输入视频的时长可以增加\gamma_t的意思是,也可以降低视频的采样率\gamma_{\tau}

    定义好上述因子后,接下来就是做实验了,实验思路就是控制变量法,每次只变动一个参数,且变动参数使得网络的计算复杂度变为之前的2倍左右,最初的网络名为X2D,当下表格所有因子为1时即为X2D网络结构,最终文中的X3D结构有几个,且都是通过实验搜索出来的。


    2.png

    上述实验步骤可以参考下图,在保持X2D两倍计算量的情况下,分别修改六个因子中的其中一个,可以看出修改\gamma_b得到的效果最好,同理在此基础上继续修改六个因子,得到修改\gamma_{\tau}效果最好,然后依次将实验进行下去。

    3.png

    因为上述实验是离散的,所以在给定一定复杂度的情况下,只按照上述操作无法给出给定复杂度的模型。文章提出了backward contraction,其实就是在最后一步的时候按照复杂度要求修改对应因子的数值。比如最后一次是修改帧率使得帧率为之前的2倍,但是为了迎合给定复杂度的要求,可以将帧率因子修改为<2的某个数值。这里拿X3D-S这个模型来说明,X3D-S模型本来是第7次扩展后的结果,按照每次扩展两倍的计算量来说的话,在X2D计算量为20.67M FLOPS的基础上扩展2^7倍,也就是20.67\times 2^7=2645.76M FLOPS \approx 2.6G FLOPS,但是文章有要求X3D-S模型的计算量要\leq 2GFLOPS,所以最后一次不是将\gamma_t扩大两倍,最终X3D-S模型计算量为1.96G FLOPS。其他模型类似计算出来,具体参数如下所示:

    4.png

    X3D的基本思路就这些,具体实验结果可以查看原文。

    相关文章

      网友评论

          本文标题:《X3D: Expanding Architectures fo

          本文链接:https://www.haomeiwen.com/subject/szijqltx.html