code: def end_of_scheduler(self):
      data = DynamicPoolingBatcherTest._get_dataset(dataset_size=300)
  
      batch_scheduler_config = ExponentialBatcherSchedulerConfig(
          start_batch_size=32,
          end_batch_size=256,
          epoch_period=2,
          step_size=4,
          gamma=2,
      )
  
      batcher_config = ExponentialDynamicPoolingBatcher.Config(
          train_batch_size=1,
          eval_batch_size=1,
          test_batch_size=1,
          pool_num_batches=1,
          num_shuffled_pools=1,
          scheduler_config=batch_scheduler_config,
      )
  
      batcher = ExponentialDynamicPoolingBatcher.from_config(
          batcher_config
      )
  
      # epoch 1
      batches = [item for item in batcher.batchify(data)]
      self.assertEqual(len(batches[0].raw_data), 32)
  
      # pass N epochs
      no_op_epochs = 4
      _ = [
          [item for item in batcher.batchify(data)]
          for _ in range(no_op_epochs)
      ]
  
      # after period is passed, batch size should be max batch size
      batches = [item for item in batcher.batchify(data)]
      self.assertEqual(len(batches[0].raw_data), 256)
  
file_path: pytext/pytext/data/test/dynamic_pooling_batcher_test.py
imports: import unittest
  from typing import List
  from pytext.data.dynamic_pooling_batcher import BatcherSchedulerConfig, DynamicPoolingBatcher, ExponentialBatcherSchedulerConfig, ExponentialDynamicPoolingBatcher, LinearDynamicPoolingBatcher
  from pytext.data.sources import RawExample
  from pytext.utils.test import import_tests_module
label_desc: Use image node_id 5 for calling the DynamicPoolingBatcherTest obj's underlying member method code with example usage: obj.end_of_scheduler() without return types