1. epochs的含义
pytorch中关于epochs的定义:
Number of Epochs - the number times to iterate over the dataset
即:在数据集上迭代的次数,或总共遍历了多少次数据集。所以epoch就是遍历一次数据集。注意每个epoch包含了train loop和test loop。
train loop
是训练模型,使模型参数收敛至最佳。
tset loop
是为了检验模型的性能是否得到了提升。
2. batch_size的含义
pytorch中关于batch_size的定义:
Batch Size - the number of data samples propagated through the network before the parameters are updated
即每用batch_size个数据样本通过模型计算后,根据这batch_size个数据计算的损失,更新一次模型参数。
for batch_idx, data in enumerate(train_loader, 0):
# 取出数据
inputs, target = data #这里的batch_size就等于target.shape的数值大小
inputs, target = inputs.to(device), target.to(device)
# 梯度清零
optimizer.zero_grad()
# 计算预测值
outputs = model(inputs)
# 计算损失
loss = criterion(outputs, target)
# 反向传播
loss.backward()
# 更新权值
optimizer.step()
上面代码中的batch_size就是target.shape的数值大小,因为在这个循环中就调用了optimizer.step()
更新了模型参数
inputs, target = data #这里的batch_size就等于target.shape的数值大小