code: def forward(
      self, data: torch_geometric.data.Data, *__args, **__kwargs
  ) -> _typing.Sequence[torch.Tensor]:
      x: torch.Tensor = data.x
      edge_index: torch.LongTensor = data.edge_index
      if (
          hasattr(data, "edge_weight")
          and isinstance(getattr(data, "edge_weight"), torch.Tensor)
          and torch.is_tensor(data.edge_weight)
      ):
          edge_weight: _typing.Optional[torch.Tensor] = data.edge_weight
      else:
          edge_weight: _typing.Optional[torch.Tensor] = None
      results: _typing.MutableSequence[torch.Tensor] = [x]
      for layer, convolution_layer in enumerate(
          self.__convolution_layers
      ):
          x = convolution_layer(x, edge_index, edge_weight)
          if layer < len(self.__convolution_layers) - 1:
              x: torch.Tensor = _utils.activation.activation_func(
                  x, self._act
              )
              if (
                  isinstance(self._dropout, float)
                  and 0 <= self._dropout <= 1
              ):
                  x = torch.nn.functional.dropout(
                      x, self._dropout, self.training
                  )
          results.append(x)
      return results
  
file_path: AutoGL/autogl/module/model/encoders/_pyg/_gcn.py
imports: import torch.nn.functional
  import typing
  import torch_geometric
  from torch_geometric.nn.conv import GCNConv
  from ..None import base_encoder, encoder_registry
  from ...None import _utils
label_desc: Use image node_id 2 for calling the _GCN obj's underlying member method code with example usage: obj.forward(data) and returns: results