code: def forward(self, data):
      device = data.x.device
  
      zg_1, zn_1 = self.encoder_0(
          self.views_fn[0](data.to("cpu")).to(device)
      )
      zg_1 = self.proj(zg_1)
      zn_1 = self.proj_n(zn_1)
  
      zg_2, zn_2 = self.encoder_1(
          self.views_fn[1](data.to("cpu")).to(device)
      )
      zg_2 = self.proj(zg_2)
      zn_2 = self.proj_n(zn_2)
  
      if self.graph_level and self.node_level:
          return (zg_1 + zg_2), (zn_1 + zn_2)
      elif self.graph_level:
          return zg_1 + zg_2
      elif self.node_level:
          return zn_1 + zn_2
      else:
          return None
  
file_path: DIG/dig/sslgraph/method/contrastive/model/mvgrl.py
imports: import torch.nn
  from .contrastive import Contrastive
  from dig.sslgraph.method.contrastive.views_fn import Diffusion, DiffusionWithSample
label_desc: Use image node_id 2 for calling the MVGRL_enc obj's underlying member method code with example usage: obj.forward(data) and returns: unknown,  unknown, unknown, unknown, None