相同的 CNN 架构可以用于不同的数据集吗?

数据挖掘 神经网络 深度学习 美国有线电视新闻网 图像分类 计算机视觉
2022-03-05 20:50:42

我有一个适用于 32x32x3 图像的 CNN 架构。我可以对由 28x28x1 图像组成的数据集使用相同的架构吗?(两个数据集都有 10 个类)。如果这是可能的,我需要对我拥有的架构进行哪些更改?

3个回答

一种方法是重新设计 CNN 架构以适应新的数据输入。但是,如果您想使用现有的模型,您应该:

(1)训练:用新的数据集图像重新训练模型

(2)重塑新图像:您应该添加一个预处理层,将 28x28x1 图像转换为 32x32x3 图像。这可以通过在其他两个通道中复制单个通道并为图像添加边界来完成。这个变形过程在所有新的输入图像上应该是相同的。

我假设您的 32x32x3 CNN 接受过CIFAR培训,并且您希望将其应用于MNIST(如果我错了,请纠正我)。

如果是这种情况,您可能不应该尝试为 MNIST 调整 CIFAR 模型。不这样做有几个原因,但主要原因是:

  1. 功能可能会大不相同
  2. 色彩空间不同,这使得特征更不相关

正如@aminrd 所建议的那样,您可以将 28x28x1 重塑为 32x32x3 以强制输入正确的形状,但仅通过训练新网络可能会获得更好的结果。以这种方式强制重新训练将有效地将多余的数据扔到你的最后一层,而可能会忽略如果你从头开始训练本来可以提取的数据。

如果您不介意训练模型,则需要将模型的输入层更改为 28x28x1,并将第一个卷积层 num_input_channels 更改为 1 而不是 3。此外,如果您需要删除第 3 和第 4 个池化层,如果有上层重塑层的形状,您可以在其中连接到最终的完全连接的神经网络。