code: def __init__(
      self,
      device,
      batch_size,
      layout,
      iterator,
      num_threads=1,
      device_id=0,
      tested_operator=None,
  ):
      super(MultichannelSynthPipeline, self).__init__(
          batch_size, num_threads, device_id
      )
      self.device = device
      self.layout = layout
      self.iterator = iterator
      self.inputs = ops.ExternalSource()
      self.tested_operator = tested_operator
      if self.tested_operator == "resize" or not self.tested_operator:
          self.resize = ops.Resize(
              device=self.device,
              resize_y=900,
              resize_x=300,
              min_filter=types.DALIInterpType.INTERP_LINEAR,
              antialias=False,
          )
      if self.tested_operator == "crop" or not self.tested_operator:
          self.crop = ops.Crop(
              device=self.device,
              crop=(220, 224),
              crop_pos_x=0.3,
              crop_pos_y=0.2,
          )
      if (
          self.tested_operator == "transpose"
          or not self.tested_operator
      ):
          self.transpose = ops.Transpose(
              device=self.device, perm=(1, 0, 2), transpose_layout=False
          )
      if (
          self.tested_operator == "normalize"
          or not self.tested_operator
      ):
          self.cmn = ops.CropMirrorNormalize(
              device=self.device,
              std=255.0,
              mean=0.0,
              output_layout="HWC",
              dtype=types.FLOAT,
          )
  
imports: from nvidia.dali.pipeline import Pipeline
  import nvidia.dali.ops
  import nvidia.dali.types
  import numpy
  import os
  from test_utils import compare_pipelines
  from test_utils import RandomDataIterator
  import cv2
  import glob
label_desc: Use image node_id 1 to create a new MultichannelSynthPipeline object from inherited base classes: Pipeline with example: obj = MultichannelSynthPipeline(device, batch_size, layout, iterator, num_threads, device_id, tested_operator)