Version 11, last updated by doomie at January 25, 2010 07:05 UTC

Le jeu de données NIST Special Database 19 est disponible sur le réseau DIRO: /data/lisa/data/nist/by_class/. Le fichier README contient plus d'information sur la manière dont les données ont été rassemblées. SVP ne pas distribuer les données à l'extérieur du cours, car cela violerait notre license.

Pour pouvoir lire les données en Python, il vous faut la librairie Pylearn. Elle peut être téléchargée avec:

  hg clone http://hg.assembla.com/pylearn Pylearn

Comme avec Theano, il faut changer la variable d'environnement PYTHONPATH pour qu'elle contienne le repertoire Pylearn. Une fois fait, vous devrez être capable de faire "from pylearn.io import filetensor as ft" et lire les données avec la fonction ft.read().

Un exemple d'un script qui charge quelques images dans la mémoire est disponible dans scripts/nist_read.py de la base de code du projet.

NB: Le code mlp.py charge le jeu de données MNIST (un jeu de données different et plus petit que NIST) dans la mémoire et construit une liste des mini-batch pour l'entraînement. Avec notre jeu de données, NIST, le charger au complet dans la mémoire est possible, mais créer tous les mini-batchs et transformer les pixels entre 0 et 1 n'est pas recommandé car cela risque de remplir votre mémoire très rapidement (à cause que les valeurs entre 0 et 1 vont occuper au moins 4 octets chaque, comparé a 1 octet par pixel dans la représentation courante).

Une solution très simple c'est de générer les mini-batchs et transformer les pixels entre 0 et 1 au besoin (à la volée), par exemple en rajoutant une fonction qui prend comme argument une liste d'indices dans l'ensemble d'entraînement et retourne un mini-batch avec les bonnes valeurs (entre 0 et 1) pour les pixels. Une autre solution serait de créer une représentation sur disque des minibatchs traités or ordonnés, qu'il ne resterait plus qu'à charger en mémoire. Finalement, on peut aussi utiliser pylearn.io.filetensor.arraylike, une structure de données spécialement conçue pour des données comme NIST.