Hi,
The problem is that the tensor you check the gradients of is not the one you require gradients for. The .cuda() call returns a different Tensor. You can do the following:
device = torch.device('cuda')
BATCH_SIZE=1
v1 = [torch.tensor(np.random.rand(BATCH_SIZE, 1,3,2),
                    dtype=torch.float, device=device, requires_grad=True) for i in range(2)]