def __init__(self, input_dim, output_dim, activation = numpy.tanh, dtype=None): super(ReservoirNode, self).__init__(input_dim=input_dim, output_dim=output_dim, dtype=dtype) self.activation = activation self.W_in = 1. * (numpy.random.randint(0, 2, (input_dim, output_dim)) * 2 - 1) self.b = numpy.zeros((output_dim,)) self.W = sparseReservoirMatrix((output_dim, output_dim), 0.27) self.state = numpy.zeros((output_dim,)) self.params = [self.W_in, self.W, self.b]
def __init__(self, input, n_in, n_out, activation = T.tanh): self.input = input W_in_values = 1. * (numpy.random.randint(0, 2, (n_in, n_out)) * 2 - 1) self.W_in = theano.shared(value = W_in_values, name ='W_in') W_res_values = sparseReservoirMatrix((n_out, n_out), 0.27) self.W = theano.shared(value = W_res_values, name ='W') b_values = numpy.zeros((n_out,), dtype= theano.config.floatX) self.b = theano.shared(value= b_values, name ='b') self.output = numpy.zeros((n_out,), dtype= theano.config.floatX) self.output = theano.shared(value= b_values, name ='out') self.output = activation(T.dot(input, self.W_in) + self.b + T.dot(self.output, self.W)) self.params = [self.W_in, self.W, self.b]
def __init__(self, input, n_in, n_out, activation=T.tanh): self.input = input W_in_values = 1. * (numpy.random.randint(0, 2, (n_in, n_out)) * 2 - 1) self.W_in = theano.shared(value=W_in_values, name='W_in') W_res_values = sparseReservoirMatrix((n_out, n_out), 0.27) self.W = theano.shared(value=W_res_values, name='W') b_values = numpy.zeros((n_out, ), dtype=theano.config.floatX) self.b = theano.shared(value=b_values, name='b') self.output = numpy.zeros((n_out, ), dtype=theano.config.floatX) self.output = theano.shared(value=b_values, name='out') self.output = activation( T.dot(input, self.W_in) + self.b + T.dot(self.output, self.W)) self.params = [self.W_in, self.W, self.b]
def __init__(self, input_dim, output_dim, activation=numpy.tanh, dtype=None): super(ReservoirNode, self).__init__(input_dim=input_dim, output_dim=output_dim, dtype=dtype) self.activation = activation self.W_in = 1. * (numpy.random.randint(0, 2, (input_dim, output_dim)) * 2 - 1) self.b = numpy.zeros((output_dim, )) self.W = sparseReservoirMatrix((output_dim, output_dim), 0.27) self.state = numpy.zeros((output_dim, )) self.params = [self.W_in, self.W, self.b]
import mdp import cPickle as pickle from my_utils import draw, sparseReservoirMatrix, setVocLut vocabulary, lut = setVocLut() f = open('../languages/tong6words.enum') sentences = pickle.load(f) words = [] for sentence in sentences: words.extend(sentence) in_d = len(vocabulary) out_d = 200 w_reservoir = sparseReservoirMatrix((out_d, out_d), 0.27) reservoir = og.nodes.ReservoirNode(input_dim=in_d, output_dim=out_d, input_scaling=1, reset_states=False, w=w_reservoir, spectral_radius=0.97) readout = og.nodes.RidgeRegressionNode(input_dim=reservoir.output_dim, output_dim=len(vocabulary), ridge_param=0.) flow = mdp.Flow([reservoir, readout], verbose=1) flownode = mdp.hinet.FlowNode(flow) """ Train """
from my_utils import setVocLut, sparseReservoirMatrix import cPickle as pickle import time tstart = time.time() vocabulary, lut = setVocLut() f = open('../languages/tong6words.enum') sentences = pickle.load(f) print "... loaded", len(sentences), "sentences." for k in range(len(sentences)): sentences[k].insert(0,'.') in_d = len(vocabulary) out_d = 10 w_reservoir = sparseReservoirMatrix((out_d,out_d), 0.27) reservoir = og.nodes.ReservoirNode(input_dim=in_d ,output_dim=out_d ,input_scaling=1 ,reset_states=False #,w_in=w_input ,w=w_reservoir ,spectral_radius=0.97) """ Build dataset """ print "... building dataset" source = [] train_label = [] for s in sentences: words = []