예제 #1
0
    def __init__(self, update, dict_size, hidden_dim, num_neg_sample,
                 sep_embed):
        super().__init__(HingeLoss(), update, dict_size, hidden_dim)
        self.num_neg_sample = num_neg_sample

        self.neg_sample = self.input()
        if sep_embed:
            self.sample_embed = self.param_of([dict_size, hidden_dim],
                                              Xavier())
        else:
            self.sample_embed = self.embed

        self.resetNum = len(self.nodes)
예제 #2
0
    def __init__(self, loss, update, dict_size, hidden_dim):
        super().__init__(loss, update)

        self.dict_size = dict_size
        self.hidden_dim = hidden_dim

        self.h0 = self.input()
        self.c0 = self.input()

        self.embed = self.param_of([dict_size, hidden_dim], Xavier())
        self.wf = self.param_of([2 * hidden_dim, hidden_dim], Xavier())
        self.bf = self.param_of([hidden_dim], Zero())
        self.wi = self.param_of([2 * hidden_dim, hidden_dim], Xavier())
        self.bi = self.param_of([hidden_dim], Zero())
        self.wc = self.param_of([2 * hidden_dim, hidden_dim], Xavier())
        self.bc = self.param_of([hidden_dim], Zero())
        self.wo = self.param_of([2 * hidden_dim, hidden_dim], Xavier())
        self.bo = self.param_of([hidden_dim], Zero())
        self.v2c = self.param_of([hidden_dim, dict_size], Xavier())

        self.resetNum = len(self.nodes)
예제 #3
0
    def __init__(self, loss, update, enc_dict_size, dec_dict_size, hidden_dim,
                 num_line):
        super().__init__(loss, update)

        half_dim = int(hidden_dim / 2)

        self.enc_dict_size = enc_dict_size
        self.dec_dict_size = dec_dict_size
        self.hidden_dim = hidden_dim
        self.half_dim = half_dim
        self.num_line = num_line

        self.feh0 = self.input()
        self.fec0 = self.input()
        self.beh0 = self.input()
        self.bec0 = self.input()

        self.feembed = self.param_of([enc_dict_size, half_dim], Xavier())
        self.fewf = self.param_of([2 * half_dim, half_dim], Xavier())
        self.febf = self.param_of([half_dim], Zero())
        self.fewi = self.param_of([2 * half_dim, half_dim], Xavier())
        self.febi = self.param_of([half_dim], Zero())
        self.fewc = self.param_of([2 * half_dim, half_dim], Xavier())
        self.febc = self.param_of([half_dim], Zero())
        self.fewo = self.param_of([2 * half_dim, half_dim], Xavier())
        self.febo = self.param_of([half_dim], Zero())
        self.fev2c = self.param_of([half_dim, enc_dict_size], Xavier())

        self.beembed = self.param_of([enc_dict_size, half_dim], Xavier())
        self.bewf = self.param_of([2 * half_dim, half_dim], Xavier())
        self.bebf = self.param_of([half_dim], Zero())
        self.bewi = self.param_of([2 * half_dim, half_dim], Xavier())
        self.bebi = self.param_of([half_dim], Zero())
        self.bewc = self.param_of([2 * half_dim, half_dim], Xavier())
        self.bebc = self.param_of([half_dim], Zero())
        self.bewo = self.param_of([2 * half_dim, half_dim], Xavier())
        self.bebo = self.param_of([half_dim], Zero())
        self.bev2c = self.param_of([half_dim, enc_dict_size], Xavier())

        self.dembed = self.param_of([dec_dict_size, hidden_dim], Xavier())
        self.dwf = self.param_of([2 * hidden_dim, hidden_dim], Xavier())
        self.dbf = self.param_of([hidden_dim], Zero())
        self.dwi = self.param_of([2 * hidden_dim, hidden_dim], Xavier())
        self.dbi = self.param_of([hidden_dim], Zero())
        self.dwc = self.param_of([2 * hidden_dim, hidden_dim], Xavier())
        self.dbc = self.param_of([hidden_dim], Zero())
        self.dwo = self.param_of([2 * hidden_dim, hidden_dim], Xavier())
        self.dbo = self.param_of([hidden_dim], Zero())
        self.dv2c = self.param_of([hidden_dim, dec_dict_size], Xavier())

        self.resetNum = len(self.nodes)
예제 #4
0
 def param_of(self, shape, init=Xavier()):
     param = Param(self)
     param.value = init.apply(shape)
     self.params.append(param)
     return param
예제 #5
0
    def __init__(self, loss, update, enc_dict_size, dec_dict_size, hidden_dim):
        super().__init__(loss, update)

        self.enc_dict_size = enc_dict_size
        self.dec_dict_size = dec_dict_size
        self.hidden_dim = hidden_dim

        self.h0 = self.input()
        self.c0 = self.input()

        self.eembed = self.param_of([enc_dict_size, hidden_dim], Xavier())
        self.ewf = self.param_of([2 * hidden_dim, hidden_dim], Xavier())
        self.ebf = self.param_of([hidden_dim], Zero())
        self.ewi = self.param_of([2 * hidden_dim, hidden_dim], Xavier())
        self.ebi = self.param_of([hidden_dim], Zero())
        self.ewc = self.param_of([2 * hidden_dim, hidden_dim], Xavier())
        self.ebc = self.param_of([hidden_dim], Zero())
        self.ewo = self.param_of([2 * hidden_dim, hidden_dim], Xavier())
        self.ebo = self.param_of([hidden_dim], Zero())
        self.ev2c = self.param_of([hidden_dim, enc_dict_size], Xavier())

        self.dembed = self.param_of([dec_dict_size, hidden_dim], Xavier())
        self.dwf = self.param_of([2 * hidden_dim, hidden_dim], Xavier())
        self.dbf = self.param_of([hidden_dim], Zero())
        self.dwi = self.param_of([2 * hidden_dim, hidden_dim], Xavier())
        self.dbi = self.param_of([hidden_dim], Zero())
        self.dwc = self.param_of([2 * hidden_dim, hidden_dim], Xavier())
        self.dbc = self.param_of([hidden_dim], Zero())
        self.dwo = self.param_of([2 * hidden_dim, hidden_dim], Xavier())
        self.dbo = self.param_of([hidden_dim], Zero())
        self.dv2c = self.param_of([hidden_dim, dec_dict_size], Xavier())

        self.resetNum = len(self.nodes)