Example #1
0
    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]
Example #2
0
    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]
Example #3
0
    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]
Example #4
0
    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 = []