class_docstr: L2 norm of the gradient estimated as the average change of a field value f
  accross neighbouring points within a radius r
class_docstr_tok: ["L2","norm","of","the","gradient","estimated","as","the","average","change","of","a","field","value","f","accross","neighbouring","points","within","a","radius","r"]
docstr: Computes the Dirichlet loss (or L2 norm of the gradient) of f
  Arguments:
      pos -- [N,3] (or [B,N,3] for dense format)  location of each point
      f -- [N] (or [B,N] for dense format)  Value of a function at each points
      batch_idx -- [N] Batch id of each point (Only for sparse format)
docstr_tok: ["Computes","the","Dirichlet","loss","(","or","L2","norm","of","the","gradient",")","of","f","Arguments",":","pos","--","[","N,3","]","(","or","[","B",",","N,3","]","for","dense","format",")","location","of","each","point","f","--","[","N","]","(","or","[","B",",","N","]","for","dense","format",")","Value","of","a","function","at","each","points","batch_idx","--","[","N","]","Batch","id","of","each","point","(","Only","for","sparse","format",")"]
code: def forward(self, pos, f, batch_idx=None):
      """Computes the Dirichlet loss (or L2 norm of the gradient) of f
      Arguments:
          pos -- [N,3] (or [B,N,3] for dense format)  location of each point
          f -- [N] (or [B,N] for dense format)  Value of a function at each points
          batch_idx -- [N] Batch id of each point (Only for sparse format)
      """
      return dirichlet_loss(
          self._r, pos, f, batch_idx=batch_idx, aggr=self._aggr
      )
  
file_path: torch-points3d/torch_points3d/core/losses/dirichlet_loss.py
imports: import torch
  import torch_points_kernels
  from torch_cluster import radius
  from torch_scatter import scatter_add
label_desc: Use image node_id 2 for calling the DirichletLoss obj's underlying member method code with example usage: obj.forward(pos, f, batch_idx) and returns: dirichlet_loss