code: def post_backward_with_master_weights_FusedSGD(self, scaler):
      if self.materialize_master_grads:
          post_backward_with_master_weights(self, scaler)
      else:
          stash = self._amp_stash
  
          self._amp_lazy_init()
  
          grads_have_scale = scaler.loss_scale()
          stashed_have_scale = self.most_recent_scale
          out_scale = grads_have_scale
          if self.scale_set_by_backward:
              out_scale = min(grads_have_scale, self.most_recent_scale)
  
          split_types = (
              (stash.all_fp16_params, stash.all_fp16_grad_stash),
              (
                  stash.all_fp32_from_fp32_params,
                  stash.all_fp32_from_fp32_grad_stash,
              ),
          )
  
          # unscale_with_stashed() implements grads*1/scale + stashed_grads*1.
          # stashed_grads are scaled by self.most_recent_scale.
          for params, stashed_grads in split_types:
              post_backward_models_are_masters(
                  scaler,
                  params,
                  stashed_grads,
                  (grads_have_scale, stashed_have_scale, out_scale),
              )
  
          self.most_recent_scale = out_scale
          self.scale_set_by_backward = True
  
imports: import types
  from ..fp16_utils import master_params_to_model_params
  from ..multi_tensor_apply import multi_tensor_applier
  from ._amp_state import maybe_print
  import torch
  from ..optimizers import FusedSGD
label_desc: Use image node_id 10 for calling a global function with example usage: post_backward_with_master_weights_FusedSGD(scaler) without return types