class_docstr: General GNN layer, with edge features
      
class_docstr_tok: ["General","GNN","layer",",","with","edge","features"]
code: def forward(self, x, edge_index, edge_weight=None, edge_feature=None):
      if self.cached and self.cached_result is not None:
          if edge_index.size(1) != self.cached_num_edges:
              raise RuntimeError(
                  "Cached {} number of edges, but found {}. Please "
                  "disable the caching behavior of this layer by removing "
                  "the `cached=True` argument in its constructor.".format(
                      self.cached_num_edges, edge_index.size(1)
                  )
              )
  
      if not self.cached or self.cached_result is None:
          self.cached_num_edges = edge_index.size(1)
          if self.normalize:
              edge_index, norm = self.norm(
                  edge_index,
                  x.size(self.node_dim),
                  edge_weight,
                  self.improved,
                  x.dtype,
              )
          else:
              norm = edge_weight
          self.cached_result = edge_index, norm
  
      edge_index, norm = self.cached_result
  
      x_msg = self.propagate(
          edge_index, x=x, norm=norm, edge_feature=edge_feature
      )
  
      if cfg.gnn.self_msg == "concat":
          x_self = self.linear_self(x)
          return x_self + x_msg
      elif cfg.gnn.self_msg == "add":
          return x + x_msg
      else:
          return x_msg
  
imports: import torch
  import torch.nn
  from torch.nn import Parameter
  from torch_geometric.nn.conv import MessagePassing
  from torch_geometric.nn.inits import glorot, zeros
  from torch_geometric.utils import add_remaining_self_loops, is_undirected
  from torch_scatter import scatter_add
  from graphgym.config import cfg
label_desc: Use image node_id 4 for calling the GeneralEdgeConvLayerV2 obj's underlying member method code with example usage: obj.forward(x, edge_index, edge_weight, edge_feature) and returns: unknown, unknown, x_msg