Python 3.x fastai.text name错误:name';BaseTokenizer';没有定义

Python 3.x fastai.text name错误:name';BaseTokenizer';没有定义,python-3.x,fast-ai,Python 3.x,Fast Ai,我是fastai的初学者,试图建立一个参考fastai的模型 我试图自定义标记器(如下代码所示): 但收到一条错误消息: --------------------------------------------------------------------------- NameError Traceback (most recent call last) <ipython-input-6-41070aae72d1>

我是fastai的初学者,试图建立一个参考fastai的模型

我试图自定义标记器(如下代码所示):

但收到一条错误消息:

---------------------------------------------------------------------------
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, tokenizer: RobertaTokenizer, max_seq_len: int=128, **kwargs):
      4         self._pretrained_tokenizer = tokenizer
      5         self.max_seq_len = max_seq_len

NameError: name 'BaseTokenizer' is not defined
---------------------------------------------------------------------------
NameError回溯(最近一次呼叫上次)
在里面
---->1类FastAirOberTokenizer(基本Tokenizer):
2“围绕RobertaTokenizer的包装与fastai兼容”
3定义初始化(self,标记器:RobertaTokenizer,max_seq_len:int=128,**kwargs):
4自我训练的标记器=标记器
5 self.max_seq_len=max_seq_len
NameError:未定义名称“BaseTokenizer”
  • fastai版本:2.1.8
  • 火炬版本:1.7.1
  • 变压器版本:3.4.0

以前有人遇到过同样的问题吗?

哦,我终于明白我应该将
从fastai.text导入*
更改为
从fastai.text.all导入*
。没有错误消息
NameError:name'BaseTokenizer'未定义
左侧。

哦,我终于明白我应该将
从fastai.text import*
更改为
从fastai.text.all import*
。没有错误消息
NameError:name'BaseTokenizer'未定义。
左侧。

一个问题可能是链接文章指出它是为fastai版本1编写的,而您使用的是fastai版本2。如果没有对教程进行重大更改,您可能无法使用fastai版本2来阅读教程。感谢您的回复,我尝试安装fastai的v1版本,但似乎存在很多问题,例如,当我导入fastai.text时,它表明我缺少一些模块。这些模块已经安装,但版本无法支持fastai。使用fast.ai v2:,您可能会更幸运地学习本教程。Huggingface在保持api在各个模型之间的一致性方面做得很好,因此,一旦您使用一个模型启动并运行,使用另一个模型并不难。我通过该文档找到了答案,非常感谢。一个问题可能是链接文章指出它是为fastai版本1编写的,然而,您使用的是快速ai版本2。如果没有对教程进行重大更改,您可能无法使用fastai版本2来阅读教程。感谢您的回复,我尝试安装fastai的v1版本,但似乎存在很多问题,例如,当我导入fastai.text时,它表明我缺少一些模块。这些模块已经安装,但版本无法支持fastai。使用fast.ai v2:,您可能会更幸运地学习本教程。Huggingface在保持api在各个模型之间的一致性方面做得很好,因此,一旦您使用一个模型启动并运行,使用另一个模型并不难。我通过该文档找到了答案,非常感谢。
---------------------------------------------------------------------------
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, tokenizer: RobertaTokenizer, max_seq_len: int=128, **kwargs):
      4         self._pretrained_tokenizer = tokenizer
      5         self.max_seq_len = max_seq_len

NameError: name 'BaseTokenizer' is not defined