code: def __init__(self):
      super().__init__()
      resnet = torchvision.models.resnet18()
      self.backbone = nn.Sequential(*list(resnet.children())[:-1])
      self.projection_head = VICRegProjectionHead(
          input_dim=512,
          hidden_dim=2048,
          output_dim=2048,
          num_layers=2,
      )
  
      # enable gather_distributed to gather features from all gpus
      # before calculating the loss
      self.criterion = VICRegLoss(gather_distributed=True)
  
file_path: lightly/examples/pytorch_lightning_distributed/vicreg.py
imports: import pytorch_lightning
  import torch
  import torchvision
  from torch import nn
  from lightly.loss import VICRegLoss
  from lightly.models.modules.heads import VICRegProjectionHead
  from lightly.transforms.vicreg_transform import VICRegTransform
label_desc: Use image node_id 1 to create a new VICReg object from inherited base classes: pl with example: obj = VICReg()