I don’t think your code would work, as you would have to call the named_parameters method as:
model.named_parameters()["key"]

Yes, I think this is expected as in the Python frontend, as you would need to copy the data into the parameters directly using this workflow.
I assume you are getting errors from Autograd? If so, use at::NoGradGuard guard; to make sure Autograd doesn’t track these copies in the current scope.