In PyTorch, if I do x = torch.tensor([1., 2., 3.], requires_grad=True), then max(x) returns tensor(3., grad_fn=<SelectBackward>), while torch.max(x) returns tensor(3., grad_fn=<MaxBackward1>). What is the difference between these two gradients? When calling backward() they both give the same answer at least in this small example.