Ejemplo n.º 1
0
def test_model( n_in
                ,n_feat
                ,n_hidden
                ,n_out
                ,learning_rate=0.01
                , n_epochs=1000
                , dataset = '../deep_training/new_model_train6'
                , batch_size = 20):

    train_set_x, train_set_y, train_set_z = load_data(dataset, n_out)

    n_train_batches = train_set_x.get_value(borrow=True).shape[0] / batch_size

    print '... building the model'
    index = T.lscalar() 
    x     = T.matrix('x')
    z     = T.matrix('z')

    classifier = new_model(input=x, n_in=24, n_feat=5, n_hidden = 50, n_out=n_out)

    cost = classifier.mean_square_error(z) 

    gparams = []
    for param in classifier.params:
        gparam  = T.grad(cost, param)
        gparams.append(gparam)

    # specify how to update the parameters of the model as a dictionary
    updates = {}
    for param, gparam in zip(classifier.params, gparams):
        updates[param] = param - learning_rate*gparam

    train_model =theano.function( inputs = [index], outputs = cost, 
            updates = updates,
            givens={
                x:train_set_x[index*batch_size:(index+1)*batch_size],
                z:train_set_z[index*batch_size:(index+1)*batch_size]})
    
    execute_model = theano.function(inputs = [index], 
        outputs = classifier.p_y_given_x,
        givens={x:train_set_x[index*batch_size:(index+1)*batch_size]})

    print '... training'
    start_time = time.clock()

    done_looping = False
    epoch = 0
    while (epoch < n_epochs) and (not done_looping):
        epoch = epoch + 1
        shuffled_idx = range(n_train_batches)
        numpy.random.shuffle(shuffled_idx)
        
        for minibatch_index in shuffled_idx:
            minibatch_avg_cost = train_model(minibatch_index)

        test_distrib = [execute_model(i) for i in xrange(n_train_batches)]
        test_distrib = numpy.vstack(test_distrib)
        approx = [t for t in test_distrib]
        avg_sim = numpy.mean(similarity(distrib, approx))

        print "Similarity:", avg_sim

    end_time = time.clock()
    print "... done in", end_time - start_time
Ejemplo n.º 2
0
def test_model(n_in,
               n_feat,
               n_hidden,
               n_out,
               learning_rate=0.01,
               n_epochs=1000,
               dataset='../deep_training/new_model_train6',
               batch_size=20):

    train_set_x, train_set_y, train_set_z = load_data(dataset, n_out)

    n_train_batches = train_set_x.get_value(borrow=True).shape[0] / batch_size

    print '... building the model'
    index = T.lscalar()
    x = T.matrix('x')
    z = T.matrix('z')

    classifier = new_model(input=x,
                           n_in=24,
                           n_feat=5,
                           n_hidden=50,
                           n_out=n_out)

    cost = classifier.mean_square_error(z)

    gparams = []
    for param in classifier.params:
        gparam = T.grad(cost, param)
        gparams.append(gparam)

    # specify how to update the parameters of the model as a dictionary
    updates = {}
    for param, gparam in zip(classifier.params, gparams):
        updates[param] = param - learning_rate * gparam

    train_model = theano.function(
        inputs=[index],
        outputs=cost,
        updates=updates,
        givens={
            x: train_set_x[index * batch_size:(index + 1) * batch_size],
            z: train_set_z[index * batch_size:(index + 1) * batch_size]
        })

    execute_model = theano.function(
        inputs=[index],
        outputs=classifier.p_y_given_x,
        givens={x: train_set_x[index * batch_size:(index + 1) * batch_size]})

    print '... training'
    start_time = time.clock()

    done_looping = False
    epoch = 0
    while (epoch < n_epochs) and (not done_looping):
        epoch = epoch + 1
        shuffled_idx = range(n_train_batches)
        numpy.random.shuffle(shuffled_idx)

        for minibatch_index in shuffled_idx:
            minibatch_avg_cost = train_model(minibatch_index)

        test_distrib = [execute_model(i) for i in xrange(n_train_batches)]
        test_distrib = numpy.vstack(test_distrib)
        approx = [t for t in test_distrib]
        avg_sim = numpy.mean(similarity(distrib, approx))

        print "Similarity:", avg_sim

    end_time = time.clock()
    print "... done in", end_time - start_time
Ejemplo n.º 3
0
print "... similarity",
f = open('../models/similarity6', 'r')
distrib = pickle.load(f)

esn_distrib = []
for s in sentences:
    reservoir.states = np.c_[initial_state].T
    for i in range(len(s) - 1):
        x = reservoir.execute(np.dot(np.c_[lut[s[i]]].T, features))[0]
        x = np.dot(x, readout)
        x[np.nonzero(x < 0)] = 0
        if sum(x) == 0:
            x[0] = 0.0001
        x = x / sum(x)
        esn_distrib.append(list(x))
print np.mean(similarity(distrib, esn_distrib))

import pylab
pylab.ion()
fig1 = pylab.figure(1)
pylab.draw()
pylab.title('Before')
ax1 = fig1.add_subplot(111, autoscale_on=True)
ax1.plot(features[:, 0], features[:, 1], 'x')

pca = mdp.nodes.PCANode(output_dim=2)
pca.train(features)
pca.stop_training()
reduced_features = pca.execute(features)

for w in vocabulary:
print "... similarity",
f = open("../models/similarity6", "r")
distrib = pickle.load(f)

esn_distrib = []
for s in sentences:
    reservoir.states = np.c_[initial_state].T
    for i in range(len(s) - 1):
        x = reservoir.execute(np.dot(np.c_[lut[s[i]]].T, features))
        x = readout.execute(x)[0]
        x[np.nonzero(x < 0)] = 0
        if sum(x) == 0:
            x[0] = 0.0001
        x = x / sum(x)
        esn_distrib.append(list(x))
print np.mean(similarity(distrib, esn_distrib))

import pylab

pylab.ion()
fig1 = pylab.figure(1)
pylab.draw()
pylab.title("Before")
ax1 = fig1.add_subplot(111, autoscale_on=True)
ax1.plot(features[:, 0], features[:, 1], "x")

pca = mdp.nodes.PCANode(output_dim=2)
pca.train(features)
pca.stop_training()
reduced_features = pca.execute(features)