class_docstr: Input:
      x: default node feature. the first and second column represents node type and node attributes.
      depth: The depth of the node in the AST.
  
  Output:
      emb_dim-dimensional vector
code: def __init__(
      self, emb_dim, num_nodetypes, num_nodeattributes, max_depth
  ):
      super(ASTNodeEncoder, self).__init__()
  
      self.max_depth = max_depth
  
      self.type_encoder = torch.nn.Embedding(num_nodetypes, emb_dim)
      self.attribute_encoder = torch.nn.Embedding(
          num_nodeattributes, emb_dim
      )
      self.depth_encoder = torch.nn.Embedding(
          self.max_depth + 1, emb_dim
      )
  
file_path: ogb/examples/graphproppred/code2/utils.py
imports: import torch
  from collections import Counter
  import numpy
  import torch
label_desc: Use image node_id 1 to create a new ASTNodeEncoder object from inherited base classes: torch.nn with example: obj = ASTNodeEncoder(emb_dim, num_nodetypes, num_nodeattributes, max_depth)