我在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'])
答案 0 :(得分:0)
Inception V3是fully convolutional模型。您在卷积编码器的顶部使用了全局池,因此与299x299的微小差异不大。如果您的代码中没有错误消息,则像这样使用它绝对可以。