class_docstr: A keras layer for dynamic graph convolutions.
  
  Dynamic GraphCNN for Learning on Point Clouds
  Yue Wang, Yongbin Sun, Ziwei Liu, Sanjay E. Sarma, Michael Bronstein, and
  Justin Solomon.
  https://arxiv.org/abs/1801.07829
  
  This layer implements an instance of the graph convolutional operation
  described in the paper above, specifically a graph convolution block with a
  single edge filtering layer. This implementation is intended to demonstrate
  how `graph_convolution.edge_convolution_template` can be wrapped to implement
  a variety of edge convolutional methods.
  
  This implementation is slightly generalized version to what is described in
  the paper in that here variable sized neighborhoods are allowed rather than
  forcing a fixed size k-neighbors. Users must provide the neighborhoods as
  input.
class_docstr_tok: ["A","keras","layer","for","dynamic","graph","convolutions",".","Dynamic","GraphCNN","for","Learning","on","Point","Clouds","Yue","Wang",",","Yongbin","Sun",",","Ziwei","Liu",",","Sanjay","E.","Sarma",",","Michael","Bronstein",",","and","Justin","Solomon",".","https",":","\/\/arxiv.org\/abs\/1801.07829","This","layer","implements","an","instance","of","the","graph","convolutional","operation","described","in","the","paper","above",",","specifically","a","graph","convolution","block","with","a","single","edge","filtering","layer",".","This","implementation","is","intended","to","demonstrate","how","`","graph_convolution.edge_convolution_template","`","can","be","wrapped","to","implement","a","variety","of","edge","convolutional","methods",".","This","implementation","is","slightly","generalized","version","to","what","is","described","in","the","paper","in","that","here","variable","sized","neighborhoods","are","allowed","rather","than","forcing","a","fixed","size","k-neighbors",".","Users","must","provide","the","neighborhoods","as","input","."]
docstr: Initializes the layer weights.
docstr_tok: ["Initializes","the","layer","weights","."]
code: def build(self, input_shape):  # pylint: disable=unused-argument
      """Initializes the layer weights."""
      self._conv1d_layer = tf.keras.layers.Conv1D(
          filters=self._num_output_channels,
          kernel_size=1,
          strides=1,
          padding="valid",
          activation=self._activation,
          use_bias=self._use_bias,
          kernel_initializer=self._kernel_initializer,
          bias_initializer=self._bias_initializer,
          kernel_regularizer=self._kernel_regularizer,
          bias_regularizer=self._bias_regularizer,
          activity_regularizer=self._activity_regularizer,
          kernel_constraint=self._kernel_constraint,
          bias_constraint=self._bias_constraint,
      )
  
file_path: graphics/tensorflow_graphics/nn/layer/graph_convolution.py
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import tensorflow
  import tensorflow_graphics.geometry.convolution.graph_convolution
  from tensorflow_graphics.util import export_api
label_desc: Use image node_id 2 for calling the DynamicGraphConvolutionKerasLayer obj's underlying member method code with example usage: obj.build(input_shape) without return types