code: def _test_forward(self, device, batch_size=8, seed=0):
      torch.manual_seed(seed)
      seq_length = 50
      embed_input_dim = 128
      out_dim = 3 * 32**2
      decoder = MAEDecoder(
          seq_length=seq_length,
          num_layers=2,
          num_heads=4,
          embed_input_dim=embed_input_dim,
          hidden_dim=256,
          mlp_dim=256 * 4,
          out_dim=out_dim,
      ).to(device)
      tokens = torch.rand(batch_size, seq_length, embed_input_dim).to(
          device
      )
      predictions = decoder(tokens)
  
      # output shape must be correct
      expected_shape = [batch_size, seq_length, out_dim]
      self.assertListEqual(list(predictions.shape), expected_shape)
  
      # output must have reasonable numbers
      self.assertTrue(
          torch.all(torch.not_equal(predictions, torch.inf))
      )
  
imports: import unittest
  import torch
  import torchvision
  from lightly import _torchvision_vit_available
  from lightly.models import utils
label_desc: Use image node_id 2 for calling the TestMAEDecoder obj's underlying member method code with example usage: obj._test_forward(device, batch_size, seed) without return types