I am trying to plot a loss curve by each epoch, but I’m not sure how to do that. I can do it for 1 epoch using the following method:
def train(model, num_epoch): for epoch in range(num_epoch): running_loss = 0.0 loss_values =  for i, data in enumerate(trainloader, 0): images, labels, bbox = data images = Variable(images).to(device) labels = Variable(labels).to(device) optimizer.zero_grad() outputs = model(images)#, th_images) loss = criterion(outputs, labels.to(device)) loss.backward() optimizer.step() running_loss += loss.item() loss_values.append(running_loss) if i % 10 == 9: # print every 2000 mini-batches print('[%d, %5d] loss: %.3f' % (epoch + 1, i + 1, running_loss / 10)) running_loss = 0.0 print('Finished Training Trainset') plt.plot(np.array(loss_values), 'r') model = train(vgg16, 2)
However, I get the following plot, which doesn’t seem correct:
Any advice would be grealty appreciated.