code: def test_tuple_input(self):
      device = "cuda" if torch.cuda.is_available() else "cpu"
      resnet = ResNetGenerator("resnet-18")
      model = BYOL(
          get_backbone(resnet, num_ftrs=32), num_ftrs=32, out_dim=128
      ).to(device)
  
      x0 = torch.rand((self.batch_size, 3, 64, 64)).to(device)
      x1 = torch.rand((self.batch_size, 3, 64, 64)).to(device)
  
      (z0, p0), (z1, p1) = model(x0, x1)
      self.assertEqual(z0.shape, (self.batch_size, 128))
      self.assertEqual(z1.shape, (self.batch_size, 128))
      self.assertEqual(p0.shape, (self.batch_size, 128))
      self.assertEqual(p1.shape, (self.batch_size, 128))
  
file_path: lightly/tests/models/test_ModelsBYOL.py
imports: import unittest
  import torch
  import torch.nn
  import torchvision
  import lightly
  from lightly.models import BYOL, ResNetGenerator
label_desc: Use image node_id 6 for calling the TestModelsBYOL obj's underlying member method code with example usage: obj.test_tuple_input() without return types