Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Conv3d与Conv2d之间的差异_Python_Tensorflow_Neural Network_Deep Learning_Convolution - Fatal编程技术网

Python Conv3d与Conv2d之间的差异

Python Conv3d与Conv2d之间的差异,python,tensorflow,neural-network,deep-learning,convolution,Python,Tensorflow,Neural Network,Deep Learning,Convolution,我对conv2d和conv3d函数之间的区别有点困惑。 例如,如果我有一个H高W宽的N个图像堆栈,以及3个RGB通道。网络的输入可以是两种形式 表1:(批次大小,N,H,W,3)这是一个秩5张量 形式2:(批次大小,H,W,3N)这是一个秩4张量 问题是,如果我将带有M个大小为(N,3,3)的过滤器的conv3d应用于form1,并将带有M个大小为(3,3)的过滤器的conv2d应用于form1 它们是否具有基本相同的功能操作?我认为这两种形式在时间和空间维度上都有卷积 如果有人能帮我解决这个问

我对conv2d和conv3d函数之间的区别有点困惑。 例如,如果我有一个H高W宽的N个图像堆栈,以及3个RGB通道。网络的输入可以是两种形式 表1:(批次大小,N,H,W,3)这是一个秩5张量 形式2:(批次大小,H,W,3N)这是一个秩4张量

问题是,如果我将带有M个大小为(N,3,3)的过滤器的conv3d应用于form1,并将带有M个大小为(3,3)的过滤器的conv2d应用于form1

它们是否具有基本相同的功能操作?我认为这两种形式在时间和空间维度上都有卷积


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

如果你有一堆图像,你就有一个视频。不能有两个输入表单。你有图像或视频。对于视频,您可以使用3D卷积,而2D卷积没有定义。如果你像你提到的那样堆叠通道(3N),2D卷积将把堆栈解释为一个有很多通道的图像,而不是堆栈


请注意,具有(批次,H,W,通道)的2D卷积与具有(批次,H,W,通道,1)的3D卷积相同

我明白你说的话。在表2中,我确实将视频序列堆叠成一个具有3N个通道的大图像。但是这个3N通道图像具有与图像序列相同的时间信息。应用conv2d时,它仍将时间信息卷积在一起。所以我认为在这种情况下,它们的作用基本相同。我对这一点感到困惑。你认为这是正确的吗?是的,但是通过3D卷积,你可以在不同的图像上移动你的过滤器。而不是一下子。例如,当您为3D卷积选择[H,W,2]滤波器时,您可以分析视频中的前两幅图像,然后是第二幅和第三幅图像,然后是第三幅和第四幅图像。这就是三维卷积背后的想法。如果选择3D卷积的第三个权重等于通道数,则与2D卷积相同。这能回答你的问题吗?如果你有一堆图像,你就有一个视频。-还是多个通道?@gerrit这取决于你如何堆叠它们。如果创建一个新轴(H、W、C、N),则会有一个视频。因此,您应该在N轴上使用堆栈。如果将它们堆叠在C维度中,则只会有更多通道