小编Tom*_*nzo的帖子

无法使用自定义数据集:AttributeError:“列表”对象没有属性“键”

我正在尝试使用 Huggingface Transformers 使用自定义数据集训练分类模型,但我不断收到错误。最后一个错误似乎可以解决,但我不知何故不明白如何解决。我究竟做错了什么?

我用以下方式对数据进行编码

model_name = "dbmdz/bert-base-italian-uncased"
tokenizer = AutoTokenizer.from_pretrained(model_name, do_lower_case = True)

def encode_data(texts):
    return tokenizer.batch_encode_plus(
                texts, 
                add_special_tokens=True, 
                return_attention_mask=True, 
                padding = True,
                truncation=True,
                max_length=200,
                return_tensors='pt'
            )
Run Code Online (Sandbox Code Playgroud)

然后我创建我的数据集

import torch

class my_Dataset(torch.utils.data.Dataset):
    def __init__(self, encodings, labels):
        self.encodings = encodings
        self.labels = torch.tensor(labels)

    def __getitem__(self, idx):
        item = {key: val[idx] for key, val in self.encodings.items()}
        item['labels'] = self.labels[idx]
        print(item)
        return item

    def __len__(self):
        return len(self.labels)
Run Code Online (Sandbox Code Playgroud)

所以我有

encoded_data_train = encode_data(df_train['text'].tolist())
encoded_data_val = encode_data(df_val['text'].tolist())
encoded_data_test = encode_data(df_test['text'].tolist())
dataset_train = my_Dataset(encoded_data_train, df_train['labels'].tolist())
dataset_val …
Run Code Online (Sandbox Code Playgroud)

python-3.x bert-language-model huggingface-transformers

5
推荐指数
1
解决办法
5259
查看次数