Convolutional1D,Convolutional2D和Convolutional3D有什么区别?


10

我一直在学习卷积神经网络。在查看Keras示例时,我遇到了三种不同的卷积方法。即1D,2D和3D。这三层之间有什么区别?他们的用例是什么?是否有一些链接或参考来显示其用例?

Answers:


5

唯一的区别是输入空间的维度。卷积层的输入具有以下形状:

input_shape =(批处理大小,input_dims,通道)

  • conv1D的输入形状:(batch_size,W,channels)

    示例:1秒以44100 Hz采样的立体声信号,形状:(b​​atch_size,44100,2)

  • conv2D的输入形状:(batch_size,(H,W),channels)

    示例:32x32 RGB图像,形状:(b​​atch_size,32,32,3)

  • conv3D的输入形状:(batch_size,(H,w,D),channels)

    示例(比较棘手):1秒视频,以24 fps播放32x32 RGB图像,形状:(b​​atch_size,32,32,3,24)

什么是频道?

关键是要考虑通道对我们的输入数据意味着什么。卷积层对每个通道应用不同的滤镜,因此,卷积层的权重具有以下形状:

(kernel_size,num_channels,num_filter_per_channels)

例:

卷积层具有12个过滤器和大小为3的平方核矩阵。该层将为每个通道应用12个不同的过滤器。在前面给出的示例中:

  • 1秒立体声语音信号以44100 Hz采样,kernel_size = 3

    12 x 2 = 24个一维滤波器,每个通道12个滤波器

     Weigths shape: (3, 2, 12)
  • 32x32 RGB图像,kernel_size =(3,3)

    12 x 3 = 36个二维滤波器,每个通道12个滤波器

    Weights shape: (3, 3, 3, 12)
  • 1秒以24 fps播放32x32 RGB图像的视频,kernel_size =(3,3,3)

    24 x 12 = 288个三维滤镜,每个通道12个滤镜

    Weights shape: (3, 3, 3, 24, 12)

因此,确定通道的含义非常重要,因为每个通道都有自己的一组过滤器。对于第一个示例,似乎很容易确定立体声信号和RGB图像是不同的通道...它们的确通常这样命名(立体声通道,RGB通道)。在视频示例中,它更加模棱两可...将视频设置为以时间维度为通道的3D输入可能不是最佳选择,因为那样,时间帧的顺序无关紧要(对每个通道的滤波器进行求和),从而导致输入数据的固有时间动态丢失。一种更好的方法(取决于应用程序)是在循环神经网络中以2D卷积处理RGB图像。语音信号也一样

重要的是要注意,输入维度为D的信号可以被视为具有一个通道的D + 1维度的信号,但是所得到的特征空间可能不太具有代表性/ 有用

 (44100,2) --> expand_dimension(axis=-1)--> ((44100,2),1)

Keras代码支持示例

from keras import Input, Conv1D, Conv2D, Conv3D
#1D
in_ = Input(shape=(44100,2))
layer = Conv1D(filters=12,kernel_size=3)
out_ = layer(in_)
print("Weights shape: {}".format(layer.get_weights()[0].shape))

#2D
in_ = Input(shape=(32,32,3))
layer = Conv2D(filters=12,kernel_size=3)
out_ = layer(in_)
print("Weights shape: {}".format(layer.get_weights()[0].shape))

#3D
in_ = Input(shape=(32,32,3,24))
layer = Conv3D(filters=12,kernel_size=3)
out_ = layer(in_)
print("Weights shape: {}".format(layer.get_weights()[0].shape))

8

Conv1D用于类似于语音的输入信号。通过使用它们,您可以找到整个信号中的模式。例如,您有一个语音信号,并且有一个卷积层。每个卷积通过使用代价函数遍历语音以找到有意义的模式。

Conv2D用于图像。这个用例非常受欢迎。用于该层的卷积方法称为体积卷积。这意味着您有一个包含多个通道的二维图像,以RGB为例。在这种情况下,每个卷积滤波器应该是一个要进行卷积,实际上与图像互相关的三维滤波器,以便在图像上找到合适的图案。

3D

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.