def __init__(self,optimizer=None,vocab=None,n_input_units=1000,
n_units=650,grad_clip=5,bproplen=35):
if vocab is None:
vocab=BatchTrainer.vocab
self.vocab=vocab
n_vocab = len(vocab)
super(LSTM,self).__init__('LSTM')
self.func = model.lstm.RNNLM(n_input_units=n_input_units,n_vocab=n_vocab,n_units=n_units)
self.func.compute_accuracy = False
for param in self.func.params():
data = param.data
data[:] = np.random.uniform(-0.1, 0.1, data.shape)
if Deel.gpu>=0:
self.func.to_gpu()
if optimizer is None:
self.optimizer = optimizers.SGD(lr=1.)
self.optimizer.setup(self.func)
self.clip = chainer.optimizer.GradientClipping(grad_clip)
self.optimizer.add_hook(self.clip)
self.accum_loss = 0
self.cur_log_perp = Deel.xp.zeros(())
评论列表
文章目录