Thanks for your answer. I will check the code there. But the thing is that I need to reduce the precision using  a mechanism that I implemented, with Caffe worked because I could detect specifically where the weight update process was done. However with PyTorch if I see the adam.py file seems like some .add methods are called to do the weight update process and as far as I understand in some way this will be executed using some backend library as mkl, mkldnn (because I am just supporting CPU features). Is there where I need to check the routine name to tell to my mechanism to avoid reducing precision when the weight updates is done based on this routine name.