I’ve check it and you are right.
.cuda(), .cpu() and .to still seem to be in-place operations on nn.Modules.
model = nn.Linear(10, 1)
model.to('cuda')
print(model.weight.type())
> torch.cuda.FloatTensor

model.cpu()
print(model.weight.type())
> torch.FloatTensor

model.cuda()
print(model.weight.type())
> torch.cuda.FloatTensor

For tensors you would still need an assignment.
Sorry for the confusion.
I would still use the assignment, but that shouldn’t cause the error as you said.