def sample(self, seed, maximumLength, T = 1):
h = self.h0(seed).view(self.layers, 1, self.H)
accumulator = ["START"]
for _ in range(maximumLength):
i = self.targetsOfSymbols([accumulator[-1]])[:,0]
output, h = self(i,h)
distribution = output.data.view(-1)/T
distribution = F.log_softmax(distribution).data
distribution = distribution.exp()
c = torch.multinomial(distribution,1)[0]
if self.lexicon[c] == "END": break
accumulator.append(self.lexicon[c])
return accumulator[1:]
评论列表
文章目录