To make sure the old weights are present, you could simply print the old and new weight tensor and compare them or use a proper comparison via old_weight == new_weight[:, :old_weight_num].
I’m not sure how ix etc. is defined, so cannot see, if the creation is correct.
I would recommend to avoid using the .data attribute, as it might have unwanted side effects but instead assign a new nn.Parameter after the manipulation.