code: def setup(
      self,
      trainer: "pl.Trainer",
      pl_module: "pl.LightningModule",
      stage: str,
  ) -> None:
      if isinstance(
          trainer.strategy, (FSDPStrategy, DeepSpeedStrategy)
      ):
          raise MisconfigurationException(
              "SWA does not currently support sharded models."
          )
  
      # copy the model before moving it to accelerator device.
      self._average_model = deepcopy(pl_module)
  
imports: from copy import deepcopy
  from typing import Any, Callable, Dict, List, Optional, Union, cast
  import torch
  from torch import Tensor, nn
  from torch.optim.swa_utils import SWALR
  from typing_extensions import override
  import lightning.pytorch
  from lightning.fabric.utilities.types import LRScheduler
  from lightning.pytorch.callbacks.callback import Callback
  from lightning.pytorch.strategies import DeepSpeedStrategy
  from lightning.pytorch.strategies.fsdp import FSDPStrategy
  from lightning.pytorch.utilities.exceptions import MisconfigurationException
  from lightning.pytorch.utilities.rank_zero import rank_zero_info, rank_zero_warn
  from lightning.pytorch.utilities.types import LRSchedulerConfig
label_desc: Use image node_id 5 for calling the StochasticWeightAveraging obj's underlying member method code with example usage: obj.setup(trainer, pl_module, stage) without return types