class_docstr: Upsampling module from PointNet++
  
  Arguments:
      k [int] -- number of nearest neighboors used for the interpolation
      up_conv_nn [List[int]] -- list of feature sizes for the uplconv mlp
class_docstr_tok: ["Upsampling","module","from","PointNet++","Arguments",":","k","[","int","]","--","number","of","nearest","neighboors","used","for","the","interpolation","up_conv_nn","[","List","[","int","]","]","--","list","of","feature","sizes","for","the","uplconv","mlp"]
code: def __init__(self, up_k, up_conv_nn, *args, **kwargs):
      super(FPModule, self).__init__(None)
  
      self.k = up_k
      bn_momentum = kwargs.get("bn_momentum", 0.1)
      self.nn = MLP(up_conv_nn, bn_momentum=bn_momentum, bias=False)
  
imports: from abc import abstractmethod
  from typing import *
  import torch
  from torch.nn import Linear, ReLU, LeakyReLU, BatchNorm1d, Dropout
  from torch_geometric.nn import knn_interpolate, fps, radius, global_max_pool, global_mean_pool, knn
  from torch_geometric.data import Batch
  from torch_points3d.core.base_conv.base_conv import *
  from torch_points3d.core.common_modules import *
  from torch_points3d.core.spatial_ops import *
label_desc: Use image node_id 1 to create a new FPModule object from inherited base classes: BaseConvolutionUp with example: obj = FPModule(up_k, up_conv_nn)