Ejemplo n.º 1
0
"""Vary regularization parameter (lambda) and check against validation set"""

import numpy
import random
import matplotlib.pyplot as plt
import nn

# load training, validatin, and test data
# train: m=50000 images of n=28x28=784 pixels each
# valid: m=10000 images of n=28x28=784 pixels each
# test: m=10000 images of n=28x28=784 pixels each
# each image (and label) is a digit in the range 0-9
#====================================================================
mnist_data = numpy.load('data/mnist_uint8_uint8.npz')

train = nn.create_training_dict(
    mnist_data['train_features'], mnist_data['train_labels'])

valid = nn.create_training_dict(
    mnist_data['valid_features'], mnist_data['valid_labels'])

test = nn.create_training_dict(
    mnist_data['test_features'], mnist_data['test_labels'])


# hard code layer sizes and initialize random weights
#====================================================================
n_input_nodes = 784  # pixels in image
n_hidden_nodes = 25  # variable
n_output_nodes = 10  # number of labels
layer_sizes = [n_input_nodes, n_hidden_nodes, n_output_nodes]
# test: m=10000 images of n=28x28=784 pixels each
# each image (and label) is a digit in the range 0-9
# we rescale the images to NPIX1D x NPIX1D
#====================================================================
print 'reading and rescaling data ...'

mnist_data = numpy.load('data/mnist_uint8_uint8.npz')

Xtrain = mnist_data['train_features']
Xscaled = numpy.zeros((Xtrain.shape[0], NPIX1D*NPIX1D))
orig_npix = int(numpy.sqrt(Xtrain.shape[1]))
for i in range(Xtrain.shape[0]):
    img = Xtrain[i,:].reshape((orig_npix, orig_npix))
    img_scaled = scipy.misc.imresize(img, (NPIX1D, NPIX1D))
    Xscaled[i,:] = img_scaled.reshape((NPIX1D*NPIX1D))
train = nn.create_training_dict(Xscaled, mnist_data['train_labels'])


Xtrain = mnist_data['valid_features']
Xscaled = numpy.zeros((Xtrain.shape[0], NPIX1D*NPIX1D))
orig_npix = int(numpy.sqrt(Xtrain.shape[1]))
for i in range(Xtrain.shape[0]):
    img = Xtrain[i,:].reshape((orig_npix, orig_npix))
    img_scaled = scipy.misc.imresize(img, (NPIX1D, NPIX1D))
    Xscaled[i,:] = img_scaled.reshape((NPIX1D*NPIX1D))
valid = nn.create_training_dict(Xscaled, mnist_data['valid_labels'])


Xtrain = mnist_data['test_features']
Xscaled = numpy.zeros((Xtrain.shape[0], NPIX1D*NPIX1D))
orig_npix = int(numpy.sqrt(Xtrain.shape[1]))