The name is different, but I don’t think load_state_dict cares much about the name: when it arrives to stage1.1 it copies the values for that state dict into the batch_norm module. However, when it arrives to stage1.4 it copies the values to the same batch_norm module (as, in your sequential modules, these two modules are in fact the same). I hope that makes sense 
This problem is actually pretty common, not in loading stat_dict, but in training layers (as you can imagine, reusing the same module on different parts of the network can lead to weird results!) so watch out for it!