【发布时间】:2021-10-23 23:13:51
【问题描述】:
我使用以下代码从特定文件夹中读取数据集,并将其划分为训练和测试子集。我可以使用列表理解获取每个子集的所有数据和目标,但对于大数据来说非常慢。 有没有其他快速的方法可以做到这一点?
def train_test_dataset(dataset, test_split=0.20):
train_idx, test_idx = train_test_split(list(range(len(dataset))), test_size=test_split, stratify=dataset.targets)
datasets = {}
train_dataset = Subset(dataset, train_idx)
test_dataset = Subset(dataset, test_idx)
return train_dataset, test_dataset
dataset = dset.ImageFolder("/path_to_folder", transform = transform)
train_set, test_set = train_test_dataset(dataset)
train_data = [data for data, _ in train_set]
train_labels = [label for _, label in train_set]
我已经使用 DataLoader 尝试过这种方法,它更好,但也需要一些时间: PyTorch Datasets: Converting entire Dataset to NumPy
谢谢。
【问题讨论】: