Почему мой пользовательский набор данных выдает ошибку атрибута?

мои исходные данные выглядели так

мои данные - это блок данных padas с заголовком и меткой cloumns. Я хочу создать собственный набор данных с этим. поэтому я сделал такой же набор данных, как показано ниже. * Я работаю над Google Colab

      class newsDataset(torch.utils.data.Dataset):
  def __init__(self,train=True,transform=None):
    if train:
      self.file = ttrain
    else:
      self.file= ttest
    
    self.text_list = self.file['title'].values.tolist()
    self.class_list=self.file['label'].values.tolist()

  def __len__(self):
    return len(self.text_list)
  
  def __getitem__(self,idx):
    label = self.class_list[idx]
    text = self.text_list[idx]

    if self.transform is not None:
      text=self.transform(text)
      
    return label, text

и так я называю загрузчик данных

      trainset=newsDataset()
train_iter = DataLoader(trainset)
iter(train_iter).next()

и это дает

      ---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-153-9872744bc8a9> in <module>()
----> 1 iter(train_iter).next()

5 frames
/usr/local/lib/python3.7/dist-packages/torch/utils/data/dataset.py in __getattr__(self, attribute_name)
     81             return function
     82         else:
---> 83             raise AttributeError
     84 
     85     @classmethod

AttributeError: 

Точного сообщения об ошибке не было. Кто-нибудь может мне помочь?

2 ответа

Пожалуйста, добавьте следующую отсутствующую строку в свой __init__функция:

      self.transform = transform

У вас нет атрибута self.transform, поэтому вам нужно инициализировать его в методе __init__

Другие вопросы по тегам