从转换器导入 BertTokenizer 时出现导入错误

enh*_*hhh 6 python importerror bert-language-model

我的代码是:

import torch
from transformers import BertTokenizer
from IPython.display import clear_output
Run Code Online (Sandbox Code Playgroud)

我在行中遇到错误from transformers import BertTokenizer

ImportError: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.29' not found (required by /mnt/home/wbj/anaconda3/envs/pytorch/lib/python3.8/site-packages/tokenizers/tokenizers.cpython-38-x86_64-linux-gnu.so)
Run Code Online (Sandbox Code Playgroud)

我找到了一个答案,问题是由于文件引起的/lib/x86_64-linux-gnu/libm.so.6,当我使用代码时,strings /lib/x86_64-linux-gnu/libm.so.6 | grep GLIBC_我得到了输出

GLIBC_2.2.5
GLIBC_2.4
GLIBC_2.15
GLIBC_2.18
GLIBC_2.23
GLIBC_PRIVATE
Run Code Online (Sandbox Code Playgroud)

该文件不支持 GLIBC_2.29。我该如何解决这个问题?

小智 8

我遇到过同样的问题。这是由于 tokenizers 包所需的 GLIBC 版本所致

你有两个选择

  1. 如果您有权限,可以升级 glibc 库

  2. 我用过的选项。安装旧版本的分词器,例如使用 anaconda

在第二种情况下,您只需运行以下命令:

conda install -c huggingface tokenizers=0.10.1 transformers=4.6.1
Run Code Online (Sandbox Code Playgroud)

注意:您可以为转换器选择其他版本,在这种情况下,当您选择较新版本的分词器时,就会出现错误