Hi,
Few points:

As soon as you wrap a Tensor in a Variable, it will start saving all computation history for it. So each operation is slightly more costly (less and less true with recent changes).  Moreover, when you call backward, it will go through all the history, and so the bigger it is, the longer it’s gonna take.
It is quite easy to do an operation on your Variable outsite of the training loop (moving to gpu for example). And in that case, you will end up  with and error saying that at the second iteration, you try to backpropagate through the graph a second time.

That being said, Variables are going to disapear soon as they will be merged with Tensors, so don’t overthing this