class_docstr: This is the configuration class to store the configuration of a [`PolyModel`].
      - [Polytropon (Poly)](https://arxiv.org/abs/2202.13914)
      - [Multi-Head Routing (MHR)](https://arxiv.org/abs/2211.03831)
  
  Args:
      r (`int`): Attention dimension of each Lora in Poly.
      target_modules (`Union[List[str],str]`): The names of the modules to apply Poly to.
      modules_to_save (`List[str]`): List of modules apart from Poly layers to be set as trainable
          and saved in the final checkpoint.
      init_weights (bool): Whether to perform initialization of Poly weights.
      poly_type (`Literal["poly"]`): The variant of the Poly module to use. Currently, only "poly"
          is supported.
      n_tasks (`int`): The number of tasks in a multitasking scenario.
      n_skills (`int`): The number of skills (LoRA) in each Poly layer.
      n_splits (`int`): The number of splits within each LoRA of a Poly layer. A value greater
          than 1 indicates the use of Multi-Head Routing (MHR).
code: def __post_init__(self):
      self.peft_type = PeftType.POLY
      self.target_modules = (
          set(self.target_modules)
          if isinstance(self.target_modules, list)
          else self.target_modules
      )
  
imports: from dataclasses import dataclass, field
  from typing import List, Literal, Optional, Union
  from peft.config import PeftConfig
  from peft.utils import PeftType
label_desc: Use image node_id 1 for calling the PolyConfig obj's underlying member method code with example usage: obj.__post_init__() without return types