code: def batchnorm_to_fp32(module):
      '''
      BatchNorm layers to have parameters in single precision.
      Find all layers and convert them back to float. This can't
      be done with built in .apply as that function will apply
      fn to all modules, parameters, and buffers. Thus we wouldn't
      be able to guard the float conversion based on the module type.
      '''
      if isinstance(module, nn.modules.batchnorm._BatchNorm):
          module.float()
      for child in module.children():
          batchnorm_to_fp32(child)
      return modulf batchnorm_to_fp32(module):
      '''
      BatchNorm layers to have parameters in single precision.
      Find all layers and convert them back to float. This can't
      be done with built in .apply as that function will apply
      fn to all modules, parameters, and buffers. Thus we wouldn't
      be able to guard the float conversion based on the module type.
      '''
      if isinstance(module, nn.modules.batchnorm._BatchNorm):
          module.float()
      for child in module.children():
          batchnorm_to_fp32(child)
      return module
docs: BatchNorm layers to have parameters in single precision.
      Find all layers and convert them back to float. This can't
      be done with built in .apply as that function will apply
      fn to all modules, parameters, and buffers. Thus we wouldn't
      be able to guard the float conversion based on the module type.