code: def __init__(
      self,
      _final_dimension: int,
      hidden_dimension: int,
      output_dimension: int,
      _act: _typing.Optional[str],
      _dropout: _typing.Optional[float],
      num_graph_features: _typing.Optional[int],
  ):
      super(_SumPoolMLPDecoder, self).__init__()
      if isinstance(num_graph_features, int) and num_graph_features > 0:
          _final_dimension += num_graph_features
          self.__num_graph_features: _typing.Optional[
              int
          ] = num_graph_features
      else:
          self.__num_graph_features: _typing.Optional[int] = None
      self._fc1: torch.nn.Linear = torch.nn.Linear(
          _final_dimension, hidden_dimension
      )
      self._fc2: torch.nn.Linear = torch.nn.Linear(
          hidden_dimension, output_dimension
      )
      self._act: _typing.Optional[str] = _act
      self._dropout: _typing.Optional[float] = _dropout
  
imports: import torch.nn.functional
  import typing
  import torch_geometric
  from torch_geometric.nn.conv import GraphConv
  from torch_geometric.nn.pool import TopKPooling
  from torch_geometric.nn.glob import global_add_pool, global_max_pool, global_mean_pool
  from ...encoders import base_encoder
  from ..None import base_decoder, decoder_registry
  from ...None import _utils
label_desc: Use image node_id 1 to create a new _SumPoolMLPDecoder object from inherited base classes: torch.nn with example: obj = _SumPoolMLPDecoder(_final_dimension, hidden_dimension, output_dimension, _act, _dropout, num_graph_features)