我训练了ResNet-50模型,将某些数据分为10类。如果我使用正确的训练,测试和验证集,则分类器的准确性约为98%。另一方面,如果将验证集用于验证和测试目的,则预测的准确性将非常差,仅为0.x%。为什么?我认为在测试阶段使用验证会产生与验证阶段准确性相似的准确性结果。
我按照以下步骤使用keras的ImageDataGenerator加载数据集
datagen = ImageDataGenerator(preprocessing_function=preprocess_input)
traingen = datagen.flow_from_directory(TRAIN_PATH, target_size=(224,224), batch_size=32, class_mode='categorical')
validgen = datagen.flow_from_directory(VALID_PATH, target_size=(224,224), batch_size=32, class_mode='categorical', shuffle=False)
按照以下步骤训练我的模型
train_history = custom_resnet.fit_generator(traingen, steps_per_epoch=len(traingen), epochs= EPOCHS, validation_data=validgen, validation_steps=len(validgen), verbose=2, callbacks=[es_callback, mc_callback])
进行如下预测
predict = custom_resnet.predict_generator(validgen, steps=len(validgen), verbose=1)