class_docstr: Bootstrap Your Own Latent A New Approach to Self-Supervised Learning
  Details can be found in:
  https://arxiv.org/pdf/2006.07733.pdf
class_docstr_tok: ["Bootstrap","Your","Own","Latent","A","New","Approach","to","Self-Supervised","Learning","Details","can","be","found","in",":","https",":","\/\/arxiv.org\/pdf\/2006.07733.pdf"]
docstr: Args:
      x (tensor): input to be forwarded of shape N x C x T x H x W
docstr_tok: ["Args",":","x","(","tensor",")",":","input","to","be","forwarded","of","shape","N","x","C","x","T","x","H","x","W"]
code: def forward(
      self, x: torch.Tensor
  ) -> Union[torch.Tensor, Tuple[torch.Tensor]]:
      """
      Args:
          x (tensor): input to be forwarded of shape N x C x T x H x W
      """
      if not self.training:
          x = self.backbone(x)
          x = F.normalize(x, dim=1)
          return x
  
      proj = self.backbone(x)
      pred = self.predictor(proj)
      pred = F.normalize(pred, dim=1)
  
      out_proj = F.normalize(proj, dim=1)
  
      return out_proj, pred
  
imports: from dataclasses import dataclass
  from typing import Any, Callable, List, Optional, Tuple, Union
  import torch
  import torch.nn
  import torch.nn.functional
  from hydra.core.config_store import ConfigStore
  from omegaconf import MISSING
  from pytorchvideo.models.resnet import create_resnet
  from pytorchvideo.models.weight_init import init_net_weights
  from pytorchvideo_trainer.module.ssl_helper import create_mlp_util, SSLBaseModule
  from pytorchvideo_trainer.module.video_classification import Batch, BatchKey, EnsembleMethod
  from torchrecipes.core.conf import ModuleConf
  from torchrecipes.utils.config_utils import get_class_name_str
label_desc: Use image node_id 5 for calling the BYOL obj's underlying member method code with example usage: obj.forward(x) and returns: out_proj,  pred, x