Pytorch/ Custom Dataset Loader/ Numpy массивы в тензоры

Привет, я новичок в pytorch, и у меня проблемы с пониманием создания пользовательского набора данных

Я использую google colab, и мои "данные" и "ярлыки" уже загружены с диска Google в мой файл colab. «данные» - это массив, а «метки» - это фрейм данных Pandas.

Когда я использовал приведенный ниже пример кода First и повторил свой DataLoader, возникла ошибка времени выполнения, в которой говорилось: «RuntimeError: стек ожидает, что каждый тензор будет одинакового размера, но получил ~~»

      class My_Dataset(Dataset):
  def __init__(self, x, y):
    x = shape_fit(x, (1,6,600))
    x, _ = normalize_data(x, x)
    y = np.array(y.iloc[:,0])
    self.x_data = x
    self.y_data = y
  
  def __len__(self):
    return len(self.x_data)

  def __getitem__(self, idx):
    x = torch.FloatTensor(self.x_data[idx])
    y = torch.FloatTensor(self.y_data[idx])
    return x, y

Но после того, как я немного изменил код, как показано ниже, мой загрузчик заработал нормально.

      class My_Dataset(Dataset):
  def __init__(self, x, y):
    x = shape_fit(x, (1,6,600))
    x, _ = normalize_data(x, x)
    y = np.array(y.iloc[:,0])
    self.x_data =  torch.Tensor(x)
    self.y_data =  torch.LongTensor(y)
  
  def __len__(self):
    return len(self.x_data)

  def __getitem__(self, idx):
    x = self.x_data[idx]
    y = self.y_data[idx]
    return x, y

Кто-нибудь знает, почему это произошло? Пожалуйста, объясните мне, как это небольшое изменение привело к отладке ??!!

0 ответов

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