in model.compile your loss is incorrect. It should be
loss='BinaryCrossentropy'
In your model the last layer should be
tf.keras.layers.Dense(1,activation='sigmoid')
Alternatively you can keep everything as is but change class_mode in the train_data_gen and val_data_gen to
class_mode='sparse'
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…