class_docstr: GroverEmbedding layer.
  
  This layer is a simple wrapper over GroverTransEncoder layer for retrieving the embeddings from the GroverTransEncoder layer.
  
  Parameters
  ----------
  edge_fdim: int
      the dimension of additional feature for edge/bond.
  node_fdim: int
      the dimension of additional feature for node/atom.
  depth: int
      Dynamic message passing depth for use in MPNEncoder
  undirected: bool
      The message passing is undirected or not
  num_mt_block: int
      the number of message passing blocks.
  num_head: int
      the number of attention heads.
class_docstr_tok: ["GroverEmbedding","layer",".","This","layer","is","a","simple","wrapper","over","GroverTransEncoder","layer","for","retrieving","the","embeddings","from","the","GroverTransEncoder","layer",".","Parameters","--","--","--","--","--","edge_fdim",":","int","the","dimension","of","additional","feature","for","edge\/bond",".","node_fdim",":","int","the","dimension","of","additional","feature","for","node\/atom",".","depth",":","int","Dynamic","message","passing","depth","for","use","in","MPNEncoder","undirected",":","bool","The","message","passing","is","undirected","or","not","num_mt_block",":","int","the","number","of","message","passing","blocks",".","num_head",":","int","the","number","of","attention","heads","."]
code: def __init__(
      self,
      node_fdim,
      edge_fdim,
      hidden_size=128,
      depth=1,
      undirected=False,
      dropout=0.2,
      activation="relu",
      num_mt_block=1,
      num_heads=4,
      bias=False,
      res_connection=False,
  ):
      super(GroverEmbedding, self).__init__()
      self.encoders = GroverTransEncoder(
          hidden_size=hidden_size,
          edge_fdim=edge_fdim,
          node_fdim=node_fdim,
          depth=depth,
          undirected=undirected,
          dropout=dropout,
          activation=activation,
          num_mt_block=num_mt_block,
          num_heads=num_heads,
          bias=bias,
          res_connection=res_connection,
      )
  
imports: from typing import List, Dict
  import numpy
  from scipy import stats
  from deepchem.models.torch_models.readout import GroverReadout
  from deepchem.models.torch_models.layers import SublayerConnection, PositionwiseFeedForward
label_desc: Use image node_id 1 to create a new GroverEmbedding object from inherited base classes: nn with example: obj = GroverEmbedding(node_fdim, edge_fdim, hidden_size, depth, undirected, dropout, activation, num_mt_block, num_heads, bias, res_connection)