ValueError: Error when checking input: expected input_1 to have shape (None, 299, 299, 3) but got array with shape (32, 229, 229, 3)
这是代码的核心部分:
train_datagen = ImageDataGenerator()train_batches = train_datagen.flow_from_directory('../train/', target_size=(229, 229))test_datagen = ImageDataGenerator()test_batches = test_datagen.flow_from_directory('../test/', target_size=(229, 229))#model = keras.applications.InceptionV3(weights="imagenet")#clf_model.compile(optimizer='rmsprop', loss='categorical_crossentropy', metrics=['accuracy'])train_history = clf_model.fit_generator(train_batches, steps_per_epoch=train_batches.samples/train_batches.batch_size, epochs=1, validation_data = test_batches, validation_steps=test_batches.samples/test_batches.batch_size )
看起来是一个奇怪的错误。我看到其他人遇到的错误是这样的:
Error when checking input: expected input_1 to have shape (None, 10, 3) but got array with shape (1, 3, 10)
或者
Error when checking input: expected input_1 to have shape (None, 10, 3) but got array with shape (1, 4, 16)
然而,在我的错误中,形状看起来是正确的。 Keras抱怨形状不是None… 请帮助我,谢谢
回答:
你的输入形状不匹配:
train_datagen = ImageDataGenerator()train_batches = train_datagen.flow_from_directory('../train/', target_size=(229, 229))test_datagen = ImageDataGenerator()test_batches = test_datagen.flow_from_directory('../test/', target_size=(229, 229))
将train_batches和test_batches的target_size=(229,229)更改为target_size=(299,299)。