Dataloader读取dataset子数据

Dataloader读取dataset子数据

最近遇到了一个问题,卡了好久终于解决了,想写一篇博客来记录一下。

我希望完成的是使用dataloader从一个dataset中根据先前设定的index来读取数据(只读取这些index的数据)。

解决方案如下(thanks to ChatGPT):

import torch
from torch.utils.data import Dataset, DataLoader, Subset

class MyDataset(Dataset):
    def __init__(self, data):
        self.data = data

    def __getitem__(self, index):
        sample = self.data[index]
        return sample

    def __len__(self):
        return len(self.data)

data = [1, 2, 3, 4, 5]
dataset = MyDataset(data)

# 指定感兴趣的索引
indices = [0, 2, 4]

# 创建子数据集,只包含指定索引的样本
subset = Subset(dataset, indices)

# 创建DataLoader,并遍历子数据集
dataloader = DataLoader(subset, batch_size=1, shuffle=False)

for batch in dataloader:
    print(batch)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值