class_docstr: Vector quantization bottleneck.
  
  This class quantizes its input vectors based on nearest Euclidean distance.
  It also returns an estimate of the coding cost after the quantization
  operation.
  
  Args:
      codebook_size: The size of the codebook.
      vector_length: The length for each input vector.
      init_distribution: The initialization distribution for the codebook.
code: def __init__(
      self,
      codebook_size: int,
      vector_length: int,
      init_distribution: str = "uniform",
  ):
      self.vector_length = vector_length
      self.init_distribution = init_distribution
  
      super().__init__(
          codebook_sizes=[codebook_size],
          hidden_dims=[vector_length],
          init_distribution=init_distribution,
      )
  
file_path: NeuralCompression/neuralcompression/layers/_vq_bottleneck.py
imports: import math
  from dataclasses import replace
  import torch
  from neuralcompression import VqVaeAutoencoderOutput
  from ._q_bottleneck import QBottleneck
label_desc: Use image node_id 1 to create a new VQBottleneck object from inherited base classes: QBottleneck with example: obj = VQBottleneck(codebook_size, vector_length, init_distribution)