torch自定义随机加载

该博客介绍了如何在PyTorch中自定义数据加载器,通过示例展示了如何处理图像数据,并使用随机洗牌来实现数据批次的随机选取。在训练过程中,每个epoch结束时更新全局步骤并进行前向传播和反向传播操作。
摘要由CSDN通过智能技术生成

 

  import random

    data_img = []
    data_lable = []


    m_index_i = 0
    for astep, samples in enumerate(dataloader):
        start = time.time()
        images, labels = samples["image"], samples["label"]

        for i in range(images.size(0)):
            data_img.append(images[i, :, :, :])
            data_lable.append(labels[i, :, :])

            asamples = torch.Tensor(config["batch_size"] * len(config["parallels"]), 3, config["img_w"],
                                    config["img_h"])
            asamples[0] = data_img[m_index_i]
            m_index_i += 1
    m_index = [i for i in range(len(data_img))]

    # print("len(data_img)",len(data_img))
    # for j in range(200):
    #     random.shuffle(m_index)
    #     timestr = datetime.dateti

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
PyTorch可以通过`torch.utils.data.Dataset`和`torch.utils.data.DataLoader`来读取自定义数据集。 首先,需要创建一个数据集类,继承`torch.utils.data.Dataset`。这个类需要实现`__len__`和`__getitem__`方法,前者返回数据集大小,后者返回索引对应的数据样本。 ```python import torch from torch.utils.data import Dataset class CustomDataset(Dataset): def __init__(self, data_path): self.data = torch.load(data_path) def __len__(self): return len(self.data) def __getitem__(self, idx): return self.data[idx] ``` 在这个例子中,我们的自定义数据集是一个保存在文件中的PyTorch张量。`__init__`方法加载数据集,`__len__`方法返回数据集大小,`__getitem__`方法返回对应索引的数据样本。 接下来,可以使用`torch.utils.data.DataLoader`来创建一个数据加载器,它会将数据集分成小批次并进行随机重排。 ```python from torch.utils.data import DataLoader dataset = CustomDataset('data.pt') dataloader = DataLoader(dataset, batch_size=32, shuffle=True) ``` 在这个例子中,我们使用`CustomDataset`类来创建一个数据集,并使用`DataLoader`来创建一个数据加载器。这个数据加载器每次返回32个数据样本,并在每个epoch开始时随机重排数据集。 最后,可以遍历数据加载器并处理小批次数据。 ```python for batch in dataloader: # 处理小批次数据 pass ``` 在这个例子中,我们使用一个简单的for循环来遍历数据加载器。每次迭代,`batch`变量将包含32个数据样本。你可以在这里对数据进行处理,例如训练神经网络或进行推理等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

AI算法网奇

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

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

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

打赏作者

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

抵扣说明:

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

余额充值