code: def test_multi_dim(self) -> None:
      x1 = torch.tensor([1.0, 2.0, 3.0, 4.0])
      x2 = torch.tensor([2.0, 1.0, 2.0, 4.0])
      x3 = torch.tensor([3.0, 3.0, 1.0, 4.0])
  
      summarizer = Summarizer([Mean(), Var()])
      summarizer.update(x1)
      assertTensorAlmostEqual(
          self, summarizer.summary["mean"], x1, delta=0.05, mode="max"
      )
      assertTensorAlmostEqual(
          self,
          summarizer.summary["variance"],
          torch.zeros_like(x1),
          delta=0.05,
          mode="max",
      )
  
      summarizer.update(x2)
      assertTensorAlmostEqual(
          self,
          summarizer.summary["mean"],
          torch.tensor([1.5, 1.5, 2.5, 4]),
          delta=0.05,
          mode="max",
      )
      assertTensorAlmostEqual(
          self,
          summarizer.summary["variance"],
          torch.tensor([0.25, 0.25, 0.25, 0]),
          delta=0.05,
          mode="max",
      )
  
      summarizer.update(x3)
      assertTensorAlmostEqual(
          self,
          summarizer.summary["mean"],
          torch.tensor([2, 2, 2, 4]),
          delta=0.05,
          mode="max",
      )
      assertTensorAlmostEqual(
          self,
          summarizer.summary["variance"],
          torch.tensor([2.0 / 3.0, 2.0 / 3.0, 2.0 / 3.0, 0]),
          delta=0.05,
          mode="max",
      )
  
file_path: captum/tests/attr/test_stat.py
imports: import random
  import torch
  from captum.attr import Max, Mean, Min, MSE, StdDev, Sum, Summarizer, Var
  from tests.helpers.basic import assertTensorAlmostEqual, BaseTest
label_desc: Use image node_id 3 for calling the Test obj's underlying member method code with example usage: obj.test_multi_dim() without return types