class_docstr: NetVLAD layer implementation.
  
  Args:
      num_clusters (`int`):
          The number of clusters.
      dim (`int`):
          Dimension of descriptors.
      alpha (`float`):
          Parameter of initialization. Larger value is harder assignment.
      normalize_input (`bool`):
          If true, descriptor-wise L2 normalization is applied to input.
class_docstr_tok: ["NetVLAD","layer","implementation",".","Args",":","num_clusters","(","`","int","`",")",":","The","number","of","clusters",".","dim","(","`","int","`",")",":","Dimension","of","descriptors",".","alpha","(","`","float","`",")",":","Parameter","of","initialization",".","Larger","value","is","harder","assignment",".","normalize_input","(","`","bool","`",")",":","If","true",",","descriptor-wise","L2","normalization","is","applied","to","input","."]
code: def _init_params(self):
      self.conv.weight = nn.Parameter(
          (2.0 * self.alpha * self.centroids)
          .unsqueeze(-1)
          .unsqueeze(-1)
      )
      self.conv.bias = nn.Parameter(
          -self.alpha * self.centroids.norm(dim=1)
      )
  
file_path: towhee/towhee/models/layers/netvlad.py
imports: import torch
  import torch.nn.functional
  from torch import nn
label_desc: Use image node_id 2 for calling the NetVLAD obj's underlying member method code with example usage: obj._init_params() without return types