code: def task(
      hyper,
      name,
      train,
      val,
      n_cls,
      steps,
      warmup,
      h_res=256,
      l_res=224,
      ch=3,
  ):
      """Vision task with val and test splits."""
      # pylint: disable=line-too-long
      common = "|value_range(-1, 1)"
      common += f'|onehot({n_cls}, key="label", key_result="labels")'
      common += '|keep("image", "labels")'
      pp_train = (
          f"decode(channels={ch})|inception_crop({l_res})|flip_lr"
          + common
      )
      pp_eval = f"decode(channels={ch})|resize({l_res})" + common
      pp_eval_resize_crop = (
          f"decode(channels={ch})|resize({h_res})|central_crop({l_res})"
          + common
      )
      pp_eval_resmall_crop = (
          f"decode(channels={ch})|resize_small({h_res})|central_crop({l_res})"
          + common
      )
      # pylint: enable=line-too-long
  
      return fixed(
          hyper,
          **{
              "dataset_configs.dataset": name,
              "dataset_configs.train_split": train,
              "dataset_configs.pp_train": pp_train,
              "dataset_configs.val_split": (
                  ("val", name, val, pp_eval),
                  ("y/val_resize", name, val, pp_eval),
                  ("y/val_resize_crop", name, val, pp_eval_resize_crop),
                  (
                      "y/val_resmall_crop",
                      name,
                      val,
                      pp_eval_resmall_crop,
                  ),
                  ("test", name, "test", pp_eval),
                  ("y/test_resize", name, "test", pp_eval),
                  (
                      "y/test_resize_crop",
                      name,
                      "test",
                      pp_eval_resize_crop,
                  ),
                  (
                      "y/test_resmall_crop",
                      name,
                      "test",
                      pp_eval_resmall_crop,
                  ),
              ),
              "dataset_configs.num_classes": n_cls,
              "schedule.all.lr_configs.warmup_steps": warmup,
              "schedule.all.lr_configs.total_steps": steps,
              "schedule.all.lr_configs.steps_per_cycle": steps,
              "num_training_steps": steps,
          },
      )
  
imports: import ml_collections
label_desc: Use image node_id 3 for calling a global function with example usage: task(hyper, name, train, val, n_cls, steps, warmup, h_res, l_res, ch) and returns: fixed