# TD 1 : Image Classification MOD 4.6 Deep Learning & Artificial Intelligence: an introduction ## Introduction The objective of this tutorial is to write a complete image classification program in Python. Two classification models will be successively developed and tested: k-nearest neighbors (KNN) and neural networks (NN). ## Description This project contains several files and directory. A brief description of each is given. - `data/`: This directory contains the raw dataset, downloaded from the [CIFAR-10 website](https://www.cs.toronto.edu/~kriz/cifar.html). This directory should contain the folder `cifar-10-batches-py/`, found within the tar file downloadable from the website. This folder is ignored from source tracking, so it should be created manually. - `tests/`: This folder contains tests for each functionality. The test files are named `test_{source-file-to-test}.py`, and the functions to test are named `test_{function-to-test}`. - `results/`: This folder contains some of the results generated by the program. - `knn.py`: Contains functions related to the KNN algorithm. - `read_cifar.py`: Contains functions related to reading and parsing the CIFAR-10 dataset. - `mlp.py`: Contains functions related to the Neural Network algorithm. - `main.ipynb`: Jupyter Notebook containing the main program. It is used to test the algorithms and generate the results. It also contains some descriptions regarding the algorithms, notably a mathematical description of the Neural Network algorithm. ## Usage This program was made using the latest version of Python, `3.11.5`. This program requires the following packages: - `numpy==1.26.1` - `notebook==7.0.6` - `scikit-image==0.22.0` - `pytest==7.4.2` The CIFAR-10 dataset should be downloaded and the extracted contents should be placed a `data` folder in the root of the project, before any execution. To trigger the tests, one should simply run `pytest` while on the root directory. The main program is contained in the `main.ipynb` file. It can be run using Jupyter Notebook or Jupyter Lab. The results are generated in the `results` folder. ## References - Data Source : The CIFAR-10 Dataset. <https://www.cs.toronto.edu/~kriz/cifar.html> - Assignment repository <https://gitlab.ec-lyon.fr/edelland/mod_4_6-td1>