class_docstr: DDP version of  VariableBatchSampler
  
  Args:
      opts: command line argument
      n_data_samples: Number of samples in the dataset
      is_training: Training or validation mode. Default: False
class_docstr_tok: ["DDP","version","of","VariableBatchSampler","Args",":","opts",":","command","line","argument","n_data_samples",":","Number","of","samples","in","the","dataset","is_training",":","Training","or","validation","mode",".","Default",":","False"]
docstr: Update the scales in variable batch sampler at specified epoch intervals during training.
docstr_tok: ["Update","the","scales","in","variable","batch","sampler","at","specified","epoch","intervals","during","training","."]
code: def update_scales(
      self, epoch: int, is_master_node=False, *args, **kwargs
  ) -> None:
      """Update the scales in variable batch sampler at specified epoch intervals during training."""
      if (epoch in self.scale_ep_intervals) and self.scale_inc:
          self.min_crop_size_w += int(
              self.min_crop_size_w * self.min_scale_inc_factor
          )
          self.max_crop_size_w += int(
              self.max_crop_size_w * self.max_scale_inc_factor
          )
  
          self.min_crop_size_h += int(
              self.min_crop_size_h * self.min_scale_inc_factor
          )
          self.max_crop_size_h += int(
              self.max_crop_size_h * self.max_scale_inc_factor
          )
  
          self.img_batch_tuples = image_batch_pairs(
              crop_size_h=self.crop_size_h,
              crop_size_w=self.crop_size_w,
              batch_size_gpu0=self.batch_size_gpu0,
              n_gpus=self.num_replicas,
              max_scales=self.max_img_scales,
              check_scale_div_factor=self.check_scale_div_factor,
              min_crop_size_w=self.min_crop_size_w,
              max_crop_size_w=self.max_crop_size_w,
              min_crop_size_h=self.min_crop_size_h,
              max_crop_size_h=self.max_crop_size_h,
          )
          if is_master_node:
              logger.log(
                  "Scales updated in {}".format(self.__class__.__name__)
              )
              logger.log("New scales: {}".format(self.img_batch_tuples))
  
imports: import argparse
  import random
  from typing import Iterator, Tuple
  from common import DEFAULT_IMAGE_HEIGHT, DEFAULT_IMAGE_WIDTH
  from data.sampler import SAMPLER_REGISTRY
  from data.sampler.base_sampler import BaseSampler, BaseSamplerDDP
  from data.sampler.utils import image_batch_pairs
  from utils import logger
label_desc: Use image node_id 3 for calling the VariableBatchSamplerDDP obj's underlying member method code with example usage: obj.update_scales(epoch, is_master_node) without return types