code: def get(self, ind, time, interp=False):
      batch_size = ind.size(0)
      with torch.no_grad():
          if interp:
              # mem_idx = self.memory[ind.view(-1), :, :]
              t0 = time.floor().long()  # - 1
              t0 = torch.clamp(t0, 0, self.memory.shape[1] - 1)
              t1 = t0 + 1
              t1 = torch.clamp(t1, 0, self.memory.shape[1] - 1)
  
              mem_t0 = self.memory[ind.view(-1), t0.view(-1), :]
              mem_t1 = self.memory[ind.view(-1), t1.view(-1), :]
              w2 = time.view(-1, 1) / self.duration
              w_t1 = (time - t0).view(-1, 1).float()
              w_t1 = 1 - w_t1  # hack for inverse
              selected_mem = mem_t0 * (1 - w_t1) + mem_t1 * w_t1
          else:
              # logger.info("1dmem get ind shape {} time shape {}".format(ind.shape, time.shape))
              selected_mem = self.memory[
                  ind.view(-1), time.long().view(-1), :
              ]
  
      out = selected_mem.view(batch_size, -1, self.dim)
      return out
  
imports: import math
  import numpy
  import torch
  import torch.nn
  import torch.nn.functional
  import slowfast.models.losses
  import slowfast.utils.distributed
  import slowfast.utils.logging
  from slowfast.models.video_model_builder import X3D, MViT, ResNet, SlowFast
  from .build import MODEL_REGISTRY
label_desc: Use image node_id 3 for calling the Memory obj's underlying member method code with example usage: obj.get(ind, time, interp) and returns: out