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
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
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)