class_docstr: Layer that transforms one point set into a graph, or a batch of
  point sets with different number of points into a batched union of those graphs.
  
  If a batch of point sets is provided, then the point :math:`j` in the point
  set :math:`i` is mapped to graph node ID:
  :math:`\sum_{p<i} |V_p| + j`, where :math:`|V_p|` means the number of
  points in the point set :math:`p`.
  
  The predecessors of each node are the k-nearest neighbors of the
  corresponding point.
  
  Parameters
  ----------
  k : int
      The number of neighbors.
  
  Notes
  -----
  The nearest neighbors found for a node include the node itself.
  
  Examples
  --------
  The following example uses PyTorch backend.
  
  >>> import torch
  >>> from dgl.nn.pytorch.factory import SegmentedKNNGraph
  >>>
  >>> kg = SegmentedKNNGraph(2)
  >>> x = torch.tensor([[0,1],
  ...                   [1,2],
  ...                   [1,3],
  ...                   [100, 101],
  ...                   [101, 102],
  ...                   [50, 50],
  ...                   [24,25],
  ...                   [25,24]])
  >>> g = kg(x, [3,3,2])
  >>> print(g.edges())
  (tensor([0, 1, 1, 1, 2, 2, 3, 3, 3, 4, 4, 5, 6, 6, 7, 7]),
   tensor([0, 0, 1, 2, 1, 2, 3, 4, 5, 3, 4, 5, 6, 7, 6, 7]))
  >>>
class_docstr_tok: ["Layer","that","transforms","one","point","set","into","a","graph",",","or","a","batch","of","point","sets","with","different","number","of","points","into","a","batched","union","of","those","graphs",".","If","a","batch","of","point","sets","is","provided",",","then","the","point",":","math",":","`","j","`","in","the","point","set",":","math",":","`","i","`","is","mapped","to","graph","node","ID",":",":","math",":","`","\\sum_","{","p","<","i","}","|V_p|","+","j","`",",","where",":","math",":","`","|V_p|","`","means","the","number","of","points","in","the","point","set",":","math",":","`","p","`",".","The","predecessors","of","each","node","are","the","k-nearest","neighbors","of","the","corresponding","point",".","Parameters","--","--","--","--","--","k",":","int","The","number","of","neighbors",".","Notes","--","--","-","The","nearest","neighbors","found","for","a","node","include","the","node","itself",".","Examples","--","--","--","--","The","following","example","uses","PyTorch","backend",".",">",">",">","import","torch",">",">",">","from","dgl.nn.pytorch.factory","import","SegmentedKNNGraph",">",">",">",">",">",">","kg","=","SegmentedKNNGraph","(","2",")",">",">",">","x","=","torch.tensor","(","[","[","0,1","]",",","...","[","1,2","]",",","...","[","1,3","]",",","...","[","100",",","101","]",",","...","[","101",",","102","]",",","...","[","50",",","50","]",",","...","[","24,25","]",",","...","[","25,24","]","]",")",">",">",">","g","=","kg","(","x",",","[","3,3,2","]",")",">",">",">","print","(","g.edges","(",")",")","(","tensor","(","[","0",",","1",",","1",",","1",",","2",",","2",",","3",",","3",",","3",",","4",",","4",",","5",",","6",",","6",",","7",",","7","]",")",",","tensor","(","[","0",",","0",",","1",",","2",",","1",",","2",",","3",",","4",",","5",",","3",",","4",",","5",",","6",",","7",",","6",",","7","]",")",")",">",">",">"]
code: def __init__(self, k):
      super(SegmentedKNNGraph, self).__init__()
      self.k = k
  
file_path: dgl/python/dgl/nn/pytorch/factory.py
imports: import torch.nn
  from ...transforms import knn_graph, radius_graph, segmented_knn_graph
label_desc: Use image node_id 1 to create a new SegmentedKNNGraph object from inherited base classes: nn with example: obj = SegmentedKNNGraph(k)