class_docstr: Wraps the function `feature_steered_convolution` as a Keras layer.
class_docstr_tok: ["Wraps","the","function","`","feature_steered_convolution","`","as","a","Keras","layer","."]
docstr: Initializes the trainable weights.
docstr_tok: ["Initializes","the","trainable","weights","."]
code: def build(self, input_shape):
      """Initializes the trainable weights."""
      in_channels = tf.TensorShape(input_shape[0]).as_list()[-1]
      if self._num_output_channels is None:
          out_channels = in_channels
      else:
          out_channels = self._num_output_channels
      dtype = self.dtype
      num_weight_matrices = self._num_weight_matrices
      initializer = self._initializer
  
      self.var_u = self.add_weight(
          shape=(in_channels, num_weight_matrices),
          dtype=dtype,
          initializer=initializer,
          name="u",
      )
      if self._translation_invariant:
          self.var_v = -self.var_u
      else:
          self.var_v = self.add_weight(
              shape=(in_channels, num_weight_matrices),
              dtype=dtype,
              initializer=initializer,
              name="v",
          )
      self.var_c = self.add_weight(
          shape=(num_weight_matrices,),
          dtype=dtype,
          initializer=initializer,
          name="c",
      )
      self.var_w = self.add_weight(
          shape=(num_weight_matrices, in_channels, out_channels),
          dtype=dtype,
          initializer=initializer,
          name="w",
          trainable=True,
      )
      self.var_b = self.add_weight(
          shape=(out_channels,),
          dtype=dtype,
          initializer=initializer,
          name="b",
          trainable=True,
      )
  
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 FeatureSteeredConvolutionKerasLayer obj's underlying member method code with example usage: obj.build(input_shape) without return types