I’m not sure where the “‘Tensor’ object is not callable” error is raised, but your code will fail in:
losses_SGD += [loss.item_()]

since tensor.item_() is not a valid method:
criterion = nn.CrossEntropyLoss()
output = torch.randn(1, 10, requires_grad=True)
target = torch.randint(0, 10, (1,))
loss = criterion(output, target)
loss.item_()
# > AttributeError: 'Tensor' object has no attribute 'item_'