[Python] alternating epochs are resulting into all 0 results , loss and accuracy all zero...

Discussão em 'Python' iniciado por Stack, Março 4, 2025.

  1. Stack

    Stack Membro Participativo

    while i am running my training loop i am getting a valid accuracy on one epoch but on every alternate epoch i am getting all 0 results my loss and accuracy all the results are 0

    I was trying to train my model on a binary dataset, but alternating epochs are resulting into all zero results . i tried the using normal resnet it gives this kind of result. i had to balance my class weights ,using class weights method ,even when i am commenting it off the issue still persists. i have used data augmentation and i am not using early stopping.

    # Fix incorrect steps_per_epoch calculation
    steps_per_epoch = (train_generator.samples // train_generator.batch_size) + int(train_generator.samples % train_generator.batch_size > 0)
    validation_steps = (val_generator.samples // val_generator.batch_size) + int(val_generator.samples % val_generator.batch_size > 0)

    # Compile the model (Lower initial LR for stability)
    final_model.compile(
    optimizer=Adam(learning_rate=1e-4), # ✅ Reduced LR
    loss='binary_crossentropy',
    metrics=['accuracy', tf.keras.metrics.AUC(name='auc')]
    )
    # Train the model
    history = final_model.fit(
    train_generator,
    steps_per_epoch=steps_per_epoch,
    validation_data=val_generator,
    validation_steps=validation_steps,
    epochs=10,
    #class_weight=class_weights_dict,
    #callbacks=callbacks
    )

    # Evaluation
    print("Validation Results:")
    final_model.evaluate(val_generator)

    # Get the final training accuracy from the history of fine-tuning
    train_accuracy = history.history['accuracy'][-1]

    # Evaluate on the test set
    test_loss, test_accuracy, test_auc = final_model.evaluate(test_generator)

    # Print results
    print(f"Final Training Accuracy: {train_accuracy:.4f}")
    print(f"Test Loss: {test_loss:.4f}")
    print(f"Test Accuracy: {test_accuracy:.4f}")
    print(f"Test AUC: {test_auc:.4f}")

    Continue reading...

Compartilhe esta Página