Université de Bordeaux, Master Mention Informatique

Intelligence Artificielle

Deep Learning, projet

Présentation

On souhaite entraîner un réseau à reconnaître des chiffres et des lettres. Pour cela, nous utilisons deux corpus :

  • mnist dèjà vu en cours et en td,

  • letters qui est un échantillon extrait d'un corpus plus conséquent : emnist

Préparation des donnéees

La clellule suivante permet de charger les données et définit la fonction load_letters. Cette fonction réalise une tâche semblable à la fonction load_data de mnist.

Remarque : le chargement du corpus peut prendre du temps, la cellule est donc à exécuter une seule fois.

In [1]:
import numpy as np
import pandas as pa
letters_train = pa.read_csv(
    'https://www.labri.fr/perso/zemmari/datasets/emnist/emnist-letters-train.csv',
    header=None)
letters_test = pa.read_csv(
    'https://www.labri.fr/perso/zemmari/datasets/emnist/emnist-letters-test.csv',
    header=None)
def load_letters():
    X_train = np.array(letters_train.iloc[:, 1:785])
    y_train = np.array(letters_train.iloc[:, 0])
    y_train = y_train - 1
    X_test = np.array(letters_test.iloc[:, 1:785])
    y_test = np.array(letters_test.iloc[:, 1])
    y_test = y_test -1 
    X_train = np.reshape(X_train, (X_train.shape[0], 28, 28))
    X_test = np.reshape(X_test, (X_test.shape[0], 28, 28))
    return (X_train, y_train), (X_test, y_test)

Partie 1.

  1. Chergez les données et faites les formatages nécessaires.

  2. Définissez un réseau permettant de classifier les lettres.

  3. Testez différentes architectures avec différents hyperparamètres.

  4. Expliquez à chaque fois vos choix et vos résultats.

Partie 2.

On souuhaite à présent disposer d'un réseau permettant de classifier une image soit en lettre, soit en chiffre.

  1. Faites les manipulations nécessaires pour constituer votre corpus de données. Pour cela, vous pouvez utiliser les deux fonctions load_data() de mnist et load_letters() de la cellule précédente.

  2. Définissez, testez et expliquez des architectures permettant de différentier les deux catégories

In [ ]: