在我的 Keras 模型摘要中无法理解 None

数据挖掘 喀拉斯 美国有线电视新闻网 图像分类
2022-03-01 03:53:24

我的模型

上面的代码是一个使用 Keras 构建的 CNN 模型的示例。第一层是一个卷积层,它将接收 的图像input_shape = (64, 64, 3),因此意味着图像的格式是 RBG。第一层的输出是(None, 62, 62, 32),但不应该是(62, 62, 32)从哪里来None另外,由于我的图像(64, 64, 3)不是意味着过滤器应该有 3 个维度来满足图像的颜色通道吗?

1个回答

第一层的输出是 (None, 62, 62, 32),但不应该是 (62, 62, 32)?无从何来?

None只是一个占位符,表示网络一次可以输入多个样本。如果您的输入形状是(64, 64, 3),则意味着您的网络可以同时保存一张图像。但是你想用不同长度的批次进行训练或同时预测多张图像,这就是它的原因(None, 64, 64, 3)

例如,如果您发送一批 10 张图像,您的形状将是(10, 64, 64, 3),如果您将其更改为 25,您将拥有(25, 64, 64, 3).

另外,由于我的图像是 (64, 64, 3),这是否意味着过滤器应该具有 3 个维度来满足图像的颜色通道?

Conv3D从技术上讲,您可以在图像上使用 3D 滤镜。然而,这不是人们为 RGB 图像所做的事情。可能是因为它给出的结果比使用 2D 更差。相反,您将 RGB 视为三个独立的 2D 通道,而不是一个 3D 通道。使用三个维度通常在视频中更相关,而不是使用时间作为第三个维度。这是一个Quora,其中对其进行了更详细的讨论:

为什么我们对实际上是 3D 数据立方体的 RGB 图像使用 2D 卷积?我们不应该对 RGB 使用 3D 卷积,对视频使用 4D 吗?