【问题标题】:Reduce the output layer size from XLTransformers减少 XLTransformers 的输出层大小
【发布时间】:2020-09-14 07:31:32
【问题描述】:

我正在使用 huggingface 实现运行以下命令:

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)

目标是获得我将在下游使用的输出嵌入。

最后一个维度 /substantially/ 比我预期的要大,看起来它是整个 vocab_size 的大小,而不是基于 ECL from the paper 的缩减(这可能是我误解了)。

我会提供什么参数 model 来将此层大小减小到更小的维度空间,更像是 400 或 768 的基本 BERT,并且仍然基于预训练的嵌入获得良好的性能?

【问题讨论】:

    标签: huggingface-transformers


    【解决方案1】:

    那是因为您使用了...LMHeadModel,它预测下一个标记。您可以改用TransfoXLModel.from_pretrained("transfo-xl-wt103"),然后output[0] 是最后一个隐藏状态,其形状为(batch_size, sequence_length, hidden_size)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-07-01
      • 2017-05-05
      • 2019-12-27
      • 2013-07-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多