code: def create_ppi_gnn_model(hidden_state_size: int = 256):
      def create_mp_layers(num_edges: int):
          mlp_mp_constructor = lambda: MlpMessagePassingLayer(
              input_state_dimension=hidden_state_size,
              message_dimension=hidden_state_size,
              output_state_dimension=hidden_state_size,
              num_edge_types=num_edges,
              message_aggregation_function="sum",
              dropout_rate=0.2,
          )
          r1 = MeanResidualLayer(hidden_state_size)
          r2 = MeanResidualLayer(hidden_state_size)
          return [
              r1.pass_through_dummy_layer(),
              mlp_mp_constructor(),
              mlp_mp_constructor(),
              mlp_mp_constructor(),
              r1,
              r2.pass_through_dummy_layer(),
              mlp_mp_constructor(),
              mlp_mp_constructor(),
              r2,
          ]
  
      return PPIMulticlassClassification(
          gnn_model=GraphNeuralNetworkModel[np.ndarray, np.ndarray](
              node_representation_model=FeatureRepresentationModel(
                  embedding_size=hidden_state_size,
                  activation=nn.Tanh(),
              ),
              message_passing_layer_creator=create_mp_layers,
              max_nodes_per_graph=6000,
              max_graph_edges=300000,
              introduce_backwards_edges=True,
              add_self_edges=True,
              stop_extending_minibatch_after_num_nodes=3000,
          ),
      )
  
file_path: ptgnn/ptgnn/implementations/ppi/train.py
imports: import json
  import numpy
  import torch
  from docopt import docopt
  from dpu_utils.utils import RichPath, run_and_debug
  from pathlib import Path
  from torch import nn
  from ptgnn.baseneuralmodel import AbstractNeuralModel, ModelTrainer
  from ptgnn.baseneuralmodel.utils.amlutils import configure_logging, log_run
  from ptgnn.implementations.ppi.dataloader import PPIDatasetLoader
  from ptgnn.implementations.ppi.ppi import PPIMulticlassClassification
  from ptgnn.neuralmodels.embeddings.linearmapembedding import FeatureRepresentationModel
  from ptgnn.neuralmodels.gnn.graphneuralnetwork import GraphNeuralNetworkModel
  from ptgnn.neuralmodels.gnn.messagepassing.mlpmessagepassing import MlpMessagePassingLayer
  from ptgnn.neuralmodels.gnn.messagepassing.residuallayers import MeanResidualLayer
label_desc: Use image node_id 1 for calling a global function with example usage: create_ppi_gnn_model(hidden_state_size) and returns: PPIMulticlassClassification, list