import torch
from torch.cuda.amp import autocast

net = torch.nn.Conv2d(3,3,3,3).to('cuda')
input = torch.rand([3,3,5,5],device='cuda')

with autocast():
    with torch.no_grad():
        y = net(input)

    z = net(input)
    print('z {}'.format(z.requires_grad))

This will give false. Is this by design?