问题描述
我正在使用拥抱面实现来运行以下内容:
t1 = "My example sentence is really great."
tokenizer = TransfoXLTokenizer.from_pretrained('transfo-xl-wt103')
model = TransfoXLLMHeadModel.from_pretrained("transfo-xl-wt103")
encoded_input = tokenizer(t1,return_tensors='pt',add_space_before_punct_symbol=True)
output = model(**encoded_input)
tmp = output[0].detach().numpy()
print(tmp.shape)
>>> (1,7,267735)
最后一个尺寸是/基本上/比我预期的要大,并且看起来是整个vocab_size
的大小,而不是基于ECL from the paper的缩小尺寸(我可能会误解)
我将提供model
的什么参数来减小该层的尺寸到较小的尺寸空间,更像是基本BERT(400或768),并且仍然基于预训练的嵌入获得良好的性能?
解决方法
那是因为您使用了...LMHeadModel
,它可以预测下一个标记。您可以改用TransfoXLModel.from_pretrained("transfo-xl-wt103")
,然后output[0]
是形状为(batch_size,sequence_length,hidden_size)
的最后一个隐藏状态。