Views
No views yet
ecg_model.keras | trained modelnormalisation_params.npz | per-channel mean and std (z-score, from training fold)thresholds.json | per-class decision thresholds optimised on the validation fold1import keras, numpy as np, json
2from huggingface_hub import hf_hub_download
3
4model = keras.saving.load_model(
5 hf_hub_download("Steenslid/ecg-ptbxl-classification", "ecg_model.keras"))
6params = np.load(hf_hub_download("Steenslid/ecg-ptbxl-classification", "normalisation_params.npz"))
7with open(hf_hub_download("Steenslid/ecg-ptbxl-classification", "thresholds.json")) as f:
8 thresholds = json.load(f)
9
10# Input x: (1000, 12) float32 ECG in mV, 100 Hz, standard 12-lead order
11x_norm = (x - params["mean"]) / params["std"]
12probs = model.predict(x_norm[np.newaxis])[0]
13preds = {sc: probs[i] >= thresholds[sc] for i, sc in enumerate(
14 ["NORM","MI","STTC","CD","HYP"])}