如何在 Pytorch 中选择数据集的子集?

How can I pick a subset of a dataset in Pytorch?

我正在尝试 运行 https://github.com/menardai/FashionGenAttnGAN 在 Google GPU 上的 Colab 中,磁盘大小为 30 GB。代码文件及其数据集文件约为 15 GB。提取此代码后,磁盘剩余大约 14 GB。当我尝试 运行 Pretrain.py 时,我可以看到字幕正在加载,但突然出现“断言错误”。由于我没有得到这个错误原因的任何正确答案,我认为这是因为我在 Colab 环境中缺少 space。我想到的解决方案是编写一些代码来告诉模型 select 只加载 30% 的训练和测试数据集。但我不知道该怎么做。谁能帮帮我?

数据是你的总数据,你可以把它分成多少你只需要编辑valid_size

valid_size=0.3
num_train = len(data)
indices = list(range(num_train))
np.random.shuffle(indices)
split = int(np.floor(valid_size * num_train))
train_idx, valid_idx = indices[split:], indices[:split]

# define samplers for obtaining training and validation batches
train_sampler = SubsetRandomSampler(train_idx)
valid_sampler = SubsetRandomSampler(valid_idx)

# prepare data loaders (combine dataset and sampler)
train_loader = torch.utils.data.DataLoader(data, batch_size=4,
    sampler=train_sampler, num_workers=2)
valid_loader = torch.utils.data.DataLoader(data, batch_size=4, 
    sampler=valid_sampler, num_workers=2)

如果出现内存问题,只需减少 batch_size。