如何解决fastai.text NameError: name 'BaseTokenizer' 未定义
我是 fastai 的初学者,正在尝试构建一个参考 Using RoBERTa with fast.ai for NLP 的模型。
from fastai.text import *
from fastai.metrics import *
from transformers import RobertaTokenizer
class FastAiRobertaTokenizer(Basetokenizer):
"""Wrapper around RobertaTokenizer to be compatible with fastai"""
def __init__(self,tokenizer: RobertaTokenizer,max_seq_len: int=128,**kwargs):
self._pretrained_tokenizer = tokenizer
self.max_seq_len = max_seq_len
def __call__(self,*args,**kwargs):
return self
def tokenizer(self,t:str) -> List[str]:
"""Adds Roberta bos and eos tokens and limits the maximum sequence length"""
return [config.start_tok] + self._pretrained_tokenizer.tokenize(t)[:self.max_seq_len - 2] + [config.end_tok]
但收到一条错误消息:
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-6-41070aae72d1> in <module>
----> 1 class FastAiRobertaTokenizer(Basetokenizer):
2 """Wrapper around RobertaTokenizer to be compatible with fastai"""
3 def __init__(self,**kwargs):
4 self._pretrained_tokenizer = tokenizer
5 self.max_seq_len = max_seq_len
NameError: name 'Basetokenizer' is not defined
- fastai 版本:2.1.8
- 火炬版本:1.7.1
- 变形金刚版本:3.4.0
之前有人遇到过同样的问题吗?
解决方法
哦,我终于知道我应该将 from fastai.text import *
改为 from fastai.text.all import *
。没有错误消息 NameError: name 'BaseTokenizer' is not defined
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。