mayss14 commited on
Commit
eb0a34b
·
verified ·
1 Parent(s): e86029d

Create userData.py

Browse files
Files changed (1) hide show
  1. userData.py +42 -0
userData.py ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import numpy as np
2
+ import pandas as pd
3
+ from tensorflow.keras.models import load_model
4
+ from sklearn.preprocessing import LabelEncoder
5
+ from tensorflow.keras.utils import to_categorical
6
+
7
+ # === Liste fixe des classes utilisées pendant l'entraînement ===
8
+ LABELS = ['get_down', 'get_up', 'lying', 'no_person', 'sitting', 'standing', 'walking']
9
+ label_encoder = LabelEncoder()
10
+ label_encoder.fit(LABELS)
11
+
12
+ def load_and_predict(csv_path: str, model_path: str):
13
+ """
14
+ Charge un fichier CSV contenant un seul échantillon et effectue une prédiction avec un modèle CNN.
15
+ Args:
16
+ csv_path (str): Chemin vers le fichier CSV avec une ligne (features + label)
17
+ model_path (str): Chemin vers le fichier .h5 du modèle CNN
18
+ Returns:
19
+ tuple: (true_label: str, predicted_label: str, y_pred_probs: np.ndarray)
20
+ """
21
+ # === Charger le fichier utilisateur ===
22
+ df = pd.read_csv(csv_path)
23
+ X = df.drop(columns=['label']).values
24
+ y = df['label'].values
25
+ true_label = y[0]
26
+
27
+ # === Encodage label réel ===
28
+ true_label_encoded = label_encoder.transform([true_label])[0]
29
+ y_encoded = to_categorical([true_label_encoded], num_classes=len(LABELS))
30
+
31
+ # === Reshape pour Conv1D ===
32
+ X = X.reshape((1, X.shape[1], 1))
33
+
34
+ # === Charger le modèle ===
35
+ model = load_model(model_path)
36
+
37
+ # === Prédiction ===
38
+ y_pred_probs = model.predict(X)
39
+ y_pred_encoded = np.argmax(y_pred_probs, axis=1)[0]
40
+ y_pred_label = label_encoder.inverse_transform([y_pred_encoded])[0]
41
+
42
+ return true_label, y_pred_label, y_pred_probs[0] ,LABELS,y_pred_probs