class_docstr: Random horizontal and vertical shifts 
code: def get_transform(self, img):
      max_dx = self.horiz_frac * img.shape[1]
      max_dy = self.vert_frac * img.shape[0]
      dx = np.round(self._rand_range(-max_dx, max_dx))
      dy = np.round(self._rand_range(-max_dy, max_dy))
  
      mat = np.array([[1, 0, dx], [0, 1, dy]], dtype="float32")
      return WarpAffineTransform(
          mat,
          img.shape[1::-1],
          borderMode=self.border,
          borderValue=self.border_value,
      )
  
imports: import math
  import numpy
  import cv2
  from .base import ImageAugmentor
  from .transform import WarpAffineTransform, CropTransform, TransformList
label_desc: Use image node_id 2 for calling the Shift obj's underlying member method code with example usage: obj.get_transform(img) and returns: WarpAffineTransform