class_docstr: Coding `input - round(mean)` using `mean - round(mean)`
docstr: Compress inputs, return its quantized version and number of bits
  
  Args:
      inputs: input tensor (floats)
      scales: tensor (floats) of scales
      means: tensor (floats) of means
      training: whether we are in train mode. Defaults to None.
  
  Returns:
      Tuple of tensors: quantized inputs and bits
docstr_tok: ["Compress","inputs",",","return","its","quantized","version","and","number","of","bits","Args",":","inputs",":","input","tensor","(","floats",")","scales",":","tensor","(","floats",")","of","scales","means",":","tensor","(","floats",")","of","means","training",":","whether","we","are","in","train","mode",".","Defaults","to","None",".","Returns",":","Tuple","of","tensors",":","quantized","inputs","and","bits"]
code: def forward(
      self,
      inputs: Tensor,
      scales: Tensor,
      means: Tensor,
      training: Optional[bool] = None,
  ) -> Tuple[Tensor, Tensor]:
      """
      Compress inputs, return its quantized version and number of bits
  
      Args:
          inputs: input tensor (floats)
          scales: tensor (floats) of scales
          means: tensor (floats) of means
          training: whether we are in train mode. Defaults to None.
  
      Returns:
          Tuple of tensors: quantized inputs and bits
      """
      training = self.training if training is None else training
  
      # flaot means and scales to indexes where mean is (mean - round(mean))
      indexes = self._get_indexes(means, scales, training=training)
  
      round_mean = self._round_st(means)
      inputs = inputs - round_mean
  
      quantized_inputs, bits = self._entropy_model(
          inputs, indexes=indexes, training=training
      )  # noised input to get approximate rate
      if training:
          quantized_inputs = self._round_st(inputs)  # Round + STE
  
      return quantized_inputs + round_mean, bits
  
imports: import math
  from typing import Any, List, Optional, Tuple
  import scipy.stats
  import torch
  import torch.nn
  from compressai.entropy_models import EntropyModel
  from compressai.ops import LowerBound
  from torch import Tensor
label_desc: Use image node_id 5 for calling the GsnConditionalLocScaleShift obj's underlying member method code with example usage: obj.forward(inputs, scales, means, training) and returns: unknown,  bits