美文网首页tensorflow
卷积-conv, depthwise conv, separab

卷积-conv, depthwise conv, separab

作者: Persistently | 来源:发表于2019-08-26 16:52 被阅读0次

    Contents:

    1. Convolution
    2. Depthwise Convolution
    3. Separable Convolution
    4. Group Convolution


    1. convolution (卷积)

    简单理解如下面图像所示,每个channel的图像与filter做卷积,然后将每个通道进行合并。
    

    具体步骤分解




    Reference:
    CNN中卷积计算的内存和速度优化


    2. Depthwise Convolution

    tf.nn.depthwise_conv2d(input, filter, strides, padding, rate=None, name=None, data_format=None)

    depthwise_conv2d将不同的卷积核独立地应用在in_channels的每个通道:我们一般对于三通道图像做卷积,都是先加权求和再做卷积(注意先加权求和再卷积与先卷积再加权求和结果一样),形象化描述就是我先把3通道压扁成1通道,在把它用x个卷积核提溜成x通道(或者我先把3通道用x个卷积核提溜成3x个通道,再分别压扁成得到x通道); 而depthwise_conv2d就不加权求和了,直接卷积,所以最后输出通道的总数是in_channels*channel_multiplier

    Reference:
    TensorFlow网络操作API_上


    3.Separable Convolution

    tf.nn.separable_conv2d(input, depthwise_filter, pointwise_filter, strides, padding, name=None)

     Depthwise Separable Convolution 是将一个完整的卷积运算分解为两步进行,
     即 Depthwise Convolution 与 Pointwise Convolution。
    

    1). Depthwise convolution

        Depthwise Convolution完成后的Feature map数量与输入层的通道数相同,无法扩展Feature map。
        而且这种运算对输入层的每个通道独立进行卷积运算,
        没有有效的利用不同通道在相同空间位置上的feature信息。
        因此需要Pointwise Convolution来将这些 Feature map 进行组合生成新的 Feature map。
    

    2).Pointwise Convolution

     Pointwise Convolution的运算与常规卷积运算非常相似,
     它的卷积核的尺寸为 1×1×M,M为上一层的通道数。
     所以这里的卷积运算会将上一步的map在深度方向上进行加权组合,
     生成新的Feature map。有几个卷积核就有几个输出Feature map。
    

    Xception architecture:

    Reference:
    卷积神经网络中的Separable Convolution


    4. Group convolution (分组卷积)

    最早见于AlexNet——2012年Imagenet的冠军方法,Group Convolution被用来切分网络,使其在2个GPU上并行运行




    Reference
    Convolution VS Group Convolution
    A Tutorial on Filter Groups (Grouped Convolution)


    Dilated convolution


    Deformable convolution



    Reference:
    1. Depthwise卷积与Pointwise卷积

    相关文章

      网友评论

        本文标题:卷积-conv, depthwise conv, separab

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