Hi,
Since a very recent version, the gradient buffers are initialised only when needed.
If you actually backprop anything, it will work properly:
x=torch.Tensor(5,5).normal_()
x=Variable(x,requires_grad=True)
print(hasattr(x.grad, "data")) # prints False
x.add(1).sum().backward()
print(hasattr(x.grad, "data")) # prints True