首页 > 解决方案 > 如果我将输入大小设置为 32,32 mnist 会发生什么

问题描述

我想在 VGG16 上训练 MNIST。

MNIST 图像大小为 28*28,我在 keras VGG16 中将输入大小设置为 32*32。当我训练时,我得到了很好的指标,但我不确定到底发生了什么。keras 是填充空白空间还是线性扩展图像,就像在缩放功能中一样?有人知道我如何在 60 个 epoch 后获得 +95% 的测试准确率吗?

在这里我定义目标大小:

    target_size = (32, 32)

这是我定义我的 flow_from_dataframe 生成器的地方:

train_df = pd.read_csv("cv1_train.csv", quoting=3)

train_df_generator = train_image_datagen.flow_from_dataframe(
    dataframe=train_df,
    directory="../../../MNIST",
    target_size=target_size,
    class_mode='categorical',
    batch_size=batch_size,
    shuffle=False,
    color_mode="rgb",
    classes=["zero","one","two","three","four","five","six","seven","eight","nine"]
) 

在这里,我定义了我的输入大小:

model_base = VGG16(weights=None, include_top=False, 
             input_shape=(32, 32, 3), classes=10)

标签: image-processingmachine-learningkerasmnistvgg-net

解决方案


图像将简单地调整为指定的target_size. 这已在文档中明确说明:

target_size:整数元组(height, width),默认值:(256, 256). 找到的所有图像都将调整到的尺寸。

您还可以检查源代码并在load_img函数中找到相关部分。此外,用于调整图像大小的默认插值方法是nearest. 您可以在此处(MATLAB) 或此处(PIL)找到有关各种插值方法的更多信息。


推荐阅读