class_docstr: VQ-VAE Projector model
  
  This is intended to be used as a continuous-to-discrete mapping for
  adversarial optimization as described in the following paper:
  
  Improving Statistical Fidelity for Neural Image Compression with Implicit
  Local Likelihood Models
  MJ Muckley, A El-Nouby, K Ullrich, H Jégou, J Verbeek
  
  Args:
      vq_model: A VQ-VAE model with XCiT attention.
code: def forward(self, image: Tensor) -> Tensor:
      output = self.bottleneck_op(
          VqVaeAutoencoderOutput(latent=self.encoder(image))
      ).indices
      assert output is not None
  
      return output
  
file_path: NeuralCompression/neuralcompression/models/_vqvae_projector.py
imports: import torch.nn
  from torch import Tensor
  from neuralcompression import VqVaeAutoencoderOutput
  from ._vqvae_xcit_autoencoder import VqVaeXCiTAutoencoder
label_desc: Use image node_id 3 for calling the VqVaeProjector obj's underlying member method code with example usage: obj.forward(image) and returns: output