code: def test_classification_infidelity_convnet_multi_targets(
      self,
  ) -> None:
      model = BasicModel_ConvNet_One_Conv()
      dl = DeepLift(model)
  
      input = torch.stack(
          [torch.arange(1, 17).float()] * 20, dim=0
      ).view(20, 1, 4, 4)
  
      self.infidelity_assert(
          model,
          dl.attribute(input, target=torch.tensor([1] * 20)) / input,
          input,
          torch.zeros(20),
          target=torch.tensor([1] * 20),
          multi_input=False,
          n_perturb_samples=500,
          max_batch_size=120,
      )
  
imports: import typing
  from typing import Any, Callable, cast, List, Tuple, Union
  import torch
  from captum._utils.typing import BaselineType, TargetType, TensorOrTupleOfTensorsGeneric
  from captum.attr import Attribution, DeepLift, FeatureAblation, IntegratedGradients, Saliency
  from captum.metrics import infidelity, infidelity_perturb_func_decorator
  from tests.helpers.basic import assertTensorAlmostEqual, BaseTest
  from tests.helpers.basic_models import BasicModel2, BasicModel4_MultiArgs, BasicModel_ConvNet_One_Conv, BasicModel_MultiLayer
  from torch import Tensor
  from torch.nn import Module
label_desc: Use image node_id 5 for calling the Test obj's underlying member method code with example usage: obj.test_classification_infidelity_convnet_multi_targets() without return types