pytorch之加载数据集Dataset and DataLoader

一.概念:epoch,batch size,iterations 

1.Epoch(时期):一个epoch指代所有的训练样本送入神经网络中完成一次前向传播及反向传播的过程。 再通俗一点,一个Epoch就是将所有训练样本训练一次的过程。

2.Batch(批 / 一批样本):将整个训练样本分成若干个Batch。
Batch Size(批大小):每批样本的大小。也就是在一次前向和反向传播中训练的样本数量,且Batch Size 和Batch numbers不是同一个概念

3.Iteration(一次迭代):训练一个Batch就是一次Iteration。所以,所谓的iterations就是完成一次epoch所需的batch个数,上面提到的Batch numbers就是iterations。

4.mini-batch:卡的数量gif.latex?%5Ctimesmini-batch=batch

总结:one epoch = numbers of iterations = N = 训练样本的数量/batch size

一次epoch 总处理数量 = iterations次数 * batch_size大小

举例:假设有一个包含10000个样本的数据集,并且您选择的Batch Size为1000和100个Epoch。这意味着数据集将分为10个Batch,有10个iterations,每个Batch有1000个样本。每训练一批1000个样本后,模型权重将更新。这也意味着一个epoch将涉及10个Batch更新。有100个Epoch,模型将传递整个数据集100次。在整个过程中,总共有10000个Batch。

二.DataLoader

from torch.utils.data import DataLoader

train_dataloader = DataLoader(training_data, batch_size=64, shuffle=True)
test_dataloader = DataLoader(test_data, batch_size=64, shuffle=True)

shuffle=True指数据会被打乱,如下图所示:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETkDlubPlubPml6DlpYflsI_luIjlprk,size_20,color_FFFFFF,t_70,g_se,x_16

举例:

    torch.utils.data.DataLoader(dataset,batch_size = 1,
        shuffle = None,sampler = None,batch_sampler = None,
        num_workers = 0,collate_fn = None,pin_memory = False,
        drop_last = False,timeout = 0,worker_init_fn = None,
        multiprocessing_context = None,generator = None,
        prefetch_factor = 2,persistent_workers = False,
        pin_memory_device = '')

重要参数:

  • dataset ( Dataset ) – 从中加载数据的数据集。

  • batch_size ( int , optional ) – 每批要加载多少样本(默认值:1)。

  • shuffle ( bool , optional ) – 设置为True在每个 epoch 重新打乱数据(默认值:False)

  • num_workers ( int , optional ) –是否多进程读取机制,用于数据加载的子进程数。0表示数据将在主进程中加载​​。(默认为0

  • drop_last ( bool , optional ) –当样本数不能被batchsize整除时, 是否舍弃最后一批数据。True:如果数据集大小不能被批次大小整除,则设置为丢弃最后一个不完整的批次。False:如果数据集的大小不能被批大小整除,那么最后一批的batch size变小。(默认为False,即不丢弃数据

  • 举例:假设样本总数80, Batchsize是8, 那么1Epoch=10 Iteration。 假设样本总数是87, Batchsize是8, 如果drop_last=True, 那么1Epoch=10Iteration, 如果等于False, 那么1Epoch=11Iteration, 最后1个Iteration有7个样本。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值