code: def get_windows(window_sizes):
      axes = len(window_sizes)
      d_windows = {window_sizes[i][i]: None for i in range(axes)}
      s_windows = {
          window_sizes[i][j]: None
          for i in range(axes)
          for j in range(axes)
          if i != j
      }
      for window_size in d_windows:
          d, s = cv2.getDerivKernels(2, 0, ksize=window_size)
          d_windows[window_size] = d.reshape(-1)
          if (
              window_size > 1
              and window_size in s_windows
              and s_windows[window_size] is None
          ):
              s_windows[window_size] = s.reshape(-1)
      for window_size in s_windows:
          if s_windows[window_size] is None:
              if window_size == 1:
                  s_windows[window_size] = np.array(
                      [1.0], dtype=np.float32
                  )
              else:
                  _, s = cv2.getDerivKernels(2, 0, ksize=window_size)
                  s_windows[window_size] = s.reshape(-1)
      return [
          [
              (d_windows if i == j else s_windows)[window_sizes[i][j]]
              for j in range(axes)
          ]
          for i in range(axes)
      ]
  
imports: from nvidia.dali.pipeline import pipeline_def
  import nvidia.dali.types
  import nvidia.dali.fn
  import numpy
  import cv2
  from scipy.ndimage import convolve1d, filters
  import os
  from nose_utils import assert_raises
  from nose.plugins.attrib import attr
  from sequences_test_utils import video_suite_helper, ArgCb
  from test_utils import get_dali_extra_path, check_batch, RandomlyShapedDataIterator
label_desc: Use image node_id 15 for calling a global function with example usage: get_windows(window_sizes) and returns: unknown