class_docstr: Combination of transforms for validation.
  Follow the style of https://github.com/facebookresearch/SlowFast/
      (1) short side keep aspect ratio resize
      (2) center crop
      (3) to tensor
      (4) normalize
class_docstr_tok: ["Combination","of","transforms","for","validation",".","Follow","the","style","of","https",":","\/\/github.com\/facebookresearch\/SlowFast\/","(","1",")","short","side","keep","aspect","ratio","resize","(","2",")","center","crop","(","3",")","to","tensor","(","4",")","normalize"]
code: def forward(self, clips):
      h, w, _ = clips[0].shape
  
      # step 1: short side keep aspect ratio resize
      new_w = self.short_side
      new_h = self.short_side
      if w < h:
          new_h = int(math.floor((float(h) / w) * self.short_side))
      else:
          new_w = int(math.floor((float(w) / h) * self.short_side))
  
      # step 2: center crop
      h_off = int(math.ceil((new_h - self.height) / 2))
      w_off = int(math.ceil((new_w - self.width) / 2))
  
      new_clips = []
      for cur_img in clips:
          scale_img = self.cv2.resize(cur_img, (new_w, new_h))
          crop_img = scale_img[
              h_off : h_off + self.height, w_off : w_off + self.width, :
          ]
          tensor_img = (
              np.transpose(crop_img, axes=(2, 0, 1))
              / self.max_intensity
          )
          new_clips.append((tensor_img - self.mean) / self.std)
      return new_clips
  
imports: from __future__ import division
  import random
  import math
  import numbers
  import numpy
  from mxnet.gluon import Block
label_desc: Use image node_id 2 for calling the VideoGroupValTransformV2 obj's underlying member method code with example usage: obj.forward(clips) and returns: new_clips