Conv3d 与 Conv2d 之间的区别

Jia*_*Yue 6 python convolution neural-network deep-learning tensorflow

我对 conv2d 和 conv3d 函数之间的区别有点困惑。\n例如,如果我有一堆 N 个图像,高高宽宽,有 3 个 RGB 通道。网络的输入可以是两种形式\nform1: (batch_size, N, H, W, 3) 这是一个 5 阶张量\nform2: (batch_size, H, W, 3N ) 这是一个 4 阶张量

\n\n

问题是\xef\xbc\x8c 如果我将具有大小为 (N,3,3) 的 M 滤波器的 conv3d 应用到 f​​orm1 并应用具有大小为 (3,3) 的 M 滤波器的 conv2d

\n\n

它们的功能操作基本相同吗?我认为这两种形式在时间和空间维度上交织在一起。

\n\n

如果有人能帮助我解决这个问题,我真的很感激。

\n

Lau*_*Lau 4

如果你有一堆图像,你就有一个视频。您不能有两个输入表单。您有图像或视频。对于视频情况,您可以使用 3D 卷积,但未为其定义 2D 卷积。如果您按照您提到的方式堆叠通道(3N),则 2D 卷积会将堆栈解释为具有大量通道的一张图像,而不是堆栈。

请注意,使用 (batch, H, W, Channels) 的 2D 卷积与使用 (batch, H, W, Channels, 1) 的 3D 卷积相同。

  • 是的,但是通过 3D 卷积,您可以在不同的图像上移动过滤器。而不是一下子全部完成。例如,当您为 3D 卷积选择 [H, W, 2] 过滤器时,您可以分析视频中的前两个图像,然后分析第二个和第三个图像,然后分析第三个和第四个图像。这就是 3D 卷积背后的想法。如果选择3D卷积的第三个权重等于通道数,则与2D卷积相同。这回答了你的问题了吗? (3认同)