code: def build_neural_module(self) -> Graph2SeqModule:
      gnn = self.__gnn_model.build_neural_module()
      decoder = self.__decoder_model.build_neural_module()
      node_to_graph_representation = MultiheadSelfAttentionVarSizedElementReduce(
          input_representation_size=gnn.input_node_state_dim
          + gnn.output_node_state_dim,
          hidden_size=gnn.input_node_state_dim
          + gnn.output_node_state_dim,
          output_representation_size=gnn.output_node_state_dim,
          num_heads=self.num_summarization_heads,
          query_representation_summarizer=SimpleVarSizedElementReduce(
              "max"
          ),
      )
      return Graph2SeqModule(gnn, decoder, node_to_graph_representation)
  
imports: from typing_extensions import Final, TypedDict
  import torch
  from typing import Any, Dict, List, NamedTuple, Optional, Tuple, Union
  from ptgnn.baseneuralmodel import AbstractNeuralModel, ModuleWithMetrics
  from ptgnn.baseneuralmodel.utils.data import enforce_not_None
  from ptgnn.neuralmodels.gnn.graphneuralnetwork import GraphNeuralNetwork, GraphNeuralNetworkModel
  from ptgnn.neuralmodels.gnn.structs import GnnOutput, GraphData, TensorizedGraphData
  from ptgnn.neuralmodels.reduceops import AbstractVarSizedElementReduce, ElementsToSummaryRepresentationInput, MultiheadSelfAttentionVarSizedElementReduce, SimpleVarSizedElementReduce
  from ptgnn.neuralmodels.sequence.grucopydecoder import DecoderData, GruCopyingDecoder, GruCopyingDecoderModel, TokenizedOutput
label_desc: Use image node_id 3 for calling the Graph2Seq obj's underlying member method code with example usage: obj.build_neural_module() and returns: Graph2SeqModule