Update:
The source of the issue appers to be that torch::nn::module::parameters() does reference the same underline torch::Tensor as it’s research value
struct Net : torch::nn::Module {
	Net(int numIn, int numOut, int numHid, const size_t hid_count=1) {
                ...
		first = register_parameter("inputW", torch::rand({numIn, numHid}))/numHid;
                ...
        }
        ...
}

{//in some unit test
...
		assert(torch::sum(nn1.parameters()[0] == nn1.first).item<float>() == nn1.parameters()[0].numel());
...
}//this fails

Any suggestion on how to fix this?