I don’t know, if you are seeding your script, but even for the same architecture, you would have to set the seed before the initialization of each model.
However, in your case this would also lead to different results, as the order of the layer initializations is different. Instead you should transfer the state_dict of one model to the other to get the same results:
model1 = LeNet1()
model2 = LeNet2()
model2.load_state_dict(model1.state_dict())

x = torch.randn(1, 3, 28, 28)
output1 = model1(x)
output2 = model2(x)
print(output1, '\n', output2)
> tensor([[ 0.0253, -0.0044, -0.0149, -0.0370, -0.1327,  0.0809,  0.1206, -0.0214,
         -0.0096,  0.0013]], grad_fn=<AddmmBackward>) 
 tensor([[ 0.0253, -0.0044, -0.0149, -0.0370, -0.1327,  0.0809,  0.1206, -0.0214,
         -0.0096,  0.0013]], grad_fn=<AddmmBackward>)
print(output1 == output2)
> tensor([[1, 1, 1, 1, 1, 1, 1, 1, 1, 1]], dtype=torch.uint8)