code: def load_param(self, params):
      key = f"{self.att_type}_{self.agg_type}_{self.in_channels}_{self.out_channels}_{self.heads}"
      weight_key = key + "_weight"
      att_key = key + "_att"
      agg_key = key + "_agg"
      bais_key = key + "_bais"
  
      if weight_key in params:
          self.weight = params[weight_key]
  
      if att_key in params:
          self.att = params[att_key]
  
      if bais_key in params:
          self.bias = params[bais_key]
  
      if agg_key in params and hasattr(self, "pool_layer"):
          self.pool_layer.load_state_dict(params[agg_key])
  
imports: from torch_geometric.nn import GATConv, GCNConv, ChebConv, SAGEConv, GatedGraphConv, ARMAConv, SGConv
  import torch_geometric.nn
  import torch
  from torch import nn
  import torch.nn.functional
  import inspect
  import sys
  from torch_scatter import scatter_add
  import torch_scatter
  from torch.nn import Parameter
  from torch_geometric.nn.inits import glorot, zeros
  from torch_geometric.utils import remove_self_loops, add_self_loops, add_remaining_self_loops, softmax
label_desc: Use image node_id 10 for calling the GeoLayer obj's underlying member method code with example usage: obj.load_param(params) without return types