code: def _build_task(self, num_epochs, skip_param_schedulers=False):
      config = self._get_config(skip_param_schedulers)
      config["optimizer"]["num_epochs"] = num_epochs
      task = (
          ClassificationTask()
          .set_num_epochs(num_epochs)
          .set_loss(build_loss(config["loss"]))
          .set_model(build_model(config["model"]))
          .set_optimizer(build_optimizer(config["optimizer"]))
          .set_optimizer_schedulers(
              build_optimizer_schedulers(config["optimizer"])
          )
      )
      for phase_type in ["train", "test"]:
          dataset = build_dataset(config["dataset"][phase_type])
          task.set_dataset(dataset, phase_type)
  
      self.assertTrue(task is not None)
      return task
  
imports: import unittest
  from unittest.mock import Mock
  from classy_vision.dataset import build_dataset
  from classy_vision.hooks import ClassyHook
  from classy_vision.losses import build_loss
  from classy_vision.models import build_model
  from classy_vision.optim import build_optimizer, build_optimizer_schedulers
  from classy_vision.optim.param_scheduler import ClassyParamScheduler, register_param_scheduler, UpdateInterval
  from classy_vision.tasks import ClassificationTask, ClassyTask
  from classy_vision.trainer import LocalTrainer
label_desc: Use image node_id 3 for calling the TestParamSchedulerIntegration obj's underlying member method code with example usage: obj._build_task(num_epochs, skip_param_schedulers) and returns: task