class_docstr: Exponential Dynamic Batch Scheduler: scales up batch size by a factor of
  gamma
class_docstr_tok: ["Exponential","Dynamic","Batch","Scheduler",":","scales","up","batch","size","by","a","factor","of","gamma"]
code: def compute_dynamic_batch_size(
      self,
      curr_epoch: int,
      scheduler_config: ExponentialBatcherSchedulerConfig,
      curr_steps: int,
  ) -> int:
      if curr_steps > self.get_max_steps():
          return scheduler_config.end_batch_size
      curr_est: float = scheduler_config.start_batch_size * math.pow(
          scheduler_config.gamma, curr_steps
      )
      return min(math.ceil(curr_est), scheduler_config.end_batch_size)
  
imports: import math
  from typing import Iterable
  from pytext.common.constants import Stage
  from pytext.config.module_config import ModuleConfig
  from .data import PoolingBatcher
  from .sources import RawExample
label_desc: Use image node_id 4 for calling the ExponentialDynamicPoolingBatcher obj's underlying member method code with example usage: obj.compute_dynamic_batch_size(curr_epoch, scheduler_config, curr_steps) and returns: min, scheduler_config