Colab 的 Huggingface AlBert 标记器 NoneType 错误

问题描述

我只是尝试了拥抱脸网站的示例代码https://huggingface.co/albert-base-v2

`from transformers import AlbertTokenizer,AlbertModel` 
`tokenizer = AlbertTokenizer.from_pretrained('albert-base-v2')`
`text = "Replace me by any text you'd like."`
`encoded_input = tokenizer(text,return_tensors='pt')`

然后我在标记器步骤中收到以下错误: ----> 5 encoding_input = tokenizer(text,return_tensors='pt')

TypeError: 'nonetype' 对象不可调用

我在本地机器上尝试了相同的代码,没有问题。问题似乎在 Colab 中。但是,我确实需要帮助才能在 colab GPU 上运行此模型。

我在 colab 上的 Python 版本是 Python 3.6.9

解决方法

我找到了答案。安装后,导入 AlbertTokenizer 和 Tokenizer=...,我收到一个错误,要求我安装“SentencePiece 包”。但是,在我安装此软件包并再次运行 tokenizer 后,我开始收到上述错误。 所以我打开了一个全新的 colab 会话,并在创建标记器之前安装了包括 SentencePiece 在内的所有内容,这次它起作用了。 Nonetype 错误只是意味着它不知道什么是“albert-base-v2”。但是,如果您以正确的顺序安装软件包,colab 将更好地识别 AlbertTokenizer 和 SentencePiece 之间的关系。 简而言之,它可以在 colab 0 中工作。打开一个新的 Colab 会话 1. 安装 Transformers 和 SentencePiece 2. 导入 AlbertTokenizer 3.create tokenizer。

,

朱美南的回答是正确的。

在转换器工作之前安装或导入 SentencePiece。

pip install Sentencepiece
!pip install transformers

tokenizer = XLNetTokenizer.from_pretrained('xlnet-base-cased',do_lower_case=True)

type(tokenizer)

transformers.models.xlnet.tokenization_xlnet.XLNetTokenizer