在Keras相关模型中更改输入图层大小

时间:2019-01-31 15:51:04

标签: python keras deep-learning conv-neural-network

我在Keras中使用Inception模型,并预先训练了图像网的权重。

问题是根据Keras文档,此模型的默认输入大小为299x299。当我的图像尺寸为230 * 350时,我不想调整它们的大小,因为它会使图像变形。因此,我正在尝试找到一种更改输入图层大小的方法。

下面是到目前为止我一直在尝试的代码,但是我怀疑图像的净重是否得以保留,因为当我更改输入大小时架构会发生变化。

任何想法..

input = Input(shape=(230, 350, 3), name='image_input')
base_model = InceptionV3(weights='imagenet', include_top=False, input_tensor=input)

x = base_model.output
x = GlobalAveragePooling2D()(x)
x = Dense(64, activation='relu')(x)
predictions = Dense(1, activation='sigmoid')(x)

model = Model(inputs=input, outputs=predictions)

for layer in base_model.layers:
    layer.trainable = True

model.compile(loss='binary_crossentropy',
              optimizer=Adam(lr=0.0001),
              metrics=['accuracy'])

1 个答案:

答案 0 :(得分:0)

Inception V3是fully convolutional模型。您在卷积编码器的顶部使用了全局池,因此与299x299的微小差异不大。如果您的代码中没有错误消息,则像这样使用它绝对可以。