docstr: Elementwise product model for edge scores
  
  Parameters
  ----------
  data_info : dict
      The information about the input dataset.
  hidden_size : int
      Hidden size.
  num_layers : int
      Number of hidden layers.
  bias : bool
      Whether to use bias in the linaer layer.
docstr_tok: ["Elementwise","product","model","for","edge","scores","Parameters","--","--","--","--","--","data_info",":","dict","The","information","about","the","input","dataset",".","hidden_size",":","int","Hidden","size",".","num_layers",":","int","Number","of","hidden","layers",".","bias",":","bool","Whether","to","use","bias","in","the","linaer","layer","."]
code: def __init__(
      self,
      data_info: dict,
      hidden_size: int = 64,
      num_layers: int = 2,
      bias: bool = True,
  ):
      """Elementwise product model for edge scores
  
      Parameters
      ----------
      data_info : dict
          The information about the input dataset.
      hidden_size : int
          Hidden size.
      num_layers : int
          Number of hidden layers.
      bias : bool
          Whether to use bias in the linaer layer.
      """
      super(ElementWiseProductPredictor, self).__init__()
      lins_list = []
      in_size, out_size = data_info["in_size"], data_info["out_size"]
      for i in range(num_layers):
          in_hiddnen = in_size if i == 0 else hidden_size
          out_hidden = hidden_size if i < num_layers - 1 else out_size
          lins_list.append(nn.Linear(in_hiddnen, out_hidden, bias=bias))
          if i < num_layers - 1:
              lins_list.append(nn.ReLU())
      self.linear = nn.Sequential(*lins_list)
  
imports: import torch
  import torch.nn
  import torch.nn.functional
label_desc: Use image node_id 1 to create a new ElementWiseProductPredictor object from inherited base classes: nn with example: obj = ElementWiseProductPredictor(data_info, hidden_size, num_layers, bias)