To be save, you could use native mixed-precision via torch.cuda.amp 93, which will make sure that only “safe” operations are performed in FP16.
Calling half() on your model directly might work in a lot of use cases, but might also yield overflows etc., so you would have to verify your model manually.
If you want to manually use FP16, you could check e.g. the validation accuracy before deploying the model as a quick sanity check.