code: def test_gstg_2d_input(self) -> None:
      dim = 3 * 2
      gstg = GaussianStochasticGates(dim).to(self.testing_device)
  
      # shape(2,3,2)
      input_tensor = torch.tensor(
          [
              [
                  [0.0, 0.1],
                  [0.2, 0.3],
                  [0.4, 0.5],
              ],
              [
                  [0.6, 0.7],
                  [0.8, 0.9],
                  [1.0, 1.1],
              ],
          ]
      ).to(self.testing_device)
  
      gated_input, reg = gstg(input_tensor)
      expected_reg = 5.0458
  
      if self.testing_device == "cpu":
          expected_gated_input = [
              [[0.0000, 0.0851], [0.0713, 0.3000], [0.2180, 0.1878]],
              [[0.2538, 0.0000], [0.3391, 0.8501], [0.3633, 0.8913]],
          ]
      elif self.testing_device == "cuda":
          expected_gated_input = [
              [[0.0000, 0.0788], [0.0470, 0.0139], [0.0000, 0.1960]],
              [[0.0000, 0.7000], [0.1052, 0.2120], [0.5978, 0.0166]],
          ]
  
      assertTensorAlmostEqual(
          self, gated_input, expected_gated_input, mode="max"
      )
      assertTensorAlmostEqual(self, reg, expected_reg)
  
imports: import unittest
  import torch
  from captum.module.gaussian_stochastic_gates import GaussianStochasticGates
  from parameterized import parameterized_class
  from tests.helpers.basic import assertTensorAlmostEqual, BaseTest
label_desc: Use image node_id 7 for calling the TestGaussianStochasticGates obj's underlying member method code with example usage: obj.test_gstg_2d_input() without return types