code: def test_attack_3dimensional_input(self) -> None:
      model = BasicModel()
      input = torch.tensor(
          [[[4.0, 2.0], [-1.0, -2.0]], [[3.0, -4.0], [10.0, 5.0]]],
          requires_grad=True,
      )
      adv = PGD(model)
      perturbed_input = adv.perturb(input, 0.25, 0.1, 3, (0, 1))
      assertTensorAlmostEqual(
          self,
          perturbed_input,
          [[[4.0, 2.0], [-1.0, -2.0]], [[3.0, -3.75], [10.0, 5.0]]],
          delta=0.01,
          mode="max",
      )
  
file_path: captum/tests/robust/test_PGD.py
imports: import torch
  from captum.robust import PGD
  from tests.helpers.basic import assertTensorAlmostEqual, BaseTest
  from tests.helpers.basic_models import BasicModel, BasicModel2, BasicModel_MultiLayer
  from torch.nn import CrossEntropyLoss
label_desc: Use image node_id 5 for calling the Test obj's underlying member method code with example usage: obj.test_attack_3dimensional_input() without return types