class_docstr: A DDP Strategy which uses ray as backend.
class_docstr_tok: ["A","DDP","Strategy","which","uses","ray","as","backend","."]
docstr: Wraps the model into a 'DistributedDataParallel' module.
docstr_tok: ["Wraps","the","model","into","a","'DistributedDataParallel","'","module","."]
code: def _setup_model(
      self, model: torch.nn.Module
  ) -> DistributedDataParallel:
      """Wraps the model into a 'DistributedDataParallel' module."""
      # we should override this method to change the creation of `DistributedDataParallel`
      # we need to set `find_unused_parameters` to True to fix mult-instance training,
      # `Trainer` will set it automatically, but `TorchNano` won't, so we set it manually
      self._ddp_kwargs["find_unused_parameters"] = True
      return DistributedDataParallel(model, **self._ddp_kwargs)
  
imports: import os
  import warnings
  from typing import Callable, Dict, List, Union, Any, Optional
  from collections import defaultdict
  import ray
  from ray.util.ml_utils.util import find_free_port
  import torch
  from torch.optim.lr_scheduler import _LRScheduler
  from torch.nn.parallel.distributed import DistributedDataParallel
  import pytorch_lightning
  from pytorch_lightning.core.datamodule import LightningDataModule
  from pytorch_lightning.trainer.states import TrainerFn
  from pytorch_lightning.utilities import rank_zero_only
  from pytorch_lightning.utilities.apply_func import move_data_to_device
  from pytorch_lightning.strategies.launchers import _SpawnLauncher
  from pytorch_lightning.strategies import DDPSpawnStrategy
  from pytorch_lightning.core.optimizer import _configure_schedulers_automatic_opt
  from pytorch_lightning.core.optimizer import _configure_schedulers_manual_opt
  from pytorch_lightning.core.optimizer import _set_scheduler_opt_idx, _validate_scheduler_api
  from pytorch_lightning.core.optimizer import LightningOptimizer
  from .ray_envbase import RayEnvironment
  from bigdl.nano.utils.common import invalidInputError
  from bigdl.nano.utils.pytorch import TORCH_VERSION_LESS_1_12
  from bigdl.nano.deps.ipex.ipex_api import ipex_optimize
  from bigdl.nano.pytorch.dispatcher import _get_patch_status
label_desc: Use image node_id 9 for calling the RayStrategy obj's underlying member method code with example usage: obj._setup_model(model) and returns: DistributedDataParallel