code: def _create_trainer_with_scheduler(
      self, scheduler, steps_per_epoch, max_epoch, starting_epoch=1
  ):
      trainer = NoOpTrainer()
      trainer.setup_graph(
          [tf.TensorSpec([1], name="input")],
          DummyConstantInput([[1]]),
          lambda input: tf.reduce_sum(input)
          + tf.get_variable(name="test_var", shape=[]),
          lambda: tf.train.GradientDescentOptimizer(0.1),
      )
      self._param_obj.trainer = trainer
      trainer.train_with_defaults(
          callbacks=[scheduler],
          extra_callbacks=[],
          monitors=[],
          steps_per_epoch=steps_per_epoch,
          max_epoch=max_epoch,
          starting_epoch=starting_epoch,
      )
      return self._param_obj.param_history
  
imports: import unittest
  from ..compat import tfv1
  from ..utils import logger
  from ..train.trainers import NoOpTrainer
  from ..input_source import DummyConstantInput
  from .param import ScheduledHyperParamSetter, ObjAttrParam
label_desc: Use image node_id 3 for calling the ScheduledHyperParamSetterTest obj's underlying member method code with example usage: obj._create_trainer_with_scheduler(scheduler, steps_per_epoch, max_epoch, starting_epoch) and returns: self