Suppose I have a pretrained model weight, and if I export model with the following steps, I found that the inference result is different between x86 and android libpytorch。
....
model = Conv1d()
w = torch.load("weight.pt")
model.conv.weight.data = w
jit_model = torch.jit.script(model)
torch.jit.save(jit_model, "conv_2.pt")
...

Then load and inference with the conv_2.pt on x86 and android separately, and I found the two results are different.
for x86 pytorch output is:
tensor([[ 0.1662,  0.0207,  0.1688,  0.1911,  0.1231, -0.1205,  0.1114,  0.1749,
          0.2523,  0.0050],
        [-0.0863, -0.0477, -0.0551, -0.0679, -0.0117, -0.0239, -0.0428,  0.0200,
         -0.0516, -0.0071]])

while for android libpytorch output is:
(1,.,.) =
 Columns 1 to 9  0.0366 -0.0032  0.0441  0.0488  0.0381 -0.0448  0.0277  0.0619  0.0724
  0.1012  0.0999  0.0257  0.0421 -0.0487  0.1312  0.0322 -0.1556 -0.0342

Columns 10 to 10  0.0001
  0.0137
[ CPUFloatType{1,2,10} ]

I’m sure that the inputs are the same.
But if I change the code into:
model = Conv1d()
w = torch.load("weight.pt")
new_w = torch.flatten(torch.normal(0, 1, w.shape))
org_w = torch.flatten(w)
for idx, a in enumerate(org_w):
    new_w[idx] = a
new_w = new_w.reshape(w.shape)
model.conv.weight.data = new_w
jit_model = torch.jit.script(model)
torch.jit.save(jit_model, "conv_2.pt")

Then load and inference with the conv_2.pt on x86 and android separately, and the two results are the same.
Codes to reproduce the bug: https://www.dropbox.com/s/vldy1veaqgihk2j/pytorch_bug_report.zip?dl=0 2