近期在进行pytorch模型的训练,对pytorch的流程进行一次简单梳理作为笔记。此外,由于GPU显存有限,数据的Batchsize一般只能到2,而相关资料显示较大的Batchsize有利于提高模型训练效果,经查阅资料,找到通过梯度累加的方式来等效增大Batchsize。
一、pytorch模型训练流程
在用pytorch训练模型时,通常会在遍历epochs的过程中依次用到optimizer.zero_grad(), loss.backward()和optimizer.step()三个函数,如下所示:
model = MyModel()
criterion = nn.CrossEntropyLoss()
optimizer = torch.optim.SGD(model.parameters(), lr=0.001, momentum=0.9, weight_decay=1e-4)
for epoch in range(1, epochs):
for i, (inputs, labels