MobileNetV3 Lightweight Voter
| F1 | AUC | Precision | Recall | Notebook Peaks |
|---|---|---|---|---|
| 0.9206 | 0.9730 | 0.9259 | 0.9153 | val acc 0.9242, val precision 0.9381, val recall 0.9420 |
base = MobileNetV3Large(include_top=False, weights="imagenet", input_shape=(256, 256, 3)) base.trainable = False x = GlobalAveragePooling2D()(base.output) x = Dropout(dropout)(x) out = Dense(1, activation="sigmoid")(x) model = Model(base.input, out) model.compile(optimizer=Adam(lr), loss="binary_crossentropy", metrics=[AUC(), Precision(), Recall()])
callbacks = [
ModelCheckpoint(best_path, monitor="val_loss", save_best_only=True),
EarlyStopping(monitor="val_loss", patience=patience, restore_best_weights=True),
ReduceLROnPlateau(monitor="val_loss", factor=0.2, patience=3),
]history_head = model.fit(train_ds, validation_data=val_ds, callbacks=callbacks) base.trainable = True freeze_lower_layers(base, keep_top_blocks=True) model.compile(optimizer=Adam(low_lr), loss="binary_crossentropy", metrics=metrics) history_ft = model.fit(train_ds, validation_data=val_ds, callbacks=callbacks)












