【问题标题】:Finetuning Cifar data with VGG net使用 VGG 网络微调 Cifar 数据
【发布时间】:2018-10-30 21:27:36
【问题描述】:

原始 VGG 网络接受大小为 256x256x3 的输入。为了训练 Cifar-10 数据,我是否需要将数据大小调整为 256x256x3?或者有没有其他办法?

我正在尝试使用大小为 32x32x3 的 Cifar-10 数据微调 VGG 网络。

【问题讨论】:

    标签: computer-vision caffe vgg-net


    【解决方案1】:

    为了在 VGG 上训练 Cifar-10 数据,您必须提供大小为 256x256x3 的输入数据。各种输入层都有变换参数来处理这种图像大小调整。

    但是将 32x32 图像放大到 256x256 并不是一个好方法,因为图像数据的主要部分是通过可用 32x32 图像数据的近似值创建的。所以我不建议这样做。但如果这只是为了尝试演示 VGG 微调,您可以通过设置变换参数来实现。

    【讨论】:

    • 谢谢。如果放大 32x32 图像不是一个好主意,那么我可以尝试哪些其他替代方案?
    【解决方案2】:

    对于较小的图像,您应该使用 VGG 的简化版本,因为 VGG-16 对于小图像来说过于复杂。

    我认为这个模型更适合你的问题,而且用 gpu 训练它并不难:

    model = Sequential()
    
    model.add(Conv2D(32, (3, 3), padding='same',
                     input_shape=x_train.shape[1:]))
    model.add(Activation('relu'))
    model.add(Conv2D(32, (3, 3)))
    model.add(Activation('relu'))
    model.add(MaxPooling2D(pool_size=(2, 2)))
    model.add(Dropout(0.25))
    
    model.add(Conv2D(64, (3, 3), padding='same'))
    model.add(Activation('relu'))
    model.add(Conv2D(64, (3, 3)))
    model.add(Activation('relu'))
    model.add(MaxPooling2D(pool_size=(2, 2)))
    model.add(Dropout(0.25))
    
    model.add(Flatten())
    model.add(Dense(512))
    model.add(Activation('relu'))
    model.add(Dropout(0.5))
    model.add(Dense(num_classes))
    model.add(Activation('softmax'))
    

    【讨论】:

      猜你喜欢
      • 2020-03-10
      • 2019-11-14
      • 2019-06-16
      • 2015-12-19
      • 2021-09-20
      • 2017-04-30
      • 1970-01-01
      • 2018-01-25
      • 2018-04-07
      相关资源
      最近更新 更多