首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >运行huggingface gpt2-xl模型时嵌入索引超出范围

运行huggingface gpt2-xl模型时嵌入索引超出范围
EN

Stack Overflow用户
提问于 2020-02-08 06:08:49
回答 1查看 1K关注 0票数 0

我正在尝试运行hugginface gpt2-xl模型。我从加载小型gpt2模型并通过以下代码生成文本的quickstart页面运行代码:

代码语言:javascript
运行
复制
from transformers import GPT2LMHeadModel, GPT2Tokenizer
import torch

tokenizer = GPT2Tokenizer.from_pretrained("gpt2")
model = GPT2LMHeadModel.from_pretrained('gpt2')

generated = tokenizer.encode("The Manhattan bridge")
context = torch.tensor([generated])
past = None

for i in range(100):
    print(i)
    output, past = model(context, past=past)
    token = torch.argmax(output[0, :])

    generated += [token.tolist()]
    context = token.unsqueeze(0)

sequence = tokenizer.decode(generated)

print(sequence)

这运行得很完美。然后我尝试运行gpt2-xl模型。我修改了tokenizermodel加载代码,如下所示: tokenizer = GPT2Tokenizer.from_pretrained("gpt2-xl") tokenizer= GPT2LMHeadModel.from_pretrained('gpt2-xl')

tokenizermodel加载正常。但是我在下面的代码行中遇到了错误:

代码语言:javascript
运行
复制
output, past = model(context, past=past)

错误是:

代码语言:javascript
运行
复制
RuntimeError: index out of range: Tried to access index 204483 out of table with 50256 rows. at /pytorch/aten/src/TH/generic/THTensorEvenMoreMath.cpp:418

看看错误,似乎嵌入大小是不正确的。因此,我编写以下代码行来专门获取gpt2-xl的配置文件

代码语言:javascript
运行
复制
config = GPT2Config.from_pretrained("gpt2-xl")

但是,这里是vocab_size:50257,所以我显式地修改了这个值:

代码语言:javascript
运行
复制
config.vocab_size=204483

然后,在打印config之后,我可以看到前一行在配置中生效。但是,我还是得到了同样的错误。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-12 00:15:03

这实际上是我报告的一个问题,他们解决了它。https://github.com/huggingface/transformers/issues/2774

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60121768

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档