Assigning the tensors to the state_dict keys won’t change the actual parameters, if you don’t reload the state_dict.
Based on the description of the use case, I think you could use the functional API and directly use the fc3 parameters:
fc3weight = (weights[0:100]).reshape([1, 50,2])
fc3bias = weights[100:150]
...
out = F.linear(Surface, fc3weight, fc3bias)
...