Charger la base MNIST avec Matlab

Base de données MNIST de nombres manuscrits chargé avec Matlab

Cette page explique comment charger le jeu de données MNIST de chiffre manuscrits avec Matlab. Cette page s'appuie sur le convertisseur développé par Markus Mayer, disponible sur Github. Si vous avez atteind cette page, vous n'avez pas forcement à télécharger et exécuter convertisseur, je l'ai fait pour vous ! Le fichier .mat généré par le convertisseur de Markus Mayer qui contient toutes les données est téléchargeable ci-dessous :

Charger les données

Une fois que le fichier mnist.mat est téléchargé, exécuter la commande ci-dessous pour charger le jeu de données dans Matlab :

load ('mnist.mat')

Une fois le fichier chargé, tapez la commande who pour lister les variables :

>> who

Your variables are:

test      training  

La variable training contient le jeu d'entrainement et la variable test contient le jeu de test (ou vérification)

Jeu de données mnist de chiffres manuscrits chargé dans Matlab

Chaque variable est composé des éléments suivants:

Nom Description
count Nombre d'images dans le jeu de données
width Largeur de chaque image
height Hauteur de chaque image
images Données des images (voir ci-dessous)
labels Etiquette de chaque image, chiffre écrit dans l'image

La variable images est un tableau de width x height x count contenant la valeur en dégradé de gris de chaque pixel codé entre 0 et 1.

Afficher les images

Pour vérifier que le jeu de données est correctement chargé, il est possible d'afficher un chiffre avec la commande suivante :

image (training.images(:,:,18)*255);

Comme l'image est codée avec des valeurs comprises entre 0 et 1, il faut convertir ses valeurs entre 0 et 255. La fonction Matlab rescale est destinée à ce type de conversion.

image (rescale(training.images(:,:,18),0,255));

Voici le résultat :

Affiche une image du jeu de données MNIST avec Matlab

Notez que pour obtenir une coloration linéaire, j'ai modifié la propriété CDataMapping de l'image :

im = image (rescale(training.images(:,:,18),0,255));
im.CDataMapping = 'scaled';

La commande suivante force la même échelle sur chaque axe :

axis square equal

Affiche à l'échelle une image du jeu de données MNIST avec Matlab

La commande suivante affiche l'image en dégradé de gris :

colormap(gray)

Enfin, vous pouvez ajouter l'échelle des niveau de gris:

colorbar

Affiche l'échelle des niveaux de gris avec une image de la base MNIST dans Matlab

Obtenir l'étiquette d'une image

Comme les étiquettes sont stockées dans la base de données, il est relativement facile d'obtenir l'étiquette associée à une image :

>> training.labels(18)

ans =

     8

Par exemple, on peut afficher l'étiquette dans le titre de la figure :

title (sprintf ("Digit: %d", training.labels(18)))

Etiquette de l'image MNIST dans le titre de la figure Matlab

Téléchargement


Dernière mise à jour : 20/01/2023