Hi, thank you so much for checking this. I tried on 2 instances and it happened, so I guessed it would be reproducible. I saved model and ‘a’ in 10.2 using
>>> import torch
>>> import torch.nn as nn
>>> torch.__version__
'1.7.1'
>>> torch.version.cuda
'10.2'
>>> torch.manual_seed(42)
<torch._C.Generator object at 0x7f02f91602b0>
>>> l = [3, 32, 64, 128, 256, 512, 256, 128, 64, 32, 1]
>>> model = nn.Sequential(
...     *[nn.Conv2d(l[i], l[i+1], 3, padding=1) for i in range(len(l)-1)],
...     nn.AdaptiveAvgPool2d((1, 1))
...     ).to('cuda:0')
>>> torch.manual_seed(42)
<torch._C.Generator object at 0x7f02f91602b0>
>>> a = torch.randn(16, 3, 224, 224)
>>> b = model(a.to('cuda:0')).squeeze()
>>> b
tensor([0.0109, 0.0109, 0.0109, 0.0109, 0.0109, 0.0109, 0.0109, 0.0109, 0.0109,
        0.0109, 0.0109, 0.0109, 0.0109, 0.0108, 0.0108, 0.0109],
       device='cuda:0', grad_fn=<SqueezeBackward0>)
>>> torch.save({'a': a}, 'a_10_2.pth')
>>> torch.save(model.state_dict(), 'model_10_2.pth')

and then load into model in cuda 11 as
>>> import torch
>>> import torch.nn as nn
>>> torch.__version__
'1.7.1'
>>> torch.version.cuda
'11.0'
>>> l = [3, 32, 64, 128, 256, 512, 256, 128, 64, 32, 1]
>>> model = nn.Sequential(
...     *[nn.Conv2d(l[i], l[i+1], 3, padding=1) for i in range(len(l)-1)],
...     nn.AdaptiveAvgPool2d((1, 1))
...     ).to('cuda:0')
>>> model.load_state_dict(torch.load('model_10_2.pth'))
<All keys matched successfully>
>>> a = torch.load('a_10_2.pth')['a']
>>> b = model(a.to('cuda:0')).squeeze()
>>> b
tensor([0.0105, 0.0105, 0.0105, 0.0105, 0.0105, 0.0105, 0.0105, 0.0105, 0.0105,
        0.0105, 0.0105, 0.0105, 0.0105, 0.0105, 0.0105, 0.0105],
       device='cuda:0', grad_fn=<SqueezeBackward0>)