diff --git a/knn.py b/knn.py
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..1865cae73060ced31e42c416193304df0779039b 100644
--- a/knn.py
+++ b/knn.py
@@ -0,0 +1,16 @@
+import numpy as np
+
+def distance_matrix(m1, m2):
+    if m1.shape != m2.shape:
+        raise ValueError("Dimensions must be identical")
+
+    x = (m1 - m2) ** 2
+    y = np.sum(x)
+    dist = np.sqrt(y)
+
+    return dist
+
+def knn_predict(dist, labels_train, k, ):
+    return
+def evaluate_knn(data_train , labels_train,data_test ,labels_test, k):
+    return
\ No newline at end of file
diff --git a/read_cifar.py b/read_cifar.py
new file mode 100644
index 0000000000000000000000000000000000000000..388de81f374066f73d49e10e43cbbd9dc0a70ce4
--- /dev/null
+++ b/read_cifar.py
@@ -0,0 +1,14 @@
+import pickle
+import numpy as np
+
+def read_cifar_batch(batch):
+    with open(batch, 'rb') as fo:
+        dict = pickle.load(fo, encoding='bytes')
+        data = dict[b'data']
+        labels = dict[b'labels']
+    return data.astype(np.float32), np.array(labels, dtype=np.int64)
+
+
+
+batch='data/cifar-10-batches-py/data_batch_1'
+data, labels = read_cifar_batch(batch)