diff --git a/.gitignore b/.gitignore
index 13ecb9ca2712d5a1dd984163925d8b259fc03409..824f6d8b83bb96e2bae5f1928606e4151f9e534a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,2 @@
 data/
-test.py
+codes_annexes_local/
diff --git a/chatgpt.py b/chatgpt.py
deleted file mode 100644
index ffcbb98c82a3f81568c47ce5d3b7ff21cbdd93dd..0000000000000000000000000000000000000000
--- a/chatgpt.py
+++ /dev/null
@@ -1,98 +0,0 @@
-import numpy as np
-from sklearn.model_selection import train_test_split
-from sklearn.preprocessing import OneHotEncoder
-from sklearn.metrics import accuracy_score
-from read_cifar import read_cifar_batch, split_dataset
-import matplotlib.pyplot as plt
-
-# Charger CIFAR-10 depuis votre source de données
-X,y = read_cifar_batch("data/cifar-10-batches-py/data_batch_1")
-
-# Diviser les données en ensembles d'entraînement et de test
-X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.1)
-
-# Prétraitement des données
-# Vous devrez redimensionner les images, les normaliser, etc.
-
-# Définir l'architecture du réseau de neurones
-input_size = 32 * 32 * 3  # 32x32 pixels et 3 canaux (RGB)
-hidden_size = 64  # Nombre d'unités dans la couche cachée
-output_size = 10  # 10 classes dans CIFAR-10
-
-# Initialiser les poids et les biais
-np.random.seed(0)
-weights_input_hidden = np.random.randn(input_size, hidden_size)
-bias_input_hidden = np.zeros((1, hidden_size))
-weights_hidden_output = np.random.randn(hidden_size, output_size)
-bias_hidden_output = np.zeros((1, output_size))
-
-# Hyperparamètres
-learning_rate = 0.1
-num_epochs = 100
-y_print,x_print,y2_print=[],[],[]
-# Entraînement du modèle
-for epoch in range(num_epochs):
-    # Forward pass
-    hidden_input = np.dot(X_train, weights_input_hidden) + bias_input_hidden
-    hidden_output = 1 / (1 + np.exp(-hidden_input))  # Fonction d'activation (sigmoid)
-    output_layer = np.dot(hidden_output, weights_hidden_output) + bias_hidden_output
-
-    # Calcul softmax
-    exp_scores = np.exp(output_layer)
-    probs = exp_scores / np.sum(exp_scores, axis=1, keepdims=True)
-
-    # Calcul de la perte (cross-entropy)
-    num_examples = len(X_train)
-    corect_logprobs = -np.log(probs[range(num_examples), y_train])
-    data_loss = np.sum(corect_logprobs) / num_examples
-
-    # Calcul du gradient
-    dprobs = probs
-    dprobs[range(num_examples), y_train] -= 1
-    dprobs /= num_examples
-
-    dweights_hidden_output = np.dot(hidden_output.T, dprobs)
-    dbias_hidden_output = np.sum(dprobs, axis=0, keepdims=True)
-
-    dhidden = np.dot(dprobs, weights_hidden_output.T)
-    dhidden_hidden = dhidden * (1 - hidden_output) * hidden_output
-    dweights_input_hidden = np.dot(X_train.T, dhidden_hidden)
-    dbias_input_hidden = np.sum(dhidden_hidden, axis=0)
-
-    # Mise à jour des poids et des biais
-    weights_input_hidden -= learning_rate * dweights_input_hidden
-    bias_input_hidden -= learning_rate * dbias_input_hidden
-    weights_hidden_output -= learning_rate * dweights_hidden_output
-    bias_hidden_output -= learning_rate * dbias_hidden_output
-
-    x_print.append(epoch)
-    y_print.append(data_loss)
-    predicted_class = np.argmax(output_layer, axis=1)
-    y2_print.append(accuracy_score(y_train, predicted_class))
-    # Affichage du loss à chaque époque (pour le suivi)
-    if (epoch + 1) % 100 == 0:
-        print(f'Époque {epoch + 1}: Loss = {data_loss:.4f}')
-
-# Évaluation du modèle
-hidden_input = np.dot(X_test, weights_input_hidden) + bias_input_hidden
-hidden_output = 1 / (1 + np.exp(-hidden_input))
-output_layer = np.dot(hidden_output, weights_hidden_output) + bias_hidden_output
-predicted_class = np.argmax(output_layer, axis=1)
-accuracy = accuracy_score(y_test, predicted_class)
-print(f'Précision sur l\'ensemble de test: {accuracy:.4f}')
-
-fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(10, 4))
-
-ax1.plot(x_print,y_print)
-ax1.set_xlabel('epoque')
-ax1.set_ylabel('loss')
-ax1.set_title('evolution de la fonction loss par epoque')
-ax1.legend()
-
-ax2.plot(x_print,y2_print)
-ax2.set_xlabel('epoque')
-ax2.set_ylabel('accuracy')
-ax2.set_title('evolution de la accuracy')
-ax2.legend()
-plt.tight_layout()
-plt.show()
\ No newline at end of file
diff --git a/requirements.txt b/requirements.txt
index 70dd3f4261215197c2965c7fcd85a00330d45907..8e6a423461ece1e9e49733aacfb8c0d187ed323e 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,2 +1,3 @@
+IPython
 numpy
-open-cv
\ No newline at end of file
+matplotlib
\ No newline at end of file
diff --git a/result/1000val_knn.png b/result/1000val_knn.png
deleted file mode 100644
index 9348b4eac08cf9387fee29e9abdb8f3dd02b873c..0000000000000000000000000000000000000000
Binary files a/result/1000val_knn.png and /dev/null differ
diff --git a/result/knn_1_20_err.png b/result/knn_1_20_err.png
deleted file mode 100644
index af545ac00bd73701ce9ba363d4d407aefcc40bec..0000000000000000000000000000000000000000
Binary files a/result/knn_1_20_err.png and /dev/null differ
diff --git a/test.py b/test.py
deleted file mode 100644
index 35b173da28edf96fef5e49171a97a6559fe5a0ac..0000000000000000000000000000000000000000
--- a/test.py
+++ /dev/null
@@ -1,39 +0,0 @@
-import numpy as np
-
-# label=np.array([1,2,2,3,3])
-# dist=np.array([[10,25,10,42,3],[75,63,87,64,1]])
-# for im in dist:
-#     dico={}
-#     kmax=np.argpartition(im, 3)[:3]
-#     for indexe in kmax:
-#         if label[indexe] in dico:
-#             dico[label[indexe]][0]+=1
-#             dico[label[indexe]][1]+=im[indexe]
-#         else:
-#             dico[label[indexe]]=[1,im[indexe]]
-#     dico = sorted(dico.items(), key=lambda item: item[1][0], reverse=True)
-    
-#     max_value = dico[0][1][0]
-#     dico = [item for item in dico if item[1][0] == max_value]
-#     print(dico)
-#     if len(dico) > 1:
-#         filtered_dict = sorted(dico, key=lambda item: item[1][1])
-#     print(dico[0][0])
-def one_hot(label):
-    nbr_classe=9
-    mat=np.zeros((len(label),nbr_classe))
-    for label_indexe,label_im, in enumerate(label):
-        mat[label_indexe,label_im-1]=1
-    return(mat)
-
-mat=np.array([1,8,6,4,7,8,5,2,4,6,4])
-print(one_hot(mat))
-# mat_exp=np.exp(mat)
-# v=np.sum(mat_exp,axis=1)
-# print(v)
-# mat_exp_norm=mat_exp/v[:, np.newaxis]
-
-# vrai=np.array([[0,0,0,1],[1,0,0,0],[0,0,1,0]])
-# print(-np.log(np.max(mat_exp_norm*vrai,axis=1)))
-# L=np.mean(-np.log(np.max(vrai*mat_exp_norm,axis=1)))
-# print(L)
\ No newline at end of file