DL Keras 框架图像输入的 3D-tensor 和 4D-tensor 的区别

kab*_*hel 6 python image shapes keras tensor

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

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

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

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

编辑:我的输入层是一个 conv2D

Gab*_*tin 3

如果您查看该层的 Keras 文档,conv2D会发现输入张量的形状必须是 4D。

conv2D 层输入形状
4D 张量,形状:(batch, channels, rows, cols)ifdata_format为“channels_first”或 4D 张量,形状:(batch, rows, cols, channels)ifdata_format为“channels_last”。

因此,形状的第四维是强制性的,即使对于灰度图像来说它只是“1”。
因此,事实上,这不是性能增益或缺乏简单性的问题,而只是强制输入参数的形状问题。
希望它能回答您的问题。