def init_hidden(self, gpu, last_batch_size=None):
if last_batch_size is None: lstm_hidden_batch_size = self.batch_size
else: lstm_hidden_batch_size = last_batch_size
dims = (self.lstm_layer, lstm_hidden_batch_size, self.lstm_hidden_dim)
if self.bilstm_flag:
dims = (2*self.lstm_layer, lstm_hidden_batch_size, self.lstm_hidden_dim)
init_value = torch.Tensor(np.random.uniform(-0.01, 0.01, dims))
#init_value = torch.zeros(dims)
h0 = autograd.Variable(init_value)
c0 = autograd.Variable(init_value)
if gpu:
h0 = h0.cuda()
c0 = c0.cuda()
return (h0,c0)
# from: Variable of batch_size*sent_length*embedding_dim
# to: Variable of batch_size*embedding_dim*sent_length
评论列表
文章目录