按照惯例,图像张量始终为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
答案 0 :(得分:1)
我看一下conv2D
层here的Keras文档,您会发现输入张量 的形状必须为4D。
conv2D图层输入形状
形状为(batch, channels, rows, cols)
的4D张量,如果data_format
是“ channels_first”或形状为(batch, rows, cols, channels)
的4D张量,如果data_format
是“ channels_last”。
因此,形状的第4个维度是强制性的,即使对于灰度图像而言,它仅是“ 1”。
因此,实际上,这不是性能提高的问题,也不不是缺乏简单性的问题,而仅仅是强制输入参数的形状。
希望它能回答您的问题。