Beispiel #1
0
    def __init__(self, input_dim, output_dim, weight_init=OrthogonalWeight(),
                 inner_init=GaussianWeight(mean=0, std=0.1), truncate_gradient=-1,
                 output_mode='concat', return_sequences=False):

        self.input_dim = input_dim
        self.output_dim = output_dim
        self.truncate_gradient = truncate_gradient
        self.output_mode = output_mode # output_mode is either sum or concatenate
        self.return_sequences = return_sequences

        # forward weights
        self.W_i = weight_init((self.input_dim, self.output_dim))
        self.U_i = inner_init((self.output_dim, self.output_dim))
        self.b_i = shared_zeros((self.output_dim), name='b_i')

        self.W_f = weight_init((self.input_dim, self.output_dim))
        self.U_f = inner_init((self.output_dim, self.output_dim))
        self.b_f = shared_ones((self.output_dim), name='b_f')

        self.W_c = weight_init((self.input_dim, self.output_dim))
        self.U_c = inner_init((self.output_dim, self.output_dim))
        self.b_c = shared_zeros((self.output_dim), name='b_c')

        self.W_o = weight_init((self.input_dim, self.output_dim))
        self.U_o = inner_init((self.output_dim, self.output_dim))
        self.b_o = shared_zeros((self.output_dim), name='b_o')

        # backward weights
        self.Wb_i = weight_init((self.input_dim, self.output_dim))
        self.Ub_i = inner_init((self.output_dim, self.output_dim))
        self.bb_i = shared_zeros((self.output_dim), name='bb_i')

        self.Wb_f = weight_init((self.input_dim, self.output_dim))
        self.Ub_f = inner_init((self.output_dim, self.output_dim))
        self.bb_f = shared_ones((self.output_dim), name='bb_f')

        self.Wb_c = weight_init((self.input_dim, self.output_dim))
        self.Ub_c = inner_init((self.output_dim, self.output_dim))
        self.bb_c = shared_zeros((self.output_dim), name='bb_c')

        self.Wb_o = weight_init((self.input_dim, self.output_dim))
        self.Ub_o = inner_init((self.output_dim, self.output_dim))
        self.bb_o = shared_zeros((self.output_dim), name='bb_o')

        self.params = [
            self.W_i, self.U_i, self.b_i,
            self.W_c, self.U_c, self.b_c,
            self.W_f, self.U_f, self.b_f,
            self.W_o, self.U_o, self.b_o,

            self.Wb_i, self.Ub_i, self.bb_i,
            self.Wb_c, self.Ub_c, self.bb_c,
            self.Wb_f, self.Ub_f, self.bb_f,
            self.Wb_o, self.Ub_o, self.bb_o,
        ]
Beispiel #2
0
    def __init__(self, input_dim, output_dim, truncate_gradient=-1, return_sequences=True,
                weight_init=OrthogonalWeight(), inner_init=GaussianWeight(mean=0, std=0.1)):

        self.input_dim = input_dim
        self.output_dim = output_dim
        self.truncate_gradient = truncate_gradient
        self.return_sequences = return_sequences

        self.W_i = weight_init((self.input_dim, self.output_dim))
        self.U_i = inner_init((self.output_dim, self.output_dim))
        self.b_i = shared_zeros((self.output_dim), name='b_i')

        self.W_f = weight_init((self.input_dim, self.output_dim))
        self.U_f = inner_init((self.output_dim, self.output_dim))
        self.b_f = shared_ones((self.output_dim), name='b_f')

        self.W_c = weight_init((self.input_dim, self.output_dim))
        self.U_c = inner_init((self.output_dim, self.output_dim))
        self.b_c = shared_zeros((self.output_dim), name='b_c')

        self.W_o = weight_init((self.input_dim, self.output_dim))
        self.U_o = inner_init((self.output_dim, self.output_dim))
        self.b_o = shared_zeros((self.output_dim), name='b_o')

        self.params = [
            self.W_i, self.U_i, self.b_i,
            self.W_c, self.U_c, self.b_c,
            self.W_f, self.U_f, self.b_f,
            self.W_o, self.U_o, self.b_o,
        ]
Beispiel #3
0
    def __init__(self,
                 input_dim,
                 output_dim,
                 truncate_gradient=-1,
                 return_sequences=True,
                 weight_init=OrthogonalWeight(),
                 inner_init=GaussianWeight(mean=0, std=0.1)):

        self.input_dim = input_dim
        self.output_dim = output_dim
        self.truncate_gradient = truncate_gradient
        self.return_sequences = return_sequences

        self.W_i = weight_init((self.input_dim, self.output_dim))
        self.U_i = inner_init((self.output_dim, self.output_dim))
        self.b_i = shared_zeros((self.output_dim), name='b_i')

        self.W_f = weight_init((self.input_dim, self.output_dim))
        self.U_f = inner_init((self.output_dim, self.output_dim))
        self.b_f = shared_ones((self.output_dim), name='b_f')

        self.W_c = weight_init((self.input_dim, self.output_dim))
        self.U_c = inner_init((self.output_dim, self.output_dim))
        self.b_c = shared_zeros((self.output_dim), name='b_c')

        self.W_o = weight_init((self.input_dim, self.output_dim))
        self.U_o = inner_init((self.output_dim, self.output_dim))
        self.b_o = shared_zeros((self.output_dim), name='b_o')

        self.params = [
            self.W_i,
            self.U_i,
            self.b_i,
            self.W_c,
            self.U_c,
            self.b_c,
            self.W_f,
            self.U_f,
            self.b_f,
            self.W_o,
            self.U_o,
            self.b_o,
        ]
Beispiel #4
0
    def __init__(self,
                 input_dim,
                 output_dim,
                 weight_init=OrthogonalWeight(),
                 inner_init=GaussianWeight(mean=0, std=0.1),
                 truncate_gradient=-1,
                 output_mode='concat',
                 return_sequences=False,
                 return_idx=-1):

        self.input_dim = input_dim
        self.output_dim = output_dim
        self.truncate_gradient = truncate_gradient
        self.output_mode = output_mode  # output_mode is either sum or concatenate
        self.return_sequences = return_sequences
        self.return_idx = return_idx
        # forward weights
        self.W_i = weight_init((self.input_dim, self.output_dim))
        self.U_i = inner_init((self.output_dim, self.output_dim))
        self.b_i = shared_zeros((self.output_dim), name='b_i')

        self.W_f = weight_init((self.input_dim, self.output_dim))
        self.U_f = inner_init((self.output_dim, self.output_dim))
        self.b_f = shared_ones((self.output_dim), name='b_f')

        self.W_c = weight_init((self.input_dim, self.output_dim))
        self.U_c = inner_init((self.output_dim, self.output_dim))
        self.b_c = shared_zeros((self.output_dim), name='b_c')

        self.W_o = weight_init((self.input_dim, self.output_dim))
        self.U_o = inner_init((self.output_dim, self.output_dim))
        self.b_o = shared_zeros((self.output_dim), name='b_o')

        # backward weights
        self.Wb_i = weight_init((self.input_dim, self.output_dim))
        self.Ub_i = inner_init((self.output_dim, self.output_dim))
        self.bb_i = shared_zeros((self.output_dim), name='bb_i')

        self.Wb_f = weight_init((self.input_dim, self.output_dim))
        self.Ub_f = inner_init((self.output_dim, self.output_dim))
        self.bb_f = shared_ones((self.output_dim), name='bb_f')

        self.Wb_c = weight_init((self.input_dim, self.output_dim))
        self.Ub_c = inner_init((self.output_dim, self.output_dim))
        self.bb_c = shared_zeros((self.output_dim), name='bb_c')

        self.Wb_o = weight_init((self.input_dim, self.output_dim))
        self.Ub_o = inner_init((self.output_dim, self.output_dim))
        self.bb_o = shared_zeros((self.output_dim), name='bb_o')

        self.params = [
            self.W_i,
            self.U_i,
            self.b_i,
            self.W_c,
            self.U_c,
            self.b_c,
            self.W_f,
            self.U_f,
            self.b_f,
            self.W_o,
            self.U_o,
            self.b_o,
            self.Wb_i,
            self.Ub_i,
            self.bb_i,
            self.Wb_c,
            self.Ub_c,
            self.bb_c,
            self.Wb_f,
            self.Ub_f,
            self.bb_f,
            self.Wb_o,
            self.Ub_o,
            self.bb_o,
        ]