DL Keras框架的图像输入的3D张量和4D张量之间的差异

时间:2019-03-15 12:19:10

标签: python image keras shapes tensor

按照惯例,图像张量始终为3D:一维为其height,一维为其width,第三维为其color channel。其形状看起来像(height, width, color)

例如,可以将一批256x256大小的128张彩色图像存储在形状为(128, 256, 256, 3)的4D张量中。颜色通道在这里代表RGB颜色。另一个示例是将一批128张灰度图像存储在形状为(128, 256, 256, 1)的4D张量中。颜色可以编码为8位整数。

对于第二个示例,最后一个维度是一个仅包含一个元素的向量。然后可以使用形状为(128, 256, 256,)的3D张量。

这是我的问题:我想知道使用3D张量而不是4D张量作为使用keras的深度学习框架的训练输入之间是否有区别。

编辑:我的输入层是conv2D

1 个答案:

答案 0 :(得分:1)

我看一下conv2Dhere的Keras文档,您会发现输入张量 的形状必须为4D。

  

conv2D图层输入形状
  形状为(batch, channels, rows, cols)的4D张量,如果data_format是“ channels_first”或形状为(batch, rows, cols, channels)的4D张量,如果data_format是“ channels_last”。

因此,形状的第4个维度是强制性的,即使对于灰度图像而言,它仅是“ 1”。
因此,实际上,这不是性能提高的问题,也不不是缺乏简单性的问题,而仅仅是强制输入参数的形状。
希望它能回答您的问题。