class_docstr: Multi-layer BNN that also has access to periodic features.
class_docstr_tok: ["Multi-layer","BNN","that","also","has","access","to","periodic","features","."]
code: def setup(self):
      if not hasattr(self, "kernel_init"):
          self.kernel_init = initializers.lecun_normal()
      if not hasattr(self, "bias_init"):
          self.bias_init = initializers.zeros_init()
      self.input_warping = make_periodic_input_warping(
          self.period, self.periodic_index, include_original=True
      )
      self.dense = [
          nn.Dense(
              self.width,
              kernel_init=self.kernel_init,
              bias_init=self.bias_init,
          )
          for _ in range(self.num_layers)
      ]
      super().setup()
  
imports: from flax import linen
  from flax.linen import initializers
  import jax
  import jax.numpy
  from tensorflow_probability.python.experimental.autobnn import bnn
  from tensorflow_probability.substrates.jax.distributions import lognormal
  from tensorflow_probability.substrates.jax.distributions import normal
  from tensorflow_probability.substrates.jax.distributions import student_t
  from tensorflow_probability.substrates.jax.distributions import uniform
label_desc: Use image node_id 1 for calling the MultiLayerBNN obj's underlying member method code with example usage: obj.setup() without return types