code: def _create_latent_variables(self):
          
  
          # Input layer
          for unit in range(self.units):
              self.latent_variables.add_z('Constant | Layer ' + str(1) + ' | Unit ' + str(unit+1), fam.Cauchy(0,1,transform=None), fam.Normal(0, 3))
  
              for ar_term in range(self.ar):
                  self.latent_variables.add_z('AR' + str(ar_term+1) + ' | Layer ' + str(1) + ' | Unit ' + str(unit+1), fam.Cauchy(0,1,transform=None), fam.Normal(0, 3))
  
              for z in range(len(self.X_names)):
                  self.latent_variables.add_z('Weight ' + self.X_names[z], fam.Cauchy(0, 1, transform=None), fam.Normal(0, 3))
  
          # Hidden layers
          for layer in range(1, self.layers):
              for unit in range(self.units):
                  for weight in range(self.units):
                      self.latent_variables.add_z('Weight ' + str(weight+1) + ' | Layer ' + str(layer+1) + ' | Unit ' + str(unit+1), fam.Cauchy(0,1,transform=None), fam.Normal(0, 3))
  
          # Output layer
          for weight in range(self.units):
              self.latent_variables.add_z('Output Weight ' + str(weight+1), fam.Cauchy(0,1,transform=None), fam.Normal(0, 3))
docs: Creates the model's latent variables
  
          Returns
          ----------
          None (changes model attributes)