code: def __init__(
      self,
      cmn_op,
      device,
      batch_size,
      layout,
      iterator,
      num_threads=1,
      device_id=0,
      num_gpus=1,
      dtype=types.FLOAT,
      output_layout="FHWC",
      mirror_probability=0.0,
      mean=[0.0, 0.0, 0.0],
      std=[1.0, 1.0, 1.0],
      scale=None,
      shift=None,
      pad_output=False,
      crop_seq_as_depth=False,
      crop_d=8,
      crop_h=16,
      crop_w=32,
      crop_pos_x=0.3,
      crop_pos_y=0.2,
      crop_pos_z=0.1,
      out_of_bounds_policy=None,
      fill_values=None,
      extra_outputs=False,
  ):
      super().__init__(batch_size, num_threads, device_id)
      self.device = device
      self.layout = layout
      self.iterator = iterator
      self.inputs = ops.ExternalSource()
      self.extra_outputs = extra_outputs
  
      if layout.count("D") <= 0 and not (
          crop_seq_as_depth and layout.count("F") > 0
      ):
          crop_d = None
      self.cmn = cmn_op(
          device=self.device,
          dtype=dtype,
          output_layout=output_layout,
          crop_d=crop_d,
          crop_h=crop_h,
          crop_w=crop_w,
          crop_pos_x=crop_pos_x,
          crop_pos_y=crop_pos_y,
          crop_pos_z=crop_pos_z,
          mean=mean,
          std=std,
          pad_output=pad_output,
          scale=scale,
          shift=shift,
          out_of_bounds_policy=out_of_bounds_policy,
          fill_values=fill_values,
      )
      self.coin = ops.random.CoinFlip(
          probability=mirror_probability, seed=7865
      )
  
imports: import numpy
  import nvidia.dali
  import nvidia.dali.fn
  import nvidia.dali.ops
  import nvidia.dali.types
  import os
  from functools import partial
  from nvidia.dali import pipeline_def
  from nvidia.dali.pipeline import Pipeline
  from nose2.tools import params
  from nose_utils import assert_raises
  from nose_utils import raises
  from test_slice import check_slice_output, abs_slice_start_and_end
  from test_utils import RandomDataIterator
  from test_utils import as_array
  from test_utils import compare_pipelines, dali_type_to_np
  from test_utils import get_dali_extra_path
  import itertools
label_desc: Use image node_id 1 to create a new CMNRandomDataPipeline object from inherited base classes: Pipeline with example: obj = CMNRandomDataPipeline(cmn_op, device, batch_size, layout, iterator, num_threads, device_id, num_gpus, dtype, output_layout, mirror_probability, mean, std, scale, shift, pad_output, crop_seq_as_depth, crop_d, crop_h, crop_w, crop_pos_x, crop_pos_y, crop_pos_z, out_of_bounds_policy, fill_values, extra_outputs)