changeset 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 bcc87d3e33a3
children 7fb10ae0efec
files scripts/nist_read.py
diffstat 1 files changed, 43 insertions(+), 0 deletions(-) [+]
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]
+