我对此很陌生,所以我可能完全遗漏了一些东西,但这是我的问题:我正在尝试创建一个使用 Huggingface 的预训练标记器模型的 Tokenizer 类。然后我想在更大的变压器模型中使用这个类来标记我的输入数据。下面是类代码类 Roberta(MyTokenizer):
from transformers import AutoTokenizer
from transformers import RobertaTokenizer
class Roberta(MyTokenizer):
def build(self, *args, **kwargs):
self.max_length = self.phd.max_length
self.untokenized_data = self.questions + self.answers
def tokenize_and_filter(self):
# Initialize the tokenizer with a pretrained model
Tokenizer = AutoTokenizer.from_pretrained('roberta')
tokenized_inputs, tokenized_outputs = [], []
inputs = Tokenizer(self.questions, padding=True)
outputs = Tokenizer(self.answers, padding=True)
tokenized_inputs = inputs['input_ids']
tokenized_outputs = outputs['input_ids']
return tokenized_inputs, tokenized_outputs
当我在我的 Transformer 模型中调用函数 tokenize_and_filter 时,如下所示
questions = self.get_tokenizer().tokenize_and_filter
answers = self.get_tokenizer().tokenize_and_filter
print(questions)
我尝试打印标记化的数据,我收到以下消息:
<bound method Roberta.tokenize_and_filter of <MyTokenizer.Roberta.Roberta object at
0x000002779A9E4D30>>
似乎该函数返回一个方法而不是列表或张量 - 我尝试传递参数'return_tensors='tf'',我尝试使用 tokenizer.encode() 方法,我尝试使用 AutoTokenizer 和使用 RobertaTokenizer,我尝试了 batch_encode_plus() 方法,似乎没有任何效果。
请帮忙!