Plotting accuracy scores and losses in ResNet

I am trying to plot the graph for validation/training accuracy and validation/training loss for a ResNet model.

Here is how I am training it:

LR = 0.01
N_EPOCHS = 50
BATCH_SIZE = 128

device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")


resnet50 = models.resnet50(pretrained=True)

# Change the last layer
num_ftrs = resnet50.fc.in_features
resnet50.fc = nn.Linear(num_ftrs, 9)

model = resnet50.to(device)
optimizer = torch.optim.SGD(model.parameters(), lr=LR)
criterion = nn.CrossEntropyLoss()

print("Starting training loop...")
for epoch in range(N_EPOCHS):
    model.train()
    loss_train = 0
    for iter, traindata in enumerate(train_loader):
        train_inputs, train_labels = traindata
        train_inputs, train_labels = train_inputs.to(device), train_labels.to(device)
        optimizer.zero_grad()
        logits = model(train_inputs)
        loss = criterion(logits, train_labels)
        loss.backward()
        optimizer.step()
        loss_train += loss.item()
        #torch.save(model.state_dict(), "project.pt")
        print('Batch {} and Loss {:.5f}'.format(iter,loss_train/BATCH_SIZE))
    #model.load_state_dict(torch.load("project.pt"))
    model.eval()

    with torch.no_grad():
        for iter, valdata in enumerate(valid_loader, 0):
            val_inputs, val_labels = valdata
            val_inputs1, val_labels1 = val_inputs.to(device), val_labels.to(device)
            y_test_pred = model(val_inputs1)
            tar_=val_labels.cpu().numpy()
            loss = criterion(y_test_pred, val_labels1)
            print('Validation Loss {:.5f}'.format(loss.item()))

    print("Epoch {} | Train Loss {:.5f}".format( epoch, loss_train/BATCH_SIZE))

Any idea on how I could plot both graphs (accuracies and losses)? Thanks

You could create a list for both statistics and append them for each iteration or epoch.
Also, make sure to detach the tensors before storing them in the list (tensor.detach() or tensor,item()). Otherwise you could store the whole computation graph, which will increase the memory usage.