【发布时间】:2020-03-31 04:59:06
【问题描述】:
我刚刚使用 pytorch 训练了一个 LSTM 语言模型。类的主体是这样的:
class LM(nn.Module):
def __init__(self, n_vocab,
seq_size,
embedding_size,
lstm_size,
pretrained_embed):
super(LM, self).__init__()
self.seq_size = seq_size
self.lstm_size = lstm_size
self.embedding = nn.Embedding.from_pretrained(pretrained_embed, freeze = True)
self.lstm = nn.LSTM(embedding_size,
lstm_size,
batch_first=True)
self.fc = nn.Linear(lstm_size, n_vocab)
def forward(self, x, prev_state):
embed = self.embedding(x)
output, state = self.lstm(embed, prev_state)
logits = self.fc(output)
return logits, state
现在我想写一个函数来计算一个句子的好坏,基于训练的语言模型(一些分数,比如困惑等)。
我有点困惑,我不知道该如何计算。
类似的样本会很有用。
【问题讨论】:
标签: python nlp pytorch language-model