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

Difference between 3D-tensor and 4D-tensor for images input of DL Keras framework

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

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

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

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

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

我你看一下conv2D层的Keras文档here你会看到输入张量的形状必须是4D .

conv2D layer input shape
4D tensor with shape: (batch, channels, rows, cols) if data_format is "channels_first" or 4D tensor with shape: (batch, rows, cols, channels) if data_format is "channels_last".

所以形状的第 4 维是强制性的,即使它对于灰度图像只有“1”。
所以实际上,这不是性能提升的问题,也不是缺乏简单性的问题,它只是强制输入参数的形状。
希望它能回答你的问题。