class EncoderDecoder(chainer.Chain): def __init__(self, args, src_file, trg_file): self.src_vocabulary = Vocabulary() self.src_vocabulary.make_dictionary(src_file) self.trg_vocabulary = Vocabulary() self.trg_vocabulary.make_dictionary(trg_file) self.src_size = len(self.src_vocabulary.wtoi) self.embed_size = args.embed_size self.hidden_size = args.hidden_size self.trg_size = len(self.trg_vocabulary.wtoi) super(EncoderDecoder, self).__init__( # encoder w_xe=F.EmbedID(self.src_size, self.embed_size), w_ep=F.Linear(self.embed_size, self.hidden_size*4), w_pp=F.Linear(self.hidden_size, self.hidden_size*4), # decoder w_ey=F.EmbedID(self.trg_size, self.embed_size), w_qe=F.Linear(self.embed_size, self.hidden_size*4), w_qq=F.Linear(self.hidden_size, self.hidden_size*4), w_yq=F.Linear(self.hidden_size, self.trg_size), )