Thank you for you replay.
If I use .view function to change the shape of x, the requires_grad of  new variable will also be true rather than false.
 x = torch.FloatTensor([1,2,3,4])
 x.requires_grad_()
with torch.no_grad():
    y = x.view(2,2)

Another situation, if the x is a nn.Module object(for example a nerual network) , the same behavior happens.
What is your suggestion when someone try to get another nn.Module object that share the same parameter value but do not need gradient?