def __init__(self, vocab_size, hidden_size, num_layers, ignore_label=-1):
self.vocab_size = vocab_size
self.hidden_size = hidden_size
self.num_layers = num_layers
self.ignore_label = ignore_label
args = {'embed': L.EmbedID(vocab_size, hidden_size, ignore_label=ignore_label),
'hy': L.Linear(hidden_size, vocab_size)}
for i in range(self.num_layers):
args.update({'l{}'.format(i): L.StatelessLSTM(hidden_size, hidden_size)})
setattr(self, 'h{}'.format(i), None)
setattr(self, 'c{}'.format(i), None)
super(RNNLM, self).__init__(**args)
for param in self.params():
param.data[...] = np.random.uniform(-0.1, 0.1, param.data.shape)
self.reset_state()
评论列表
文章目录