From 9da8997081843a3b7cc43b9f3be4ac6ed9375e46 Mon Sep 17 00:00:00 2001
From: Sucio <esteban.cosserat@gmail.com>
Date: Sun, 22 Oct 2023 12:52:14 +0200
Subject: [PATCH] avancement

---
 __pycache__/read_cifar.cpython-38.pyc | Bin 0 -> 1565 bytes
 hello.ipynb                           | 277 ++++++++++++++++++++++++++
 kkn.py                                |   4 +-
 read_cifar.py                         |   6 +-
 requirements.txt                      |   2 +
 result/desktop.ini                    |   2 +
 test.py                               |  12 ++
 7 files changed, 299 insertions(+), 4 deletions(-)
 create mode 100644 __pycache__/read_cifar.cpython-38.pyc
 create mode 100644 hello.ipynb
 create mode 100644 requirements.txt
 create mode 100644 result/desktop.ini
 create mode 100644 test.py

diff --git a/__pycache__/read_cifar.cpython-38.pyc b/__pycache__/read_cifar.cpython-38.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..9e75aa1cdae84804561cf8c57b247e4a5a61d2f9
GIT binary patch
literal 1565
zcmWIL<>g{vU|=}$#w690je+4Yh=Yt-7#J8F7#J9e3m6y}QW&BbQW#U1au}nSz%+9d
zGni(HVo706VQFEAVohO9VQXQCVoPC9;b>uqVo&8r;ml?#%1LEQ;c8}#VT$66;!0&t
z<xJ&D;cjM*VTt07;)&vo;!EXE<w;>o;b~=(WN2n&WJqBOX3*rV;>pY{$S*2U$Sch)
zsC)@>nO`y^h=O8P1_lOB1_lOakQ+l77#K<zY8X-&o0<AWY8guyvzTfaQ<zeidzosP
z!Wm2%0vUoBA{a`Tvsh}FQdlHGEY=j(UZz@Rs2Ceqj14TtQo~%sk_K`I`z=PdTTDes
zw^)-ZOHzw98E<i<<|XH+Wagz8gF+}Ju_SRN<1N;dlFEYAVm1Z_hMdHt)SO~X_FF9Z
z1*v(r*a|X}vvX2!vE<|@rrcu6E4am)SX7i)d5b+QCqJ>o*yt8(W?qSzi6-kUuB610
z<c#=&#FC6#ENPiJsW1_cCAV0>Bpbx|l?+893=9mvJd&+qLW@(2ieo}cGIKJE6H8J{
zi(*{zlS^|`^Gb?i+%ro&N|RzTa}(23b(3=vi;FYUGLsWaGV}9dic%9(;*&Ge5{vW-
zDsKrOxba|jfc#PnP9jV^j1r6@j3SIhVhjunD3QR<z`y{C2yi5HfFmJ`F@>>&A&V)6
zsh6o1#9~ZgE@8-G2J@LpSQfC>Ff3$rVTcW>Wv*dfz?Q<Ykg?dIhB<{bo2f{vge8l8
z0Y?o(4f8^#T9y*d8WvE}sb#HYD`Cjus$r~QO=C)7PGN(Z%~iux!<NRB!T=UwD%7fB
ztYLygoS!CB5h%T6GVm}k6oGsL=0<UW!V%)dD6W#!;t~j3lkpZyVnt@LCU+4x0|Ub?
z*3{gBlFA}p1_p*AK9B%Ye(^2#oXp~ql+2=AT*W1cMJ2`MnV_hGL|9gSW*#_zZgD5)
z=OrhWq~;}-q-wH9af9UJ)ADmtQj3a&K;{X9%;NyXa9(0=Y7sw(%b0SDF$Wx}5JD6r
z$c2a$kQ<6Yx)~S+7zG&l7=;-57<m|lK+&QEiWX*Qz5r36Xal8AaJ1BbqoszSnX#4`
zlrI)A*Dx<+tYs+yrE(?_kT`1%Lk&v`V+|`P52i4tFt#$KF-bDivehsm#3dPO*+J@R
zSV8iVpz;8wjsv6)CN9ZP%UQ!#!(PKt!<ohs%%I5>#gUeumkdgDewwVem~&F|AYsf_
zl$e*2pL>hDAhjsBv;>?iZ!u@)m1uGy0xF89xF9F9Bt9)Mxg@_RiaW0~H@-MAw;(6A
zI7*;6qckloCp9HLGcP4GIkh;78=^QfFD13&79^@miV`#PZt*}ePCSIi2~Gr{*uTXM
zlSnNtfdoA$XBC0NpBG{pNO5s$i6p3`5deiR69*#?BM*}VqX44>qX1KpHYl<<;^T7@
zGxOr(t0X`g^ubw6*U&&0oSjmObqgxfL7EvD9@xJG#gL}JE%x~Ml>FrQ_*<;tVh$WE
zMW9lx2xJ*JITe9o7j6S6!NkWGDS(oZA_D_M6mv?vVH9%?h)9Vy0<ny4u@)3%<{^6q
m;Uf;4-29Z%oK!nd)+h#vvoLaiAQJ}%2R8>F2NMsY2qOT$@`^J6

literal 0
HcmV?d00001

diff --git a/hello.ipynb b/hello.ipynb
new file mode 100644
index 0000000..7c8a38d
--- /dev/null
+++ b/hello.ipynb
@@ -0,0 +1,277 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# Image Classification\n",
+    "<p><a href=\"https://gitlab.ec-lyon.fr/edelland/mod_4_6-td1\">Ennoncé</a>.</p>\n",
+    "\n",
+    "## Introduction\n",
+    "<p>Le but de ce TD est d'appliquer les méthodes de classification vues en cours. Pour cela nous travaillerons sur la base de donnée CIFAR-10 sur laquelle nous appliquerons d'abord la classification par k-plus proches voisins avec une distance euclidienne puis nous utiliserons une classification par réseaux de neuronne.\n",
+    "Pour chacune de ces méthodes nous regarderons le taux de réussite.</p>\n",
+    "\n",
+    "## Importation des données"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 32,
+   "metadata": {
+    "dotnet_interactive": {
+     "language": "csharp"
+    },
+    "polyglot_notebook": {
+     "kernelName": "csharp"
+    }
+   },
+   "outputs": [],
+   "source": [
+    "import numpy as np\n",
+    "import pickle\n",
+    "import os"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 33,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "def read_cifar_batch(batch_path):\n",
+    "    with open(batch_path, 'rb') as file:\n",
+    "        batch_data = pickle.load(file, encoding='bytes')\n",
+    "    data = np.array(batch_data[b'data'], dtype=np.float32)\n",
+    "    labels = np.array(batch_data[b'labels'], dtype=np.int64)\n",
+    "    return data, labels"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 34,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "def read_cifar(path_folder):\n",
+    "    data = np.empty((0, 3072), dtype=np.float32)\n",
+    "    labels = np.empty((0), dtype=np.int64)\n",
+    "    for filename in os.listdir(path_folder):\n",
+    "        if filename.startswith(\"data_batch\") or filename == \"test_batch\":\n",
+    "            batch_path = os.path.join(path_folder, filename)\n",
+    "            d, l = read_cifar_batch(batch_path)\n",
+    "            data = np.concatenate((data, d), axis=0)\n",
+    "            labels = np.concatenate((labels, l), axis=None)\n",
+    "    return(data,labels)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 35,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "def split_dataset(data, labels, split_factor):\n",
+    "    num_samples = len(data)\n",
+    "    shuffled_indices = np.random.permutation(num_samples)\n",
+    "    split_index = int(num_samples * split_factor)\n",
+    "\n",
+    "    data_train = data[shuffled_indices[:split_index],:]\n",
+    "    labels_train = labels[shuffled_indices[:split_index]]\n",
+    "    data_test = data[shuffled_indices[split_index:],:]\n",
+    "    labels_test = labels[shuffled_indices[split_index:]]\n",
+    "\n",
+    "    return data_train, labels_train, data_test, labels_test"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 37,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "[6 9 9 4 1 1 2 7 8 3]\n",
+      "[9 6 7 4 8 1 3 1 9] [2]\n"
+     ]
+    }
+   ],
+   "source": [
+    "if __name__ == \"__main__\":\n",
+    "    #read_cifar_batch(\"data/cifar-10-batches-py/data_batch_1\")\n",
+    "    d, l = read_cifar(\"data/cifar-10-batches-py\")\n",
+    "    print(l[0:10])\n",
+    "    d_1, l_1, d_2, l_2 = split_dataset(d[:10,:], l[:10], 0.9)\n",
+    "    print(l_1,l_2)\n",
+    "    d_1, l_1, d_2, l_2 = split_dataset(d[:10,:], l[:10], 0.9)\n",
+    "    print(l_1,l_2)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 38,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA68AAAGpCAYAAABiXgDdAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAADRCElEQVR4nOy9d5glVbX+v+rk2H06h0k9zDDDADMECTKEGZJKEgSu6IiA4DWh1+w1khQDV+9Xr4reaw6AogICIookRQbJGSYwuXu6p9Ppk1NV/f7wmf6x613AAQnV8H6eh+eh1uyq2mHttffuc9Z7LNd1XSGEEEIIIYQQQnxM4JWuACGEEEIIIYQQ8lzw8EoIIYQQQgghxPfw8EoIIYQQQgghxPfw8EoIIYQQQgghxPfw8EoIIYQQQgghxPfw8EoIIYQQQgghxPfw8EoIIYQQQgghxPfw8EoIIYQQQgghxPfw8EoIIYQQQgghxPc878OrZVlN/Xfbbbf9SxW74IILxLKsf+kZfuLxxx+XCy64QDZt2vRKV+U5ue2228SyLPntb3/7nGW1cVq5cqWsXLnyJardq5vXwvzatGmTWJYlX//611+R9xP/81qYB6VSSS644IJ/uQ3/KpZlyQc/+MFXtA6kOV4L80Lkn2vEcccdJ+3t7WJZlnzkIx95xepC/MNrwf+fz/7opz/9qViW9S+dK3a+76c//ekLfsYrQej53rB69Wrj+otf/KLceuutcssttxj23Xff/V+q2Lvf/W5505ve9C89w088/vjjcuGFF8rKlStlYGDgla7Oi8arbZxeaTi/CHltzINSqSQXXnihiAj/2Eea4rUwL0REPvrRj8o//vEP+fGPfyy9vb3S19f3itWF+IfXiv83y3HHHSerV69+Tc6P5314ff3rX29cd3V1SSAQALuXUqkkiUSi6ffMnj1bZs+e/XyrR15mOE4vLpxfLx7Pt0+If+A8QOjP5LUyLx599FE54IAD5KSTTnrWcvV6XSzLklDoeW9lyQzkteL/zdLV1SVdXV3PWe7VuHa8JDmvK1eulD333FP++te/yvLlyyWRSMjZZ58tIiK//vWv5Q1veIP09fVJPB6XJUuWyKc//WkpFovGM7SP7QcGBuT444+XG2+8Ufbdd1+Jx+Oy2267yY9//OMXvQ0XXnihHHjggdLe3i4tLS2y7777yo9+9CNxXdcoZ1mWXHDBBXD/wMCAnHXWWSLyz4/2/+3f/k1ERA4//PDprzY8/WP6H//4x7LXXntJLBaT9vZ2ectb3iJPPPGE8cyzzjpLUqmUPPnkk/LGN75Rksmk9PX1yVe/+lUREbnrrrvkkEMOkWQyKYsWLZKf/exnUK9HH31UTjzxRGlra5NYLCZ77723Wk5EpFKpyMc+9jHp7e2VeDwuK1askAceeMAo0+zXK2q1mnzpS1+S3XbbTaLRqHR1dcm73vUuGR0dfc57icmrYX7t5L//+79l/vz5kkql5KCDDpK77roLylx77bVy0EEHSSKRkHQ6LUcffTT8BXZne+6//3459dRTpa2tTRYsWCAiIhs2bJC3ve1t0t/fL9FoVHp6euTII4+UBx980HjGr3/9aznooIMkmUxKKpWSN77xjeDvxD/M5HmwadOm6U3HhRdeOL0m7Fwzns2fnykt46yzzoJv9VSrVbnoootkyZIlEovFpKOjQw4//HC58847n7FuruvKZz/7WQmHw/KDH/zgRWkvefmYyfNiZ8rS+vXr5Y9//OP0vNi0adP0v/3iF7+Qj3/84zJr1iyJRqOyfv16EWluDyUi8oMf/EAWLVok0WhUdt99d7n88svVuUNmJjPZ/5+O4zhy8cUXy9y5cyUWi8l+++0nN998s1FG+9rws7V/aGhI3vrWt0o6nZbW1lY57bTTZHh4+CWp/0vNSybYtH37djn99NNl1apVcsMNN8gHPvABERFZt26dHHvssfKjH/1IbrzxRvnIRz4iV155pZxwwglNPfehhx6Sj3/84/LRj35Ufv/738uyZcvknHPOkb/+9a/Pee9ZZ53V9PfDN23aJO9973vlyiuvlKuuukpOPvlk+dCHPiRf/OIXm6rn0znuuOPky1/+soiIfPe735XVq1fL6tWr5bjjjhMRka985StyzjnnyB577CFXXXWVfOtb35KHH35YDjroIFm3bp3xrHq9LieffLIcd9xx8vvf/16OOeYY+cxnPiOf/exn5cwzz5Szzz5brr76alm8eLGcddZZct99903fu2bNGlm+fLk89thj8j//8z9y1VVXye677y5nnXWWXHLJJVDvz372s7Jhwwb54Q9/KD/84Q9laGhIVq5cKRs2bHhe7XccR0488UT56le/KqtWrZI//OEP8tWvflVuuukmWblypZTL5efbpa95Zvr8EvnnXLjpppvkm9/8plx22WVSLBbl2GOPlampqekyl19+uZx44onS0tIiV1xxhfzoRz+SyclJWblypdxxxx3wzJNPPlkWLlwov/nNb+T73/++iIgce+yxct9998kll1wiN910k3zve9+TffbZR7LZ7PR9X/7yl+Xtb3+77L777nLllVfKL37xC8nn83LooYfK448/3lR7yMvPTJ0HfX19cuONN4qIyDnnnDO9JnzhC18wymn+3CyNRkOOOeYY+eIXvyjHH3+8XH311fLTn/5Uli9fLlu2bFHvqVarsmrVKvnOd74j1113nfz7v//783on8QczdV7su+++snr1aunt7ZWDDz54el48/WuRn/nMZ2TLli3y/e9/X6677jrp7u5ueg/1f//3f/Ke97xHli1bJldddZV8/vOflwsvvPAVzzsnLy4z1f+fzne+8x258cYb5Zvf/Kb88pe/lEAgIMcccwz84V5Da3+5XJajjjpK/vznP8tXvvIV+c1vfiO9vb1y2mmnNVUf3+H+i5x55pluMpk0bCtWrHBFxL355puf9V7Hcdx6ve7efvvtroi4Dz300PS/nX/++a63evPmzXNjsZi7efPmaVu5XHbb29vd9773vc9Z17PPPtsNBoPupk2bmmnaNLZtu/V63b3ooovcjo4O13Gc6X8TEff888+He+bNm+eeeeaZ09e/+c1vXBFxb731VqPc5OSkG4/H3WOPPdawb9myxY1Go+6qVaumbWeeeaYrIu7vfve7aVu9Xne7urpcEXHvv//+afv4+LgbDAbdj33sY9O2t73tbW40GnW3bNlivOuYY45xE4mEm81mXdd13VtvvdUVEXffffc12rpp0yY3HA677373u6dt2jitWLHCXbFixfT1FVdcAfV2Xde95557XBFxL730UpfovBrn18aNG10RcZcuXeo2Go1p+9133+2KiHvFFVe4rvvPedff3+8uXbrUtW17ulw+n3e7u7vd5cuXQ3vOO+88411jY2OuiLjf/OY3n7E+W7ZscUOhkPuhD33IsOfzebe3t9d961vf+pxtJy8tr8Z5MDo6+ozrxzP5s+tifN3JmWee6c6bN2/6+uc//7krIu4PfvCDZ62HiLjnnnuuOz4+7h5yyCHurFmz3AcffPBZ7yH+4NU4L3a+67jjjjNsO/clhx12mGFvdg9l27bb29vrHnjg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miUQCMgll1wiDz74oBx//PFy7bXXym9+8xs5/PDDJZvNTv9E1LPx8MMPy2GHHSbf/va35cYbb5RbbrlFPv/5z8vDDz8sRx99tIj88zBw0UUXyec+9zl53/veJ9dcc43cfvvtcuWVV8onPvGJF3UOkpeemTIP0um0zJs3T37/+9/Ln//8Z7n33nubUqJ85zvfKRMTE3L66afLn//8Z7niiivkqKOOkpaWFqPc29/+djn88MPlfe97n/znf/6n3HjjjXLDDTfI+eefL7/61a/UZ3/4wx+WH/zgB3LJJZfIhz70IfhpODJzmSnz4vnS7B4qEAjIhRdeKP/4xz/k1FNPlRtuuEEuv/xyOfroo6Wvr4/pIa9yZpr/B4NBOfroo+Xqq6+W3/3ud3LkkUdKLpeTCy+88AW9/4wzzpBFixbJGWecId/97nflz3/+s3zkIx+RP/3pTy/oea80L+ts7ejokD/84Q+SSCTk9NNPl7PPPltSqZT8+te/flneb9u22Lb9nAvyEUccIT/+8Y/lkUcekRNOOEE+97nPyamnniqf/vSnoewnP/lJ+eQnPyk//elP5YQTTpDf/e53cuWVV0omkzHKzZ8/X775zW/KQw89JCtXrpT9999frrvuOhH5p/T7D3/4Q3nooYfkpJNOkg9+8IOyxx57yJ133im77rrri9b+xYsXy5133imLFy+Wc889V0466SR59NFH5Sc/+Yl88pOfhPJf/vKXZd68efKud71Lzj77bOnr65Nbb711+vcGmyUYDMq1114rn/3sZ+Wqq66St7zlLXLSSSfJV7/6VYnFYrJ06dIXq4mvaWbK/Ho+rFq1Sq655hoZHx+X0047Td71rndJS0uL3HrrrXLIIYc85/29vb2yYMECufTSS+XUU0+VE088Ua677jr5xje+IRdddNF0uc985jPy29/+VtauXStnnnmmvPGNb5RPfepTsnnzZjnssMNetPaQl56ZNA9+9KMfSSKRkDe/+c2y//77q78Z7uXggw+Wn/3sZ/LYY4/JiSeeKF/60pfkM5/5DHwjJhQKyQ033CCf+cxn5Oqrr5YTTzxRzjjjDLnjjjue9evx55xzjlx22WXy/e9/X8455xwQOCMzk5k0L54vze6h3vOe98j//d//yUMPPSRvectb5MILL5RPf/rTss8++8Cejby6mGn+/8EPflCOPvpo+Y//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jTfeKG9605vknHPOkXe/+90iIs/514SVK1fK7bffLq7rPu+6r169Wo444gg5/PDD5Qtf+IKIiLS0tBhlzj77bDnuuOPkF7/4hRSLRQmHw8/rHWeddZb88pe/lHPOOUcuuugiiUQicv/99z+jk7muK5/85Cflf/7nf+SHP/zhSx4cyIvHTJ4LruvKSSedJHfeeaecd955sv/++8vf//53OeaYY6Ds448/LsuXL5e5c+fKN77xDent7ZU//elP8h//8R8yNjY2/QeXUqkkK1askG3btslnP/tZWbZsmTz22GNy3nnnySOPPCJ/+ctfjD/2XHPNNfK3v/1NzjvvPOnt7ZXu7u7n3Q7iT2by3BBpLo6vW7dOjj32WPnIRz4iyWRSnnzySfna174md9999/TX+L7whS9IsViU3/72t8am6JX4uhd56ZjJ/r569Wo57bTT5LTTTpMLLrhAYrGYbN68Gb6KKiLy2c9+Vg4++GD54Q9/KLlcTv7zP/9TTjjhBHniiSckGAw+63uuvfZaufXWW+Wiiy6SZDIpl156qbz97W+XUCgkp5566vOuN0Fmsh+KiDz11FOyatWq6T9+P/TQQ3LxxRfLk08+KT/+8Y+f17P23Xdf+clPfiLvete75POf/7wcd9xxIiIye/ZsERG5/PLL5R3veIe84Q1vkCuuuEKq1apccsklsnLlSrn55pvlkEMOMZ731re+VU4//XR573vfKzfddNP0ofovf/mLfOADH5BPfOITcvnll8t//ud/ysKFC+Xkk08WEZHR0VFZvny51Go1+eIXvygDAwNy/fXXyyc+8Ql56qmn5NJLLzXe853vfEfmzZsn3/zmN8VxHLnkkkvkmGOOkdtvv10OOuig59UH733ve+WnP/2p/Md//Id87Wtfk4mJCbnoootk+fLl8tBDD0lPT8/zep6IiLgzhDPPPNNNJpPT11dccYUrIu7vfvc7o9w999zjioh76aWXuq7rur/97W9dEXEffPDBZ3z26OioKyLu+eef33R9jjjiCDcYDD6/RjyNZDLpnnnmmWD/yU9+4oqIe8YZZ8C/nXnmme68efPAfv7557tPH8q//vWvroi4n/vc5561DvPmzXOPO+44t1Qquaeccorb2trq/uUvf3nebSEvL6+mufDHP/7RFRH3W9/6lmG/+OKLoR5vfOMb3dmzZ7tTU1NG2Q9+8INuLBZzJyYmXNd13a985StuIBBw77nnHqPczvbfcMMN0zYRcVtbW6fvJTObV9PcaDaOPx3Hcdx6ve7efvvtroi4Dz300PS/nXvuue4MWvJJE7ya/P3rX/+6KyJuNpt9xjK33nqrKyLusccea9ivvPJKV0Tc1atXT9u0/ZKIuPF43B0eHp62NRoNd7fddnMXLlz4gupNXl1+6MW2bbder7s///nP3WAwaOwV5s2bp+7jV6xY4a5YsWL6eme7f/KTn8Cz+/v73aVLl7q2bU/b8/m8293d7S5fvnzatnOf/41vfMN4xt577+2KiHvVVVdN2+r1utvV1eWefPLJ07ZPf/rTroi4//jHP4z73//+97uWZblr1qxxXdd1N27c6IqI29/f75bL5elyuVzObW9vd4866qhp287zysaNG6dt3nm3evVqtd5bt2514/G4+6lPfcrbfU0xY782fP3110smk5ETTjhBGo3G9H9777239Pb2TiuT7b333hKJROQ973mP/OxnP/uXPqZ+OjfffLM0Go0X5Vkap5xyygu+949//KOIiJx77rnPWXZ8fFyOOOIIufvuu+WOO+6QI4888gW/l7wyzOS5cOutt4qIyDve8Q7DvmrVKuO6UqnIzTffLG95y1skkUgY7Tz22GOlUqnIXXfdJSL/7I8999xT9t57b6PcG9/4RlUB8YgjjpC2trYXVH/ib2by3Gg2jm/YsEFWrVolvb29EgwGJRwOy4oVK0RE5IknnnhB7yYzk5ns7zu/WvnWt75VrrzyShkcHHzGsm9+85uN62XLlomIyObNm5/zPUceeaTxSU8wGJTTTjtN1q9fL9u2bXshVSceZrIfiog88MAD8uY3v1k6OjqmY+oZZ5whtm0/Y0rTC2HNmjUyNDQk73znOyUQ+P+PY6lUSk455RS56667pFQqGfd4fyFkyZIlYlmW8W21UCgkCxcuNObDLbfcIrvvvrsccMABxv1nnXWWuK4L33A4+eSTJRaLTV+n02k54YQT5K9//avYtt10G6+//nqxLEtOP/10wxd6e3tlr732esEq0jP28DoyMiLZbFYikYiEw2Hjv+HhYRkbGxORfybt/+Uvf5Hu7m4599xzZcGCBbJgwQL51re+9Qq34Nn5V77ONTo6KsFgUHp7e5+z7Nq1a+Uf//iHHHPMMbLnnnu+4HeSV46ZPBfGx8clFApJR0eHYff67vj4uDQaDfn2t78NbTz22GNFRKbbOTIyIg8//DCUS6fT4rrudLmd8KuTr15m8txoJo4XCgU59NBD5R//+Id86Utfkttuu03uueceueqqq0Tkn2J/5LXDTPb3ww47TK655hppNBpyxhlnyOzZs2XPPfeUK664Asp614toNCoizfm7Np922sbHx19I1YmHmeyHW7ZskUMPPVQGBwflW9/6lvztb3+Te+65Z1oz4MWMqTv9TduD9Pf3i+M4Mjk5adjb29uN60gkIolEwjho7rRXKhXjXc/0nqfXZSfPNE9qtZoUCoVna5bByMiIuK4rPT094At33XUX7MeaZcbmvHZ2dkpHR4fceOON6r+n0+np/z/00EPl0EMPFdu25d5775Vvf/vb8pGPfER6enrkbW9728tV5eeFpiwci8WkWq2C3Tv4XV1dYtu2DA8PP+fG/KCDDpJ/+7d/k3POOUdERL73ve8ZfwEi/mcmz4WOjg5pNBoyPj5ubEiGh4eNcm1tbRIMBuWd73znM34SNX/+fBH5Z3/E4/FnzE3p7Ow0rqni/eplJs+NZuL4LbfcIkNDQ3LbbbdNf9oqIpLNZl+mWhI/MZP9XUTkxBNPlBNPPFGq1arcdddd8pWvfEVWrVolAwMDzzvP7pnwri1Pt3kPxeSFMZP98JprrpFisShXXXWVzJs3b9qu/Ubrs+3JvfsMjZ3+tn37dvi3oaEhCQQCL9q3wjo6Op7xPSK4L3qmeRKJRCSVSjX93s7OTrEsS/72t79N/5Hp6Wi2Zpixp5Tjjz9exsfHxbZt2W+//eC/xYsXwz3BYFAOPPDA6b+g3H///SLy/P5q92IRjUaf9/sGBgZkx44dMjIyMm2r1Wrypz/9ySi38+sD3/ve95p67plnnim/+tWv5Cc/+cn0VyPIzGEmz4XDDz9cREQuu+wyw3755Zcb14lEQg4//HB54IEHZNmyZWo7dy4Exx9/vDz11FPS0dGhluMP1792mMlzo5k4vvMPL94NwP/+7/9C2VdinSMvLzPZ359ONBqVFStWyNe+9jUR+efXOF8sbr75ZmMPZdu2/PrXv5YFCxZMi+iQf42Z7IdaTHVdV37wgx9A2YGBAXn44YcN29q1a0H5+pnasHjxYpk1a5ZcfvnlhrhUsViU3/3ud9MKxC8GRx55pDz++OPT/bqTn//852JZ1vRebCdXXXWV8cltPp+X6667Tg499NDnFEV7Oscff7y4riuDg4OqLyxduvQFtWfGfvL6tre9TS677DI59thj5cMf/rAccMABEg6HZdu2bXLrrbfKiSeeKG95y1vk+9//vtxyyy1y3HHHydy5c6VSqUx/InPUUUeJyD//CjRv3jz5/e9/L0ceeaS0t7dLZ2fns25yjzzySLn99ttf8Pfqly5dKrfddptcd9110tfXJ+l0Wp3QT+e0006T8847T972trfJJz/5SalUKvI///M/cNg89NBD5Z3vfKd86UtfkpGRETn++OMlGo3KAw88IIlEQj70oQ/Bs0899VRJJBJy6qmnSrlcliuuuEIikcgLaht5eZnJc+ENb3iDHHbYYfKpT31KisWi7LfffvL3v/9dfvGLX0DZb33rW3LIIYfIoYceKu9///tlYGBA8vm8rF+/Xq677rrpnI2PfOQj8rvf/U4OO+ww+ehHPyrLli0Tx3Fky5Yt8uc//1k+/vGPy4EHHvi860pmHjN5bjQTx5cvXy5tbW3yvve9T84//3wJh8Ny2WWXyUMPPQTP27lJ+NrXvibHHHOMBINBWbZsGeP8q4iZ7O/nnXeebNu2TY488kiZPXu2ZLNZ+da3vmXkcL8YdHZ2yhFHHCFf+MIXptWGn3zySf5czovITPbDo48+WiKRiLz97W+XT33qU1KpVOR73/sefH1XROSd73ynnH766fKBD3xATjnlFNm8ebNccskloIa8YMECicfjctlll8mSJUsklUpJf3+/9Pf3yyWXXCLveMc75Pjjj5f3vve9Uq1W5b/+678km83KV7/61edd/2fiox/9qPz85z+X4447Ti666CKZN2+e/OEPf5BLL71U3v/+98uiRYuM8sFgUI4++mj52Mc+Jo7jyNe+9jXJ5XJy4YUXPq/3HnzwwfKe97xH3vWud8m9994rhx12mCSTSdm+fbvccccdsnTpUnn/+9///Bv0gmSeXgG8amau+09Fra9//evuXnvt5cZiMTeVSrm77bab+973vtddt26d67r/VLp6y1ve4s6bN8+NRqNuR0eHu2LFCvfaa681nvWXv/zF3WeffdxoNOqKiKog9nRWrFjxLyk3Pvjgg+7BBx/sJhIJV0Smlcl2qnd5lVJ3csMNN7h77723G4/H3V122cX9zne+A2rDrvtPFbP/9//+n7vn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",
+      "text/plain": [
+       "<Figure size 1200x500 with 10 Axes>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "import matplotlib.pyplot as plt\n",
+    "\n",
+    "def affichage(d_train, l_train, d_test, l_test):\n",
+    "    long, large = 5,2\n",
+    "\n",
+    "    with open(\"data/cifar-10-batches-py/batches.meta\", 'rb') as file:\n",
+    "        batch_data = pickle.load(file, encoding='bytes')\n",
+    "    liste_names= np.array(batch_data[b'label_names'])\n",
+    "    fig, axes = plt.subplots(large, long, figsize=(12, 5))\n",
+    "    fig.subplots_adjust(hspace=0.5)\n",
+    "    for i in range(len(l_train)):\n",
+    "        im = np.array(np.reshape(d_train[i, 0:3072], (32, 32, 3), order='F'), dtype=np.int64)\n",
+    "        im = np.transpose(im, (1, 0, 2))\n",
+    "        name=liste_names[l_train[i]]\n",
+    "        axes[i // long, i % long].imshow(im)\n",
+    "        axes[i // long, i % long].set_title(f\"Train : {name.decode('utf-8')}\")\n",
+    "        axes[i // long, i % long].axis('off')\n",
+    "    for i in range(len(l_test)):\n",
+    "        im = np.array(np.reshape(d_test[i, 0:3072], (32, 32, 3), order='F'), dtype=np.int64)\n",
+    "        im = np.transpose(im, (1, 0, 2))\n",
+    "        j = i + len(l_train)\n",
+    "        name=liste_names[l_test[i]]\n",
+    "        axes[j // long, j % long].imshow(im)\n",
+    "        axes[j // long, j % long].set_title(f\"Test :  {name.decode('utf-8')}\")\n",
+    "        axes[j // long, j % long].axis('off')    \n",
+    "    plt.show()\n",
+    "\n",
+    "if __name__ == \"__main__\":\n",
+    "    d, l = read_cifar(\"data/cifar-10-batches-py\")\n",
+    "    d_1, l_1, d_2, l_2 = split_dataset(d[:10,:], l[:10], 0.5)\n",
+    "    affichage(d_1, l_1, d_2, l_2)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 39,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "def distance_matrix(data_train, data_test):\n",
+    "    dist_mat=[]\n",
+    "    for image_test in data_test:\n",
+    "        dist_mat.append([])\n",
+    "        for image_train in data_train:\n",
+    "            dist_mat[-1].append(np.sum(np.square(image_train-image_test)))\n",
+    "    return(np.array(dist_mat))"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 40,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "def knn_predict(dist, labels_train, k):\n",
+    "    resultat=[]\n",
+    "    for image_test in dist:\n",
+    "        k_max = np.argpartition(image_test, k)[:k]\n",
+    "        val, count = np.unique(labels_train[k_max], return_counts=True)\n",
+    "        indexe = np.argmax(count)\n",
+    "        resultat.append(val[indexe])\n",
+    "    return (resultat)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 41,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "def evaluate_knn(data_train, labels_train, data_test, labels_test, k):\n",
+    "    dist_matrice = distance_matrix(data_train, data_test)\n",
+    "    res = knn_predict(dist_matrice, labels_train, k)\n",
+    "    return(np.sum(labels_test == res) / len(labels_test))"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 42,
+   "metadata": {},
+   "outputs": [
+    {
+     "ename": "KeyboardInterrupt",
+     "evalue": "",
+     "output_type": "error",
+     "traceback": [
+      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
+      "\u001b[1;31mKeyboardInterrupt\u001b[0m                         Traceback (most recent call last)",
+      "\u001b[1;32mc:\\Users\\Utilisateur\\Documents\\GitHub\\image-classification\\hello.ipynb Cell 11\u001b[0m line \u001b[0;36m5\n\u001b[0;32m      <a href='vscode-notebook-cell:/c%3A/Users/Utilisateur/Documents/GitHub/image-classification/hello.ipynb#X13sZmlsZQ%3D%3D?line=2'>3</a>\u001b[0m d, l \u001b[39m=\u001b[39m read_cifar_batch(\u001b[39m\"\u001b[39m\u001b[39mdata/cifar-10-batches-py/data_batch_1\u001b[39m\u001b[39m\"\u001b[39m)\n\u001b[0;32m      <a href='vscode-notebook-cell:/c%3A/Users/Utilisateur/Documents/GitHub/image-classification/hello.ipynb#X13sZmlsZQ%3D%3D?line=3'>4</a>\u001b[0m d_train, l_train, d_test, l_test \u001b[39m=\u001b[39m split_dataset(d, l, \u001b[39m0.9\u001b[39m)\n\u001b[1;32m----> <a href='vscode-notebook-cell:/c%3A/Users/Utilisateur/Documents/GitHub/image-classification/hello.ipynb#X13sZmlsZQ%3D%3D?line=4'>5</a>\u001b[0m dist_matrice \u001b[39m=\u001b[39m distance_matrix(d_train, d_test)\n\u001b[0;32m      <a href='vscode-notebook-cell:/c%3A/Users/Utilisateur/Documents/GitHub/image-classification/hello.ipynb#X13sZmlsZQ%3D%3D?line=5'>6</a>\u001b[0m y \u001b[39m=\u001b[39m []\n\u001b[0;32m      <a href='vscode-notebook-cell:/c%3A/Users/Utilisateur/Documents/GitHub/image-classification/hello.ipynb#X13sZmlsZQ%3D%3D?line=6'>7</a>\u001b[0m \u001b[39mfor\u001b[39;00m knn \u001b[39min\u001b[39;00m x:\n",
+      "\u001b[1;32mc:\\Users\\Utilisateur\\Documents\\GitHub\\image-classification\\hello.ipynb Cell 11\u001b[0m line \u001b[0;36m6\n\u001b[0;32m      <a href='vscode-notebook-cell:/c%3A/Users/Utilisateur/Documents/GitHub/image-classification/hello.ipynb#X13sZmlsZQ%3D%3D?line=3'>4</a>\u001b[0m     dist_mat\u001b[39m.\u001b[39mappend([])\n\u001b[0;32m      <a href='vscode-notebook-cell:/c%3A/Users/Utilisateur/Documents/GitHub/image-classification/hello.ipynb#X13sZmlsZQ%3D%3D?line=4'>5</a>\u001b[0m     \u001b[39mfor\u001b[39;00m image_train \u001b[39min\u001b[39;00m data_train:\n\u001b[1;32m----> <a href='vscode-notebook-cell:/c%3A/Users/Utilisateur/Documents/GitHub/image-classification/hello.ipynb#X13sZmlsZQ%3D%3D?line=5'>6</a>\u001b[0m         dist_mat[\u001b[39m-\u001b[39m\u001b[39m1\u001b[39m]\u001b[39m.\u001b[39mappend(np\u001b[39m.\u001b[39msum(np\u001b[39m.\u001b[39msquare(image_train\u001b[39m-\u001b[39mimage_test)))\n\u001b[0;32m      <a href='vscode-notebook-cell:/c%3A/Users/Utilisateur/Documents/GitHub/image-classification/hello.ipynb#X13sZmlsZQ%3D%3D?line=6'>7</a>\u001b[0m \u001b[39mreturn\u001b[39;00m(np\u001b[39m.\u001b[39marray(dist_mat))\n",
+      "File \u001b[1;32m<__array_function__ internals>:200\u001b[0m, in \u001b[0;36msum\u001b[1;34m(*args, **kwargs)\u001b[0m\n",
+      "File \u001b[1;32mc:\\Users\\Utilisateur\\anaconda3\\Lib\\site-packages\\numpy\\core\\fromnumeric.py:2324\u001b[0m, in \u001b[0;36msum\u001b[1;34m(a, axis, dtype, out, keepdims, initial, where)\u001b[0m\n\u001b[0;32m   2321\u001b[0m         \u001b[39mreturn\u001b[39;00m out\n\u001b[0;32m   2322\u001b[0m     \u001b[39mreturn\u001b[39;00m res\n\u001b[1;32m-> 2324\u001b[0m \u001b[39mreturn\u001b[39;00m _wrapreduction(a, np\u001b[39m.\u001b[39madd, \u001b[39m'\u001b[39m\u001b[39msum\u001b[39m\u001b[39m'\u001b[39m, axis, dtype, out, keepdims\u001b[39m=\u001b[39mkeepdims,\n\u001b[0;32m   2325\u001b[0m                       initial\u001b[39m=\u001b[39minitial, where\u001b[39m=\u001b[39mwhere)\n",
+      "File \u001b[1;32mc:\\Users\\Utilisateur\\anaconda3\\Lib\\site-packages\\numpy\\core\\fromnumeric.py:86\u001b[0m, in \u001b[0;36m_wrapreduction\u001b[1;34m(obj, ufunc, method, axis, dtype, out, **kwargs)\u001b[0m\n\u001b[0;32m     83\u001b[0m         \u001b[39melse\u001b[39;00m:\n\u001b[0;32m     84\u001b[0m             \u001b[39mreturn\u001b[39;00m reduction(axis\u001b[39m=\u001b[39maxis, out\u001b[39m=\u001b[39mout, \u001b[39m*\u001b[39m\u001b[39m*\u001b[39mpasskwargs)\n\u001b[1;32m---> 86\u001b[0m \u001b[39mreturn\u001b[39;00m ufunc\u001b[39m.\u001b[39mreduce(obj, axis, dtype, out, \u001b[39m*\u001b[39m\u001b[39m*\u001b[39mpasskwargs)\n",
+      "\u001b[1;31mKeyboardInterrupt\u001b[0m: "
+     ]
+    }
+   ],
+   "source": [
+    "if __name__ == \"__main__\":\n",
+    "    x = range(1, 20)\n",
+    "    d, l = read_cifar_batch(\"data/cifar-10-batches-py/data_batch_1\")\n",
+    "    d_train, l_train, d_test, l_test = split_dataset(d, l, 0.9)\n",
+    "    dist_matrice = distance_matrix(d_train, d_test)\n",
+    "    y = []\n",
+    "    for knn in x:\n",
+    "        stat = 0\n",
+    "        res = knn_predict(dist_matrice, l_train, knn)\n",
+    "        y.append(np.sum(l_test == res) / len(l_test))\n",
+    "    plt.plot(x, y, label='Précision')\n",
+    "    plt.xlabel('nombre de plus proche voisins concidérés')\n",
+    "    plt.ylabel('taux de bonne calification')\n",
+    "    plt.xticks(range(1, 20))  # Afficher des valeurs entières sur l'axe des abscisses\n",
+    "    plt.legend()\n",
+    "    plt.show()"
+   ]
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3",
+   "language": "python",
+   "name": "python3"
+  },
+  "language_info": {
+   "codemirror_mode": {
+    "name": "ipython",
+    "version": 3
+   },
+   "file_extension": ".py",
+   "mimetype": "text/x-python",
+   "name": "python",
+   "nbconvert_exporter": "python",
+   "pygments_lexer": "ipython3",
+   "version": "3.11.5"
+  },
+  "polyglot_notebook": {
+   "kernelInfo": {
+    "defaultKernelName": "csharp",
+    "items": [
+     {
+      "aliases": [],
+      "name": "csharp"
+     }
+    ]
+   }
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}
diff --git a/kkn.py b/kkn.py
index 5af94e2..f58a38b 100644
--- a/kkn.py
+++ b/kkn.py
@@ -29,14 +29,14 @@ def affichage(d_train, l_train, d_test, l_test):
     liste_names= np.array(batch_data[b'label_names'])
     fig, axes = plt.subplots(large, long, figsize=(12, 5))
     fig.subplots_adjust(hspace=0.5)
-    for i in range(len(l_train)):
+    for i,_ in enumerate(l_train):
         im = np.array(np.reshape(d_train[i, 0:3072], (32, 32, 3), order='F'), dtype=np.int64)
         im = np.transpose(im, (1, 0, 2))
         name=liste_names[l_train[i]]
         axes[i // long, i % long].imshow(im)
         axes[i // long, i % long].set_title(f"Train : {name.decode('utf-8')}")
         axes[i // long, i % long].axis('off')
-    for i in range(len(l_test)):
+    for i,_ in enumerate(l_test):
         im = np.array(np.reshape(d_test[i, 0:3072], (32, 32, 3), order='F'), dtype=np.int64)
         im = np.transpose(im, (1, 0, 2))
         j = i + len(l_train)
diff --git a/read_cifar.py b/read_cifar.py
index 69bd189..23b9881 100644
--- a/read_cifar.py
+++ b/read_cifar.py
@@ -1,13 +1,14 @@
+"""import numpy"""
 import numpy as np
 import pickle
 import os
 
 def read_cifar_batch(batch_path):
+    """F"""
     with open(batch_path, 'rb') as file:
         batch_data = pickle.load(file, encoding='bytes')
     data = np.array(batch_data[b'data'], dtype=np.float32)
     labels = np.array(batch_data[b'labels'], dtype=np.int64)
-
     return data, labels
 
 def read_cifar(path_folder):
@@ -22,6 +23,7 @@ def read_cifar(path_folder):
     return(data,labels)
 
 def split_dataset(data, labels, split_factor):
+    """fonction"""
     num_samples = len(data)
     shuffled_indices = np.random.permutation(num_samples)
     split_index = int(num_samples * split_factor)
@@ -32,7 +34,7 @@ def split_dataset(data, labels, split_factor):
     labels_test = labels[shuffled_indices[split_index:]]
 
     return data_train, labels_train, data_test, labels_test
-    
+
 
 if __name__ == "__main__":
     #read_cifar_batch("data/cifar-10-batches-py/data_batch_1")
diff --git a/requirements.txt b/requirements.txt
new file mode 100644
index 0000000..70dd3f4
--- /dev/null
+++ b/requirements.txt
@@ -0,0 +1,2 @@
+numpy
+open-cv
\ No newline at end of file
diff --git a/result/desktop.ini b/result/desktop.ini
new file mode 100644
index 0000000..b06519f
--- /dev/null
+++ b/result/desktop.ini
@@ -0,0 +1,2 @@
+[.ShellClassInfo]
+IconResource=C:\Program Files\Google\Drive File Stream\82.0.1.0\GoogleDriveFS.exe,22
diff --git a/test.py b/test.py
new file mode 100644
index 0000000..cfb0fb4
--- /dev/null
+++ b/test.py
@@ -0,0 +1,12 @@
+import numpy as np
+
+def count_matching_elements(vector1, vector2):
+    if len(vector1) != len(vector2):
+        raise ValueError("Les vecteurs doivent avoir la même taille.")
+
+    matching_elements = np.sum(vector1 == vector2)
+    return matching_elements
+
+# Exemple d'utilisation
+vector1 = np.array([1, 2, 3, 4, 5])
+vector2 = np.array([1, 0, 3, 3, 5])
-- 
GitLab