class_docstr: The 2D convolution layer used by the feature encoder in PointNet.
class_docstr_tok: ["The","2D","convolution","layer","used","by","the","feature","encoder","in","PointNet","."]
docstr: Constructs a Conv2 layer.
  
  Note:
    Differently from the standard Keras Conv2 layer, the order of ops is:
    1. fully connected layer
    2. batch normalization layer
    3. ReLU activation unit
  
  Args:
    channels: the number of generated feature.
    momentum: the momentum of the batch normalization layer.
docstr_tok: ["Constructs","a","Conv2","layer",".","Note",":","Differently","from","the","standard","Keras","Conv2","layer",",","the","order","of","ops","is",":","1.","fully","connected","layer","2.","batch","normalization","layer","3",".","ReLU","activation","unit","Args",":","channels",":","the","number","of","generated","feature",".","momentum",":","the","momentum","of","the","batch","normalization","layer","."]
code: def __init__(self, channels, momentum):
      """Constructs a Conv2 layer.
  
      Note:
        Differently from the standard Keras Conv2 layer, the order of ops is:
        1. fully connected layer
        2. batch normalization layer
        3. ReLU activation unit
  
      Args:
        channels: the number of generated feature.
        momentum: the momentum of the batch normalization layer.
      """
      super(PointNetConv2Layer, self).__init__()
      self.channels = channels
      self.momentum = momentum
  
imports: from typing import Optional
  import tensorflow
  from tensorflow_graphics.util import export_api
label_desc: Use image node_id 1 to create a new PointNetConv2Layer object from inherited base classes: tf.keras.layers with example: obj = PointNetConv2Layer(channels, momentum)