code: def __init__(
      self,
      args,
      train_ds=None,
      eval_ds=None,
      predict_ds=None,
      logger=None,
  ):
      self.args = args
      self.train_ds = train_ds
      self.eval_ds = eval_ds
      self.predict_ds = predict_ds
      self.logger = logger
  
      (
          self.schema,
          eval_schema,
          self.targets,
      ) = self.filter_schemas()
      self.set_dataloaders(self.schema, eval_schema)
  
imports: import json
  import logging
  import os
  from datetime import datetime
  import merlin.models.tf
  import numpy
  import tensorflow
  from merlin.io.dataset import Dataset
  from merlin.models.tf.logging.callbacks import ExamplesPerSecondCallback, WandbLogger
  from merlin.models.tf.transforms.negative_sampling import InBatchNegatives
  from merlin.schema.tags import Tags
  from .args_parsing import Task, parse_arguments
  from .mtl import get_mtl_loss_weights, get_mtl_prediction_tasks
  from .ranking_models import get_model
label_desc: Use image node_id 1 to create a new RankingTrainEvalRunner object  with example: obj = RankingTrainEvalRunner(args, train_ds, eval_ds, predict_ds, logger)