class_docstr: Variational reparameterization linear layer.
code: def __call__(self, x, **kwargs):
      x = tf.convert_to_tensor(x, dtype=self.dtype, name="x")
      self._posterior_value = self.posterior_value_fn(
          self.posterior, seed=self._seed()
      )  # pylint: disable=not-callable
      kernel, bias = self.unpack_weights_fn(
          self.posterior_value
      )  # pylint: disable=not-callable
      y = x
      if kernel is not None:
          y = self._apply_kernel_fn(y, kernel)
      if bias is not None:
          y = y + bias
      if self.activation_fn is not None:
          y = self.activation_fn(y)  # pylint: disable=not-callable
      return y
  
imports: import collections
  import tensorflow.compat.v2
  from tensorflow_probability.python import random
  from tensorflow_probability.python.distributions import distribution
  from tensorflow_probability.python.distributions import independent
  from tensorflow_probability.python.distributions import mvn_diag
  from tensorflow_probability.python.distributions import normal
  from tensorflow_probability.python.experimental.nn import layers
  from tensorflow_probability.python.internal import prefer_static
  from tensorflow_probability.python.util.seed_stream import SeedStream
label_desc: Use image node_id 3 for calling the VariationalReparameterizationKernelBiasLayer obj's underlying member method code with example usage: obj.__call__(x) and returns: y