首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >抱面变压器:路径误差加载模型

抱面变压器:路径误差加载模型
EN

Stack Overflow用户
提问于 2020-06-29 15:53:43
回答 3查看 4.7K关注 0票数 5

我对拥抱变形金刚很陌生。当我尝试从给定路径加载xlm-roberta-base模型时,我面临以下问题:

代码语言:javascript
复制
>> tokenizer = AutoTokenizer.from_pretrained(model_path)
>> Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/user/anaconda3/lib/python3.7/site-packages/transformers/tokenization_auto.py", line 182, in from_pretrained
    return tokenizer_class.from_pretrained(pretrained_model_name_or_path, *inputs, **kwargs)
  File "/home/user/anaconda3/lib/python3.7/site-packages/transformers/tokenization_utils.py", line 309, in from_pretrained
    return cls._from_pretrained(*inputs, **kwargs)
  File "/home/user/anaconda3/lib/python3.7/site-packages/transformers/tokenization_utils.py", line 458, in _from_pretrained
    tokenizer = cls(*init_inputs, **init_kwargs)
  File "/home/user/anaconda3/lib/python3.7/site-packages/transformers/tokenization_roberta.py", line 98, in __init__
    **kwargs,
  File "/home/user/anaconda3/lib/python3.7/site-packages/transformers/tokenization_gpt2.py", line 133, in __init__
    with open(vocab_file, encoding="utf-8") as vocab_handle:
TypeError: expected str, bytes or os.PathLike object, not NoneType

但是,如果我用它的名称加载它,就没有问题:

代码语言:javascript
复制
>> tokenizer = AutoTokenizer.from_pretrained('xlm-roberta-base')

我很感谢你的帮助。

EN

回答 3

Stack Overflow用户

发布于 2020-06-30 18:51:29

我假设您已经创建了这个目录,如文档中所描述的那样:

代码语言:javascript
复制
tokenizer.save_pretrained('YOURPATH')

目前正在调查一个问题,它只影响AutoTokenizers,而不影响底层令牌(如(XLMRobertaTokenizer) )。例如,以下内容应能发挥作用:

代码语言:javascript
复制
from transformers import XLMRobertaTokenizer

tokenizer = XLMRobertaTokenizer.from_pretrained('YOURPATH')

要使用AutoTokenizer,还需要保存配置以脱机加载它:

代码语言:javascript
复制
from transformers import AutoTokenizer, AutoConfig

tokenizer = AutoTokenizer.from_pretrained('xlm-roberta-base')
config = AutoConfig.from_pretrained('xlm-roberta-base')

tokenizer.save_pretrained('YOURPATH')
config.save_pretrained('YOURPATH')

tokenizer = AutoTokenizer.from_pretrained('YOURPATH')

我建议为令牌器和模型或使用不同的路径来保持模型的config.json,因为应用到模型的一些修改将存储在model.save_pretrained()期间创建的config.json中,并且在保存令牌器时将被覆盖,如模型之后所述(也就是说,您将无法用令牌程序config.json加载修改后的模型)。

票数 2
EN

Stack Overflow用户

发布于 2020-11-24 12:13:31

我遇到了相同的错误消息,要修复它,可以在参数中添加use_fast=True

代码语言:javascript
复制
generator = AutoTokenizer.from_pretrained(generator_path, config=config.generator, use_fast=True) 
票数 0
EN

Stack Overflow用户

发布于 2021-08-26 09:43:22

我也遇到了同样的问题。使用本地机器的模型。

代码语言:javascript
复制
os.environ['TRANSFORMERS_OFFLINE']='1'

这告诉库只使用本地文件。你可以在拥抱面安装-离线模式上读到更多关于它的信息。

代码语言:javascript
复制
from transformers import RobertaTokenizer
tokenizer = RobertaTokenizer.from_pretrained('Model_Path')

该路径应该是当前文件目录中模型文件夹的位置路径。例如,如果模型文件位于base文件夹路径下的models文件夹中,则应该是‘model /base/’。

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

https://stackoverflow.com/questions/62641972

复制
相关文章

相似问题

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