我需要使用pytorch对自定义数据集进行一些实验。问题是,如何使用torch.Dataloader创建数据集?
我有两个列表,一个列表称为 Values ,并且在每个条目处都有一个数据点张量,而另一个列表称为 Labels ,具有相应的标签。我所做的是:
for i in range(samples):
dataset[i] = [values[i],labels[I]]
所以我有一个包含数据点和相应标签的列表,然后尝试了以下操作:
dataset = torch.tensor(dataset).float()
dataset = torch.utils.data.TensorDataset(dataset)
data_loader = torch.utils.data.DataLoader(dataset=dataset, batch_size=100, shuffle=True, num_workers=4, pin_memory=True)
但是,首先,我在torch.tensor命令中收到错误“不是序列”,其次,我不确定这是否是正确的创建方法。有什么建议吗?
非常感谢您!
答案 0 :(得分:1)
您不需要重载DataLoader
,而是为数据创建一个Dataset
。
例如,
class MyDataset(Dataset):
def __init__(self):
super(MyDataset, self).__init__()
# do stuff here?
self.values = values
self.labels = labels
def __len__(self):
return len(self.values) # number of samples in the dataset
def __getitem__(self, index):
return self.values[index], self.labels[index]