class_docstr: Contrastive Model, currently mainly focused on memory bank and CSC.
class_docstr_tok: ["Contrastive","Model",",","currently","mainly","focused","on","memory","bank","and","CSC","."]
code: def run_swav_encoder_q(self, im):
      proj = self.backbone(im)  # Nx512, Nx128
      proj = F.normalize(proj, dim=1)  # always normalize
      swav_prototypes = F.normalize(self.swav_prototypes, dim=0, p=2)
      out = proj @ swav_prototypes
      return proj, 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 15 for calling the ContrastiveModel obj's underlying member method code with example usage: obj.run_swav_encoder_q(im) and returns: proj,  out