code: def __init__(
      self,
      batch_size,
      output_type,
      input_type,
      use_input,
      num_threads=3,
      device_id=0,
      num_gpus=1,
      inv_map=False,
  ):
      super(CVPipeline, self).__init__(
          batch_size,
          num_threads,
          device_id,
          seed=7865,
          exec_async=False,
          exec_pipelined=False,
      )
      self.use_input = use_input
      self.name = "cv"
      self.input = ops.readers.Caffe(
          path=caffe_db_folder, shard_id=device_id, num_shards=num_gpus
      )
      self.decode = ops.decoders.Image(
          device="cpu", output_type=types.RGB
      )
      if self.use_input:
          self.transform_source = ops.ExternalSource(
              lambda: gen_transforms(self.max_batch_size, 10)
          )
          self.warp = ops.PythonFunction(
              function=CVWarp(output_type, input_type, inv_map=inv_map),
              output_layouts="HWC",
          )
      else:
          self.warp = ops.PythonFunction(
              function=CVWarp(
                  output_type,
                  input_type,
                  [[0.1, 0.9, 10], [0.8, -0.2, -20]],
                  inv_map,
              ),
              output_layouts="HWC",
          )
      self.iter = 0
  
imports: import nose_utils
  from nvidia.dali.pipeline import Pipeline
  import nvidia.dali.ops
  import nvidia.dali.fn
  import nvidia.dali.types
  import numpy
  import math
  import os
  import cv2
  from sequences_test_utils import video_suite_helper, SampleDesc, ArgCb
  from test_utils import compare_pipelines
  import random
label_desc: Use image node_id 1 to create a new CVPipeline object from inherited base classes: Pipeline with example: obj = CVPipeline(batch_size, output_type, input_type, use_input, num_threads, device_id, num_gpus, inv_map)