code: def build_model(
      model_name,
      num_layers,
      mlp_layers,
      hidden_dim,
      num_classes,
      dropout_rate,
      num_heads,
      learn_eps,
      sparse,
  ):
      """Create gnn model and initialize parameters weights."""
      # Convert hidden_dim to integers
      for i in range(len(hidden_dim)):
          hidden_dim[i] = int(hidden_dim[i])
  
      # Only GCN, GAT and GIN are available.
      if model_name == "gcn":
          model = GCN(
              num_layers=num_layers,
              hidden_dim=hidden_dim,
              num_classes=num_classes,
              dropout_rate=dropout_rate,
              sparse=sparse,
              bias=True,
          )
      elif model_name == "gat":
          model = GAT(
              num_layers=num_layers,
              hidden_dim=hidden_dim,
              num_classes=num_classes,
              dropout_rate=dropout_rate,
              num_heads=num_heads,
              sparse=sparse,
          )
      elif model_name == "gin":
          model = GIN(
              num_layers=num_layers,
              mlp_layers=mlp_layers,
              hidden_dim=hidden_dim,
              num_classes=num_classes,
              dropout_rate=dropout_rate,
              learn_eps=learn_eps,
              sparse=sparse,
          )
  
      return model
  
file_path: neural-structured-learning/research/gnn-survey/utils.py
imports: import os
  from models import GAT
  from models import GCN
  from models import GIN
  import numpy
  import scipy.sparse
  import tensorflow
label_desc: Use image node_id 1 for calling a global function with example usage: build_model(model_name, num_layers, mlp_layers, hidden_dim, num_classes, dropout_rate, num_heads, learn_eps, sparse) and returns: model