class_docstr: Setup the MOGONET model via the config file.
  
  Args:
      cfg (CfgNode): A YACS config object.
      dataset (SparseMultiomicsDataset): The input dataset created in form of :class:`~torch_geometric.data.Dataset`.
docstr: Create the MOGONET model via the config file.
code: def _create_model(self) -> None:
      """Create the MOGONET model via the config file."""
      num_modalities = self.cfg.DATASET.NUM_MODALITIES
      num_classes = self.cfg.DATASET.NUM_CLASSES
      gcn_dropout_rate = self.cfg.MODEL.GCN_DROPOUT_RATE
      gcn_hidden_dim = self.cfg.MODEL.GCN_HIDDEN_DIM
      vcdn_hidden_dim = pow(num_classes, num_modalities)
  
      for modality in range(num_modalities):
          self.unimodal_encoder.append(
              MogonetGCN(
                  in_channels=self.dataset.get(modality).num_features,
                  hidden_channels=gcn_hidden_dim,
                  dropout=gcn_dropout_rate,
              )
          )
  
          self.unimodal_decoder.append(
              LinearClassifier(
                  in_dim=gcn_hidden_dim[-1], out_dim=num_classes
              )
          )
  
      if num_modalities >= 2:
          self.multimodal_decoder = VCDN(
              num_modalities=num_modalities,
              num_classes=num_classes,
              hidden_dim=vcdn_hidden_dim,
          )
  
file_path: pykale/examples/multiomics_mogonet/model.py
imports: from typing import List, Optional
  from torch.nn import CrossEntropyLoss
  from yacs.config import CfgNode
  from kale.embed.mogonet import MogonetGCN
  from kale.loaddata.multiomics_datasets import SparseMultiomicsDataset
  from kale.pipeline.multiomics_trainer import MultiomicsTrainer
  from kale.predict.decode import LinearClassifier, VCDN
label_desc: Use image node_id 2 for calling the MogonetModel obj's underlying member method code with example usage: obj._create_model() without return types