class_docstr: Coding `input - round(mean)` using `mean - round(mean)`
code: def __init__(
      self,
      num_scales=256,
      min_scale=0.01,
      num_means=100,
      tail_mass: float = (2 ** (-8)),
      round_idx: bool = True,
  ) -> None:
      super().__init__()
      self._scaler = Scaler(num_bins=num_scales, scales_min=min_scale)
      self._num_means = num_means
      self._round_idx = round_idx
      self._num_scales = num_scales
      self._min_scale = min_scale
      self._one_mean_flag = num_means == 1
  
      self._entropy_model = ContinuousIndexedGaussianConditional(
          index_ranges=(num_means, num_scales),
          tail_mass=tail_mass,
          scale_bound=min_scale,
          scaler=self._scaler,
          entropy_coder_precision=16,  # default
      )
  
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 1 to create a new GsnConditionalLocScaleShift object from inherited base classes: nn with example: obj = GsnConditionalLocScaleShift(num_scales, min_scale, num_means, tail_mass, round_idx)