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 :
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)
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.
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 :
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
La commande suivante affiche l'image en dégradé de gris :
colormap(gray)
Enfin, vous pouvez ajouter l'échelle des niveau de gris:
colorbar
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)))