code: def test_fm_numerical_forward(self) -> None:
      torch.manual_seed(0)
  
      batch_size = 3
      # the input embedding are in torch.Tensor of [batch_size, num_embeddings, embedding_dim]
      input_embeddings = [
          torch.randn(batch_size, 2, 64),
          torch.randn(batch_size, 2, 32),
          torch.randn(batch_size, 3, 100),
          torch.randn(batch_size, 5, 120),
      ]
      fm = FactorizationMachine()
  
      output = fm(input_embeddings)
  
      expected_output = torch.Tensor(
          [
              [-577.5231],
              [752.7272],
              [-509.1023],
          ]
      )
      self.assertTrue(
          torch.allclose(
              output,
              expected_output,
              rtol=1e-4,
              atol=1e-4,
          )
      )
  
file_path: torchrec/torchrec/modules/tests/test_deepfm.py
imports: import unittest
  import torch
  from torchrec.fx import Tracer
  from torchrec.modules.deepfm import DeepFM, FactorizationMachine
label_desc: Use image node_id 2 for calling the TestFM obj's underlying member method code with example usage: obj.test_fm_numerical_forward() without return types