按照惯例,图像张量总是3D:它的height
的一个维度,一个用于width
,第三个用于它的color channel
。它的形状看起来像(height, width, color)
。
例如,一批尺寸为256×256的128色图像可以存储在形状为(128, 256, 256, 3)
的4D张量中。颜色通道在此表示RGB颜色。另一个例子是一批128个灰度图像存储在形状为(128, 256, 256, 1)
的4D张量中。颜色可以编码为8位整数。
对于第二个示例,最后一个维度是仅包含一个元素的向量。然后可以使用形状(128, 256, 256,)
的3D张量代替。
这就是我的问题:我想知道使用3D张量而不是4D张量作为使用keras的深度学习框架的训练输入之间是否存在差异。
编辑:我的输入图层是conv2D
我看一下conv2D
层here的Keras文档,你会发现输入张量的形状必须是4D。
conv2D层输入形状 4D张量与形状:
(batch, channels, rows, cols)
如果data_format
是“channels_first”或4D张量与形状:(batch, rows, cols, channels)
如果data_format
是“channels_last”。
因此,形状的第四维是强制性的,即使对于灰度图像仅为“1”。 所以事实上,它不是性能提升的问题,也不是缺乏简单性,它只是强制性输入参数的形状。 希望它能回答你的问题。