docstr: Variational Autoencoding Gaussian Mixture Model.
  
  Parameters
  ----------
  encoder_net
      Layers for the encoder wrapped in a tf.keras.Sequential class.
  decoder_net
      Layers for the decoder wrapped in a tf.keras.Sequential class.
  gmm_density_net
      Layers for the GMM network wrapped in a tf.keras.Sequential class.
  n_gmm
      Number of components in GMM.
  latent_dim
      Dimensionality of the latent space.
  recon_features
      Function to extract features from the reconstructed instance by the decoder.
  beta
      Beta parameter for KL-divergence loss term.
  name
      Name of the VAEGMM model.
docstr_tok: ["Variational","Autoencoding","Gaussian","Mixture","Model",".","Parameters","--","--","--","--","--","encoder_net","Layers","for","the","encoder","wrapped","in","a","tf.keras.Sequential","class",".","decoder_net","Layers","for","the","decoder","wrapped","in","a","tf.keras.Sequential","class",".","gmm_density_net","Layers","for","the","GMM","network","wrapped","in","a","tf.keras.Sequential","class",".","n_gmm","Number","of","components","in","GMM",".","latent_dim","Dimensionality","of","the","latent","space",".","recon_features","Function","to","extract","features","from","the","reconstructed","instance","by","the","decoder",".","beta","Beta","parameter","for","KL-divergence","loss","term",".","name","Name","of","the","VAEGMM","model","."]
code: def __init__(
      self,
      encoder_net: tf.keras.Model,
      decoder_net: tf.keras.Model,
      gmm_density_net: tf.keras.Model,
      n_gmm: int,
      latent_dim: int,
      recon_features: Callable = eucl_cosim_features,
      beta: float = 1.0,
      name: str = "vaegmm",
  ) -> None:
      """
      Variational Autoencoding Gaussian Mixture Model.
  
      Parameters
      ----------
      encoder_net
          Layers for the encoder wrapped in a tf.keras.Sequential class.
      decoder_net
          Layers for the decoder wrapped in a tf.keras.Sequential class.
      gmm_density_net
          Layers for the GMM network wrapped in a tf.keras.Sequential class.
      n_gmm
          Number of components in GMM.
      latent_dim
          Dimensionality of the latent space.
      recon_features
          Function to extract features from the reconstructed instance by the decoder.
      beta
          Beta parameter for KL-divergence loss term.
      name
          Name of the VAEGMM model.
      """
      super(VAEGMM, self).__init__(name=name)
      self.encoder = EncoderVAE(encoder_net, latent_dim)
      self.decoder = decoder_net
      self.gmm_density = gmm_density_net
      self.n_gmm = n_gmm
      self.latent_dim = latent_dim
      self.recon_features = recon_features
      self.beta = beta
  
imports: import numpy
  import tensorflow
  from tensorflow.keras.layers import Bidirectional, Concatenate, Dense, Flatten, Layer, LSTM
  from typing import Callable, List, Tuple
  from alibi_detect.utils.tensorflow.distance import relative_euclidean_distance
label_desc: Use image node_id 1 to create a new VAEGMM object from inherited base classes: tf.keras with example: obj = VAEGMM(encoder_net, decoder_net, gmm_density_net, n_gmm, latent_dim, recon_features, beta, name)