4 files + 15 − 7 Side-by-side Compare changes Side-by-side Inline Show whitespace changes Files 4 knn.py +5 −1 Original line number Original line Diff line number Diff line #Libraries #Libraries import numpy as np import numpy as np import matplotlib.pyplot as plt import matplotlib.pyplot as plt import math import random from read_cifar import * #Functions #Functions def distance_matrix(Y , X): def distance_matrix(Y , X): #This function takes as parameters two matrices X and Y #This function takes as parameters two matrices X and Y Loading @@ -26,7 +30,7 @@ def knn_predict(dists, labels_train, k): def evaluate_knn(data_train, labels_train, data_test, labels_test, k): def evaluate_knn(data_train, labels_train, data_test, labels_test, k): #This function evaluates the knn classifier rate #This function evaluates the knn classifier rate labels_test__pred=knn_predict(distance_matrix(data_train, data_test), labels_train, k) labels_test_pred=knn_predict(distance_matrix(data_train, data_test), labels_train, k) num_samples= data_test.shape[0] num_samples= data_test.shape[0] num_correct= (labels_test == labels_test_pred).sum().item() num_correct= (labels_test == labels_test_pred).sum().item() accuracy= 100 * (num_correct / num_samples) #The accuracy is the percentage of the correctly predicted classes accuracy= 100 * (num_correct / num_samples) #The accuracy is the percentage of the correctly predicted classes Loading mlp.py +5 −1 Original line number Original line Diff line number Diff line import numpy as np import numpy as np import matplotlib.pyplot as plt import math import random from read_cifar import * #We are using the segmoid activation function #We are using the segmoid activation function def segmoid(x): def segmoid(x): return 1/(1+np.exp(-x)) return 1/(1+np.exp(-x)) Loading @@ -19,7 +23,7 @@ def learn_once_mse(w1,b1,w2,b2,data,targets,learning_rate): A2=segmoid(np.matmul(A1,w2) + b2) A2=segmoid(np.matmul(A1,w2) + b2) #Let calculate the partial derivates #Let calculate the partial derivates #2 #2 D_A2=2*(A2-tragets) D_A2=2*(A2-targets) D_A2_T=np.matmul(A2,(1-A2).T) D_A2_T=np.matmul(A2,(1-A2).T) D_Z2=np.matmul(D_A2_T,D_A2) D_Z2=np.matmul(D_A2_T,D_A2) D_W2=np.matmul(A1.T,D_Z2) D_W2=np.matmul(A1.T,D_Z2) Loading read_cifar.py +5 −5 Original line number Original line Diff line number Diff line Loading @@ -29,13 +29,13 @@ def read_cifar(directory_path): for i in range(len(files)): for i in range(len(files)): fichier=directory_path+files[i] fichier=directory_path+files[i] data_dict=unpickle(fichier) data_dict=unpickle(fichier) M=data_dict[b'data'] D=data_dict[b'data'] L=data_dict[b'labels'] L=data_dict[b'labels'] L=np.array(L) L=np.array(L) data=np.vstack((X,M)) data=np.vstack((data,D)) labels=np.hstack((Y,L)) labels=np.hstack((labels,L)) data=X[N:2*N,] data=data[N:2*N,] labels=Y[A:,] labels=labels[A:,] return data,labels return data,labels def split_dataset(data,labels,split): def split_dataset(data,labels,split): Loading results/accuracy_knn.png 0 → 100644 +1.24 KiB 1.24 KiB
knn.py +5 −1 Original line number Original line Diff line number Diff line #Libraries #Libraries import numpy as np import numpy as np import matplotlib.pyplot as plt import matplotlib.pyplot as plt import math import random from read_cifar import * #Functions #Functions def distance_matrix(Y , X): def distance_matrix(Y , X): #This function takes as parameters two matrices X and Y #This function takes as parameters two matrices X and Y Loading @@ -26,7 +30,7 @@ def knn_predict(dists, labels_train, k): def evaluate_knn(data_train, labels_train, data_test, labels_test, k): def evaluate_knn(data_train, labels_train, data_test, labels_test, k): #This function evaluates the knn classifier rate #This function evaluates the knn classifier rate labels_test__pred=knn_predict(distance_matrix(data_train, data_test), labels_train, k) labels_test_pred=knn_predict(distance_matrix(data_train, data_test), labels_train, k) num_samples= data_test.shape[0] num_samples= data_test.shape[0] num_correct= (labels_test == labels_test_pred).sum().item() num_correct= (labels_test == labels_test_pred).sum().item() accuracy= 100 * (num_correct / num_samples) #The accuracy is the percentage of the correctly predicted classes accuracy= 100 * (num_correct / num_samples) #The accuracy is the percentage of the correctly predicted classes Loading
mlp.py +5 −1 Original line number Original line Diff line number Diff line import numpy as np import numpy as np import matplotlib.pyplot as plt import math import random from read_cifar import * #We are using the segmoid activation function #We are using the segmoid activation function def segmoid(x): def segmoid(x): return 1/(1+np.exp(-x)) return 1/(1+np.exp(-x)) Loading @@ -19,7 +23,7 @@ def learn_once_mse(w1,b1,w2,b2,data,targets,learning_rate): A2=segmoid(np.matmul(A1,w2) + b2) A2=segmoid(np.matmul(A1,w2) + b2) #Let calculate the partial derivates #Let calculate the partial derivates #2 #2 D_A2=2*(A2-tragets) D_A2=2*(A2-targets) D_A2_T=np.matmul(A2,(1-A2).T) D_A2_T=np.matmul(A2,(1-A2).T) D_Z2=np.matmul(D_A2_T,D_A2) D_Z2=np.matmul(D_A2_T,D_A2) D_W2=np.matmul(A1.T,D_Z2) D_W2=np.matmul(A1.T,D_Z2) Loading
read_cifar.py +5 −5 Original line number Original line Diff line number Diff line Loading @@ -29,13 +29,13 @@ def read_cifar(directory_path): for i in range(len(files)): for i in range(len(files)): fichier=directory_path+files[i] fichier=directory_path+files[i] data_dict=unpickle(fichier) data_dict=unpickle(fichier) M=data_dict[b'data'] D=data_dict[b'data'] L=data_dict[b'labels'] L=data_dict[b'labels'] L=np.array(L) L=np.array(L) data=np.vstack((X,M)) data=np.vstack((data,D)) labels=np.hstack((Y,L)) labels=np.hstack((labels,L)) data=X[N:2*N,] data=data[N:2*N,] labels=Y[A:,] labels=labels[A:,] return data,labels return data,labels def split_dataset(data,labels,split): def split_dataset(data,labels,split): Loading