首页 > 解决方案 > AttributeError: 'list' 对象没有属性 'size' Hugging-Face 转换器

问题描述

我正在尝试使用 Huggingface 将内容从英语转换为印地语。这是代码片段

from transformers import AutoTokenizer, AutoModelForSeq2SeqLM

tokenizer = AutoTokenizer.from_pretrained("Helsinki-NLP/opus-mt-en-hi")

model = AutoModelForSeq2SeqLM.from_pretrained("Helsinki-NLP/opus-mt-en-hi")
text = "Hello my friends! How are you doing today?"
tokenized_text = tokenizer.prepare_seq2seq_batch([text])

# Perform translation and decode the output
translation = model.generate(**tokenized_text)
translated_text = tokenizer.batch_decode(translation, skip_special_tokens=True)[0]

# Print translated text
print(translated_text)

尝试在“模型”上调用方法生成时出现此错误。

AttributeError:“列表”对象没有属性“大小”。

我在变压器版本 4.3.3 上运行。

标签: python-3.xnlphuggingface-transformers

解决方案


该模型需要 pytorch 张量而不是 python 列表。只需添加return_tensors='pt'prepare_seq2seq

from transformers import AutoTokenizer, AutoModelForSeq2SeqLM

tokenizer = AutoTokenizer.from_pretrained("Helsinki-NLP/opus-mt-en-hi")

model = AutoModelForSeq2SeqLM.from_pretrained("Helsinki-NLP/opus-mt-en-hi")
text = "Hello my friends! How are you doing today?"
tokenized_text = tokenizer.prepare_seq2seq_batch([text], return_tensors='pt')

# Perform translation and decode the output
translation = model.generate(**tokenized_text)
translated_text = tokenizer.batch_decode(translation, skip_special_tokens=True)[0]

# Print translated text
print(translated_text)

输出:

आप आज कैसे कर रहे हैं?

推荐阅读