我对tf.layers.conv3d有疑问。 如果我理解正确,它会输入形状
(批处理x深度x高度x宽度x通道)
其中的渠道应仅为一个;并给定一个过滤器(深度x高度x宽度),它会创建#filters具有相同形状的不同过滤器以创建#filters输出通道,并将它们与输入进行卷积以获得形状的输出
(批量x深度x高度x宽度x num_filters)
首先,我现在是吗? 问题是:在我看来,这一层不遵守约束卷积层形状的输入,输出,过滤和步幅约束的法律,即:
(W-F + 2P)/ S +1
如here所述。相反,输出深度的宽度和高度始终与输入相同。怎么了?感谢您的帮助!
答案 0 :(得分:0)
kinda true but if input shape, filter shape and strides:
[Batch, depth, height, width, channels]
[filter_depth,filter_height,filter_width,in_channels,out_channels]
[1,s1,s2,s3,1]
output shape
[Batch,int(depth/s1),int(height/s2),int(width/s3),out_channels]
tf.layers.conv3d是tf.layers.convolution的特例
了解填充算法: https://www.tensorflow.org/api_guides/python/nn#Convolution
用于了解卷积运算: https://www.tensorflow.org/api_docs/python/tf/nn/convolution