What is the difference between doing `net.cuda()` vs `net.to(device)`?

This is what I’m trying to understand. I always expected .to(device) to work the way it does. I don’t understand why I need to re-assign. I always expected .to(device) to mutate things.