我目前正在Keras中开发用于图像识别的模型,我的图像存储在一个目录中,我得到了包含“真实标签”的数据框。在训练时使用.flow_from_dataframe和fit_generator会导致非常糟糕的验证丢失/准确性(随机)。
起初我想到过拟合,但问题似乎与.flow_from_dataframe方法有关。当我尝试flow_from_directory方法时,验证结果看起来要好得多,并且与Training的准确性非常匹配。因此,我猜该错误是由于验证数据与val_dataset的真实标签不匹配而产生的。
我正确使用了该方法吗?
fname
class_ID
fahrzeug_klasse
training_set = train_datagen.flow_from_dataframe(dataframe=train_df,
directory=r'C:\Users\aaa\Data\car_im',
x_col ='fname',
y_col = 'Marke',
target_size = (224, 224),
batch_size = 64,
color_mode='rgb',
class_mode = 'categorical')
test_set = test_datagen.flow_from_dataframe(dataframe=test_df,
directory=r'C:\Users\aaa\Data\car_im',
x_col ='fname',
y_col = 'Marke',
target_size = (224, 224),
color_mode='rgb',
batch_size = 64,
class_mode = 'categorical',
shuffle=False)
Found 9130 images belonging to 16 classes.
Found 2283 images belonging to 16 classes.
....
transfer_model.fit_generator(training_set,
steps_per_epoch = 140,
epochs = 10,
validation_data = test_set,
validation_steps = 4)
Epoch 1/10
140/140 [==============================] - 57s 410ms/step - loss: 1.4191 - categorical_accuracy: 0.5396 - val_loss: 4.9266 - val_categorical_accuracy: 0.0078
Epoch 2/10
140/140 [==============================] - 55s 395ms/step - loss: 1.2635 - categorical_accuracy: 0.5911 - val_loss: 3.6264 - val_categorical_accuracy: 0.1211
Epoch 3/10
140/140 [==============================] - 56s 397ms/step - loss: 1.1892 - categorical_accuracy: 0.6148 - val_loss: 3.9831 - val_categorical_accuracy: 0.1836
Epoch 4/10
140/140 [==============================] - 55s 395ms/step - loss: 1.0753 - categorical_accuracy: 0.6498 - val_loss: 3.7372 - val_categorical_accuracy: 0.0469
Epoch 5/10
140/140 [==============================] - 56s 398ms/step - loss: 1.0013 - categorical_accuracy: 0.6723 - val_loss: 5.8073 - val_categorical_accuracy: 0.0273
Epoch 6/10
140/140 [==============================] - 55s 392ms/step - loss: 0.9312 - categorical_accuracy: 0.6884 - val_loss: 5.8702 - val_categorical_accuracy: 0.0039
Epoch 7/10
84/140 [=================>............] - ETA: 21s - loss: 0.8100 - categorical_accuracy: 0.7367