[pytorch] Dataloader和Dataset的基本使用示例

文章提供了一个使用PyTorch创建自定义Dataset和Dataloader的代码示例,用于处理图像数据。在示例中,定义了一个ImageDataset类,实现了数据加载的基本功能,并在主函数中展示了如何使用DataLoader进行训练数据的迭代。数据读取部分需要根据具体任务来实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我最近需要用pytorch的场景挺多的,所以经常需要读取各种的数据,然后需要自定义自己的dataset和dataloader,这里分享一个dataset和dataloader的demo,方便大家来快速的用起来,代码示例:


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

class ImageDataset(Dataset):
  'Characterizes a dataset for PyTorch'
  def __init__(self, list_IDs, labels):
        'Initialization'
        self.labels = labels
        self.list_IDs = list_IDs

  def __len__(self):
        'Denotes the total number of samples'
        return len(self.list_IDs)

  def __getitem__(self, index):
        'Generates one sample of data'
        # Select sample
        # ID = self.list_IDs[index]

        # Load data and get label
        # X = torch.load('data/' + ID + '.pt')
        X = torch.rand((3, 224,224))
        y = torch.randint(0,5,(1,))

        return X, y
  

if __name__=="__main__":
    params = {'batch_size': 2,
          'shuffle': True,
          'num_workers': 1}
    max_epochs = 100
    # Datasets
    partition =list(range(1000)) # IDs
    labels =list(range(1000)) # Labels
    # Generators
    training_set = ImageDataset(partition, labels)
    training_loader = DataLoader(training_set, **params)
    for batch in training_loader:
         x,y = batch
         print(x.shape)
         print(y)
         break

数据的读取部分不太统一,所以需要靠大家自己来实现啦。

参考文献

A detailed example of how to generate your data in parallel with PyTorch

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

农民小飞侠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值