1 回答
TA贡献1828条经验 获得超3个赞
出色地...
您定义了target_size=(img_width, img_height),如果(img_width, img_height)不是(224, 224),那么您还需要target_size在 VGG 模型中进行定义:
vgg16 = applications.VGG16(
include_top=False,
weights='imagenet',
target_size=(img_width, img_height, 3))
你为什么用class_mode=None在datagen.flow_from_directory?None是默认值。如果你想让它明确write class_mode='categorical',但 usingclass_mode=None根本没有意义。
predict_generator返回预测。现在predict_generator已弃用,但您可以使用predict它与生成器一起工作。但predict应在训练后使用。正确使用生成器的方法是:
datagen = ImageDataGenerator(rescale=1. / 255)
generator = datagen.flow_from_directory(
train_data_dir,
target_size=(img_width, img_height),
batch_size=batch_size,
shuffle=False)
// ...
history = model.fit(
generator,
epochs=15,
steps_per_epoch=len(generator),
batch_size=batch_size,
validation_data=validation_generator,
validation_steps=len(validation_generator))
稍后,如果您想进行预测,请使用:model.predict(test_generator)
在这种情况下,您不需要使用Flattenafter 。将输出减少到一维数组。GlobalAveragePooling2DGlobalAveragePooling2D
添加回答
举报