阅读https://stanford.edu/~shervine/blog/pytorch-how-to-generate-data-parallel和https://discuss.pytorch.org/t/how-does-enumerate-trainloader-0-work/14410我试图了解训练时代在PyTorch中的表现。
采取这个外部和内部循环:
for epoch in range(num_epochs):
for i1,i2 in enumerate(training_loader):
这是正确的解释:?
对于外循环/纪元的每次调用,整个训练集,在上面的示例中,每批次迭代training_loader
。这意味着模型不会在每个训练周期中处理一个实例。每个训练周期(for epoch in range(num_epochs):
)整个训练集以块/批处理,其中批量大小在创建training_loader
时确定
torch.utils.data.DataLoader
返回迭代数据集的迭代。
因此,以下 -
training_loader = torch.utils.data.DataLoader(*args)
for i1,i2 in enumerate(training_loader):
#process
完全分批在数据集上运行一个。