Solved by karthikprasad in post #2 
              
              
                Hello @hkz, 
Thank you for surfacing this quirk. 
Opacus does indeed override the optimizer.step() when privacy engine is attached to it. In the current implementation, we perform the per-sample gradient clipping and subsequently call the original step() function of the optimizer (opacus/privacy_eng…