code: def __iter__(self):
      for flow_path in self.flows:
          input_path = flow_path.replace(
              self.path_prefix, os.path.join(self.data_path, "clean")
          )
          frame_id = int(input_path[-8:-4])
          input_a_path = "%s%04i.png" % (input_path[:-8], frame_id)
          input_b_path = "%s%04i.png" % (input_path[:-8], frame_id + 1)
  
          input_a = cv2.imread(input_a_path)
          input_b = cv2.imread(input_b_path)
          flow = Flow.read(flow_path)
  
          # most implementation just crop the center
          # which seems to be accepted practise
          h, w = input_a.shape[:2]
          newh = (h // 64) * 64
          neww = (w // 64) * 64
          aug = imgaug.CenterCrop((newh, neww))
          input_a = aug.augment(input_a)
          input_b = aug.augment(input_b)
          flow = aug.augment(flow)
          yield [input_a, input_b, flow]
  
file_path: tensorpack/examples/OpticalFlow/flownet2.py
imports: import argparse
  import glob
  import os
  import cv2
  from tensorpack import *
  from tensorpack.utils import viz
  import flownet_models
  from helper import Flow
label_desc: Use image node_id 3 for calling the SintelData obj's underlying member method code with example usage: obj.__iter__() without return types