code: def __init__(
      self,
      module: torch.nn.Module,
      device_ids: Optional[List[Union[int, torch.device]]] = None,
      output_device: Optional[Union[int, torch.device]] = None,
      dim: int = 0,
      broadcast_buffers: bool = True,
      process_group: Optional[ProcessGroup] = None,
      bucket_cap_mb: int = 25,
      find_unused_parameters: bool = False,
      check_reduction: bool = False,
      gradient_as_bucket_view: bool = False,
      static_graph: bool = False,
  ) -> None:
      ...
  
imports: from contextlib import contextmanager
  from dataclasses import dataclass
  from typing import Any, Generator, Iterator, List, Mapping, Optional, Protocol, Sequence, Tuple, Type, TypedDict, Union, runtime_checkable
  import torch
  from torch import Tensor
  from torch.optim import Optimizer
  from torchmetrics import Metric
  from typing_extensions import NotRequired, Required
  from lightning.fabric.utilities.types import _TORCH_LRSCHEDULER, LRScheduler, ProcessGroup, ReduceLROnPlateau
label_desc: Use image node_id 1 to create a new DistributedDataParallel object from inherited base classes: Protocol with example: obj = DistributedDataParallel(module, device_ids, output_device, dim, broadcast_buffers, process_group, bucket_cap_mb, find_unused_parameters, check_reduction, gradient_as_bucket_view, static_graph)