class_docstr: This class stores the quantized linear block params. It is adapted from torchvision.models.regnet:
      https://github.com/pytorch/vision/blob/c06d52b1c5f6aee36802661c3ebc6347b97cc59e/torchvision/models/regnet.py#L203
  
  Args:
      depth: The total number of XBlocks in the network
      w_0: Initial width
      w_a: Width slope
      w_m: Width slope in the log space
      groups: The number of groups to use in the XBlock. Referred to
      se_ratio: The squeeze-excitation ratio. The number of channels in the SE module will be the
          input channels scaled by this ratio.
      bottleneck_multiplier: The number of output channels in the intermediate conv layers in bottleneck/Xblock
          block will be scaled by this value.
      quant: Block widths will be divisible by this value
      stride: The stride of the 3x3 conv of the XBlocks
docstr: Scales widths by bottleneck multipliers and adjusts them to be compatible with
  the specified groups.
code: def _make_widths_compatible(
      self,
      stage_widths: List[int],
      stage_groups: List[int],
      bottleneck_multipliers: List[float],
  ) -> Tuple[List[int], List[int]]:
      """
      Scales widths by bottleneck multipliers and adjusts them to be compatible with
      the specified groups.
      """
      # Scale widths according to bottleneck multipliers
      widths = [
          int(width * multiplier)
          for width, multiplier in zip(
              stage_widths, bottleneck_multipliers
          )
      ]
      group_widths_min = [
          min(groups, width)
          for groups, width in zip(stage_groups, widths)
      ]
  
      # Ensure the widths are divisible by groups
      bottleneck_widths = [
          make_divisible(width, groups)
          for width, groups in zip(widths, group_widths_min)
      ]
  
      # Undo scaling
      stage_widths = [
          int(width / multiplier)
          for width, multiplier in zip(
              bottleneck_widths, bottleneck_multipliers
          )
      ]
  
      return stage_widths, group_widths_min
  
file_path: ml-cvnets/cvnets/models/classification/config/regnet.py
imports: import argparse
  from dataclasses import dataclass
  from typing import Dict, List, Tuple, Union
  import numpy
  from utils import logger
  from utils.math_utils import make_divisible
label_desc: Use image node_id 2 for calling the BlockParamsConfig obj's underlying member method code with example usage: obj._make_widths_compatible(stage_widths, stage_groups, bottleneck_multipliers) and returns: stage_widths,  group_widths_min