class_docstr: Configuration used to map multiple inputs to different part of the model
  
  Assumptions:
  - the same trunk is used to extract the features (but we can extract the features
    at different levels for each of the inputs)
  - by default, each input correspond to a different head (but this can be changed)
  
  Supported input formats:
  
      List (Legacy format):
      ["input_key", [list of features heads is applied on]]
  
      Dict (Flexible format):
      ["input_key", {"feat_names": [], "head_index": 0, "additional_keys":["mask"]}]
code: def from_config(
      cls, model_config: AttrDict
  ) -> Optional["MultipleInputMapping"]:
      if len(model_config.MULTI_INPUT_HEAD_MAPPING) == 0:
          return None
  
      mapping = MultipleInputMapping()
      num_heads = len(model_config.HEAD.PARAMS)
      for idx, mapping_config in enumerate(
          model_config.MULTI_INPUT_HEAD_MAPPING
      ):
          mapping._parse_entry(idx, mapping_config, num_heads)
      return mapping
  
imports: from dataclasses import dataclass, field
  from typing import Dict, List, Optional
  from vissl.config import AttrDict
label_desc: Use image node_id 1 for calling the MultipleInputMapping obj's underlying member method code with example usage: obj.from_config(cls, model_config) and returns: mapping, None