Я новичок в PyTorch и учусь создавать пакеты данных для сегментации. Код показан ниже:
class NumbersDataset(Dataset):
def __init__(self):
self.X = list(df['input_img'])
self.y = list(df['mask_img'])
def __len__(self):
return len(self.X), len(self.y)
def __getitem__(self, idx):
return self.X[idx], self.y[idx]
if __name__ == '__main__':
dataset = NumbersDataset()
dataloader = DataLoader(dataset, batch_size=50, shuffle=True, num_workers=2)
# print(len(dataset))
# plt.imshow(dataset[100])
# plt.show()
print(next(iter(dataloader)))
, где df['input_img']
столбец содержит местоположение изображения ('/path/to/pic/480p/boxing-fisheye/00010.jpg'
), а df['mask_img']
содержит местоположение всех изображений маски. Я пытаюсь загрузить изображения, но получаю сообщение об ошибке:
TypeError: объект 'tuple' не может быть интерпретирован как целое число
Однако, если я этого не сделаю используйте DataLoader
и просто сделайте следующее:
dataset = NumbersDataset()
print(len(dataset))
print(dataset[10:20])
тогда я получу то, что ожидаю. Может кто-нибудь сказать мне, что я делаю не так?