In that case, both methods yield the same outputs.
How did you force the initialization to be the same?
I’ve created the models using both approaches and loaded the state_dicts from the first approach to the second one, and get identical results.
How many times did you run your code? Are you sure the difference is not due to some randomness in your initialization? Note that even though the modules have the same default initializations, you would have to set the seed to get the same pseudo random values or reload the state_dict.