class_docstr: images - leave them in original dimension (unpadded), but do normalize them.
          Should be CPU tensors of shape B*T*3*H*W
  
  mem_profile - How extravagant I can use the GPU memory.
              Usually more memory -> faster speed but I have not drawn the exact relation
              0 - Use the most memory
              1 - Intermediate, larger buffer
              2 - Intermediate, small buffer
              3 - Use the minimal amount of GPU memory
              Note that *none* of the above options will affect the accuracy
              This is a space-time tradeoff, not a space-performance one
  
  mem_freq - Period at which new memory are put in the bank
              Higher number -> less memory usage
              Unlike the last option, this *is* a space-performance tradeoff
class_docstr_tok: ["images","-","leave","them","in","original","dimension","(","unpadded",")",",","but","do","normalize","them",".","Should","be","CPU","tensors","of","shape","B","*","T","*","3","*","H","*","W","mem_profile","-","How","extravagant","I","can","use","the","GPU","memory",".","Usually","more","memory","-",">","faster","speed","but","I","have","not","drawn","the","exact","relation","0","-","Use","the","most","memory","1","-","Intermediate",",","larger","buffer","2","-","Intermediate",",","small","buffer","3","-","Use","the","minimal","amount","of","GPU","memory","Note","that","*","none","*","of","the","above","options","will","affect","the","accuracy","This","is","a","space-time","tradeoff",",","not","a","space-performance","one","mem_freq","-","Period","at","which","new","memory","are","put","in","the","bank","Higher","number","-",">","less","memory","usage","Unlike","the","last","option",",","this","*","is","*","a","space-performance","tradeoff"]
code: def set_images(self, images):
      # True dimensions
      images = images_to_paddle(images)
      t = images.shape[1]
      h, w = images.shape[-2:]
  
      # Pad each side to multiples of 16
      images = paddle.to_tensor(images, dtype="float32")
      self.images, self.pad = pad_divide_by(
          images, 16, images.shape[-2:]
      )
      # Padded dimensions
      nh, nw = self.images.shape[-2:]
  
      # These two store the same information in different formats
      self.masks = paddle.zeros((t, 1, nh, nw), dtype="int64")
      self.np_masks = np.zeros((t, h, w), dtype=np.int64)
      if self.prob is None:
          self.prob = paddle.zeros(
              (self.k + 1, t, 1, nh, nw), dtype="float32"
          )
          self.prob[0] = 1e-7
      else:
          k, t, c, nh, nw = self.prob.shape
          if (self.k + 1) != k:
              add_obj = abs(self.k + 1 - k)
              new_prob = paddle.zeros([add_obj, t, c, nh, nw]) + 1e-7
              self.prob = paddle.concat([self.prob, new_prob], axis=0)
  
      self.t, self.h, self.w = t, h, w
      self.nh, self.nw = nh, nw
      self.kh = self.nh // 16
      self.kw = self.nw // 16
  
imports: import os
  import paddle.nn.functional
  import numpy
  from .load_model import *
  from .util.tensor_util import pad_divide_by, images_to_paddle
  from .video_tools import load_video, aggregate_wbg
label_desc: Use image node_id 7 for calling the InferenceCore obj's underlying member method code with example usage: obj.set_images(images) without return types