You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用transformers 2.1.1调用BertTokenizer报错:'BertTokenizer'对象不可调用

问题解决:TypeError: 'BertTokenizer' object is not callable

问题原因

你使用的transformers 2.1.1是早期版本,该版本的BertTokenizer对象不支持直接调用(即tokenizer(text)这种写法),需要用版本专属的编码方法处理文本。

解决方案

方案1:适配旧版本API,使用encode_plus方法

将原代码中直接调用tokenizer的部分替换为encode_plus方法,这是该版本的标准文本编码方式,参数与你的需求匹配:

from transformers import AutoTokenizer, AutoModel
import torch

tokenizer = AutoTokenizer.from_pretrained("bert-base-multilingual-cased")
model = AutoModel.from_pretrained("bert-base-multilingual-cased")

text = 'welcome to Miami'
# 用encode_plus替代直接调用tokenizer
inputs = tokenizer.encode_plus(
    text,
    return_tensors='pt',
    padding=True
)
with torch.no_grad():
    outputs = model(**inputs)
    embeddings = outputs.last_hidden_state[:, 0, :]
embeddings.detach().cpu().numpy()

方案2:升级transformers版本(长期推荐)

如果环境允许,建议升级到transformers 4.x系列的稳定版本,新版本支持直接调用tokenizer的便捷写法,还修复了旧版本的诸多bug、新增大量功能。升级命令:

pip install --upgrade transformers

升级后你原本的代码即可正常运行。

内容的提问来源于stack exchange,提问作者anitasp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 01:02:10