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”。
所以实际上,这不是性能提升的问题,也不是缺乏简单性的问题,它只是强制输入参数的形状。
希望它能回答你的问题。
按照惯例,图像张量始终是三维的:一维表示 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)
ifdata_format
is "channels_first" or 4D tensor with shape:(batch, rows, cols, channels)
ifdata_format
is "channels_last".
所以形状的第 4 维是强制性的,即使它对于灰度图像只有“1”。
所以实际上,这不是性能提升的问题,也不是缺乏简单性的问题,它只是强制输入参数的形状。
希望它能回答你的问题。