Hello
数据模块
数据循环训练中的部分概念:
Epoch:所有训练样本数据都被输入到模型中一次,称为一个Epoch
Iteration:一批训练样本输入到模型中一次,成为一个Iteration
Batchsize:批次大小,一个Epoch中有多少个Iteration的数量
举例:
训练样本总数:800
Batchsize:8
则:
1个Iteration有80个数据:每次模型训练输入80个数据
训练8次之后,所有样本数据会训练一遍,此时称为一个Epoch
1个Epoch = 10个 Iteration
Batchsize = Epoch/Iteration = 10
模型的训练、预测,损失函数的计算、反向传播,优化器的参数更新,都会在Epoch、Iteration、Batchsize组成的数据循环中进行
for epoch in range(MAX_EPOCH):
loss_mean = 0.
correct = 0.
total = 0.
net.train()
for i, data in enumerate(train_loader):
# forward
inputs, labels = data
outputs = net(inputs)
# backward
optimizer.zero_grad()
loss = criterion(outputs, labels)
loss.backward()
# update weights
optimizer.step()