Your input doesn’t need to require gradients, if you just would like to train your model.
It might require gradients, if you would like to use the gradients in the input itself.
Some use cases could be e.g. to generate adversarial examples or visualize some activations in the input using the gradients.