Reputation: 23
I am working on an image classification task to classify among cars and buses. The problem is that in most car images, there is buses in the background and vice versa so the model gives wrong predictions. I came to know that in these cases we have to use multi-label classification instead on multiclass or binary classifier. So for multi label classifier the loss would be binary cross entropy and the activation will be sigmoid as per my understanding. I am confused regarding the class mode in the generator function.
train_generator = train_datagen.flow_from_directory(TRAIN_DATA_DIR,
target_size=(IMG_WIDTH,
IMG_HEIGHT),
batch_size=BATCH_SIZE,
shuffle=True,
seed=12345,
class_mode='categorical')
What should be the class mode in case of multi-label classification?
Upvotes: 0
Views: 862
Reputation: 954
Take a look at using flow_from_dataframe
, for example:
train_generator = datagen.flow_from_dataframe(
df,
directory="/path/to/images",
x_col='Filenames',
y_col='labels',
class_mode='categorical',
shuffle=True,
target_size=(IMAGE_SIZE, IMAGE_SIZE),
batch_size=BATCH_SIZE,
subset='training',
seed=42)
where df is a pandas dataframe like this:
Upvotes: 0