No. 
In PyTorch:

Freeing CUDA tensors does not synchronize because the caching allocator holds onto and reuses the memory segment.
Tensors are freed immediately when they go out of scope (because of Python’s ref-counting). In Lua Torch, tensors were not freed until the garbage collector ran.