Untitled

mail@pastecode.io avatar
unknown
plain_text
7 months ago
1.7 kB
4
Indexable
Never
from tensorflow.keras.models import load_model
import h5py
import numpy as np

# Lista dei percorsi dei modelli
model_paths = [
    'modelli/crossValAugAll/best_model_crossValAug1_classweight.h5',
    'modelli/crossValAugAll/best_model_crossValAug2_classweight.h5',
    'modelli/crossValAugAll/best_model_crossValAug3_classweight.h5',
    'modelli/crossValAugAll/best_model_crossValAug4_classweight.h5',
    'modelli/crossValAugAll/best_model_crossValAug5_classweight.h5',
]

test_dataset_path = 'dataset/test_dataset.h5'

with h5py.File(test_dataset_path, 'r') as f:
    test_data = f['images'][()]
    test_labels = f['one_hot_labels'][()]
    
std_deviation_list = []

# Ciclo su tutti i modelli
for model_path in model_paths:
    # Carica il modello
    model = load_model(model_path)

    # Fai previsioni sul set di dati di test
    predictions = model.predict(test_data)

    # Calcola gli errori
    errors = np.abs(predictions - test_labels)

    # Calcola la deviazione standard degli errori per ciascuna classe
    std_deviation = np.std(errors, axis=0)

    # Aggiungi le deviazioni standard alla lista
    std_deviation_list.append(std_deviation)

# Calcola la media delle deviazioni standard
avg_std_deviation = np.mean(std_deviation_list, axis=0)

# Stampa le deviazioni standard di ogni classe per ciascun modello
for i, std_deviation in enumerate(std_deviation_list, start=1):
    print(f'Deviazione Standard degli Errori per ciascuna classe (Modello {i}):')
    print(std_deviation)
    print()

# Stampa la media delle deviazioni standard
print('Media delle Deviazioni Standard degli Errori per ciascuna classe:')
print(avg_std_deviation)
Leave a Comment