首页 > 解决方案 > 在 tensorflow 或 keras 中通过标准 mobileNet、VGG-16 或 AlexNet 从头开始​​训练 cifar 日期集的图像大小问题

问题描述

假设,我想通过 Tensorflow 或 Keras 中的 CIFAR-10 或 CIFAR-100 数据集从头开始训练标准 AlexNet、VGG-16 或 MobileNet。现在的问题是,标准 AlexNet、VGG-16 或 MobileNet 的架构是为ImageNet 数据集,其中每张图像为 224*224,但在 CIFAR-10 或 CIFAR-100 数据集中,每张图像为 32*32。那么我应该执行以下哪个操作?

  1. 将 CIFAR-10 或 CIFAR-100 数据集中每个图像的大小从 32*32 调整为 224*224,然后在该修改后的图像数据集上训练标准 AlexNet、MobileNet 或 VGG-16。

或者

  1. 更改标准 MobileNet、AlexNet 或 VGG-16 的架构(层数或步幅或过滤器大小),以便修改后的架构可以提供 CIFAR-10 或 CIFAR-100 数据集的 32*32 图像。

如果答案是选项 1,请建议我如何在 tensorflow 或 keras 中调整一批图像的大小

或者如果答案是选项 2,请为 MobileNet、VGG-16 或 Alexnet(layers,stride,filters) 建议一些架构,以便在 32*32 图像的 Cifar 数据集中训练它们

提前致谢。

标签: tensorflowkerasdeep-learningcomputer-visionmobilenet

解决方案


实际上,您可以指定这些网络的输入形状,如果您阅读文档,您可以看到 (32, 32, 3) 是正确的输入值:

https://keras.io/applications/#mobilenet
https://keras.io/applications/#vgg16

input_shape:可选的形状元组,仅在 include_top 为 False 时指定(否则输入形状必须为 (224, 224, 3)(使用 'channels_last' 数据格式)或 (3, 224, 224)(使用 'channels_first'数据格式)。它应该正好有 3 个输入通道,并且宽度和高度应该不小于 32。例如 (200, 200, 3) 将是一个有效值。

你也可以重塑你所有的图像,但我认为这不是一个好主意,这些网络上的 224*224 图像训练时间会很长。


推荐阅读