Mercurial > ift6266
diff scripts/nist_read.py @ 3:5b0772bf4576
exemple d'un script qui charges les donnees NIST en memoire et affiche la premiere chiffre
author | Dumitru Erhan <dumitru.erhan@gmail.com> |
---|---|
date | Sun, 24 Jan 2010 22:51:58 -0500 |
parents | |
children | 7fb10ae0efec |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/scripts/nist_read.py Sun Jan 24 22:51:58 2010 -0500 @@ -0,0 +1,43 @@ +#!/usr/bin/env python + +# L'execution de "ipython -pylab nist_read.py" est recommande + +# Pour lire les fichiers NIST, qui sont en format filetensor, il vous faut la +# librarie pylearn, disponible en executant: +# hg clone http://hg.assembla.com/pylearn Pylearn +# et en mettant le repertoire Pylearn dans votre PYTHONPATH + +from pylearn.io import filetensor as ft +import pylab, numpy + +# repertoire qui contient les donnees NIST +# le repertoire suivant va fonctionner si vous etes connecte sur un ordinateur +# du reseau DIRO +datapath = '/data/lisa/data/nist/by_class/' + +# le fichier .ft contient chiffres NIST dans un format efficace. Les chiffres +# sont stockes dans une matrice de NxD, ou N est le nombre d'images, est D est +# le nombre de pixels par image (32x32 = 1024). Chaque pixel de l'image est une +# valeur entre 0 et 255, correspondant a un niveau de gris. Les valeurs sont +# stockees comme des uint8, donc des bytes. +f = open(datapath+'digits/digits_train_data.ft') + +# Verifier que vous avez assez de memoire pour loader les donnees au complet +# dans le memoire. Sinon, utilisez ft.arraylike, une classe construite +# specialement pour des fichiers +d = ft.read(f) + +# Affichage d'une image +pylab.imshow(d[0].reshape((32,32))) +pylab.show() + +# NB: N'oubliez pas de diviser les valeurs des pixels par 255. si jamais vous +# utilisez les donnees commes entrees dans un reseaux de neurones et que vous +# voulez des entres entre 0 et 1. + +# digits_train_data.ft contient les images, digits_train_labels.ft contient les +# etiquettes +f = open(datapath+'digits/digits_train_labels.ft') +labels = ft.read(f) +print 'etiquette: ', labels[0] +