I would generally recommend against using data at all.
There are two parts:

If you want to break the graph at a point, use .detach() instead.
If you want calculation that without autograd use with torch.no_grad():.

Using .data is a bit like using those two, but except in very special situations (e.g. the optimizer updates internally) there isn’t a good reason to use it except if you like headaches (then it is much cheaper than too much beer at the Octoberfest, though).
Best regards
Thomas