tensorflow - 在 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。那么我应该执行以下哪个操作?
- 将 CIFAR-10 或 CIFAR-100 数据集中每个图像的大小从 32*32 调整为 224*224,然后在该修改后的图像数据集上训练标准 AlexNet、MobileNet 或 VGG-16。
或者
- 更改标准 MobileNet、AlexNet 或 VGG-16 的架构(层数或步幅或过滤器大小),以便修改后的架构可以提供 CIFAR-10 或 CIFAR-100 数据集的 32*32 图像。
如果答案是选项 1,请建议我如何在 tensorflow 或 keras 中调整一批图像的大小
或者如果答案是选项 2,请为 MobileNet、VGG-16 或 Alexnet(layers,stride,filters) 建议一些架构,以便在 32*32 图像的 Cifar 数据集中训练它们
提前致谢。
解决方案
实际上,您可以指定这些网络的输入形状,如果您阅读文档,您可以看到 (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 图像训练时间会很长。
推荐阅读
- ios - 自动续订订阅中是否需要使用恢复按钮?
- javascript - .env 变量不是字符串,在尝试“构建”我的 Firebase 项目时?
- python - 使类中的方法对同时调用具有鲁棒性
- aem - 运行模式 AEM 的优先顺序
- javascript - 如何从函数中获取数组?
- yocto - 如何在 Yocto 中覆盖 .conf 文件
- firebase - 如何在 Firebase 数据库中嵌套数据?
- apache-kafka - Confluent 控制中心未启动
- javascript - 在 componentDidUpdate 错误中反应本机调用 setState
- sql - 按日期分组会为案例计数带来重复的日期