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