code: def test_sigmoid_classification(self) -> None:
      num_in = 20
      input = torch.arange(
          0.0, num_in * 1.0, requires_grad=True
      ).unsqueeze(0)
      baseline = 0 * input
      target = torch.tensor(0)
      # TODO add test cases for multiple different layers
      model = SigmoidDeepLiftModel(num_in, 5, 1)
      dl = DeepLift(model)
      model.zero_grad()
      attributions, delta = dl.attribute(
          input, baseline, target=target, return_convergence_delta=True
      )
      self._assert_attributions(
          model, attributions, input, baseline, delta, target
      )
  
      # compare with integrated gradients
      ig = IntegratedGradients(model)
      attributions_ig = ig.attribute(input, baseline, target=target)
      assertAttributionComparision(
          self, (attributions,), (attributions_ig,)
      )
  
imports: from typing import Union
  import torch
  from captum._utils.typing import TargetType
  from captum.attr._core.deep_lift import DeepLift, DeepLiftShap
  from captum.attr._core.integrated_gradients import IntegratedGradients
  from tests.helpers.basic import assertAttributionComparision, BaseTest
  from tests.helpers.basic_models import BasicModel_ConvNet, BasicModel_ConvNet_MaxPool1d, BasicModel_ConvNet_MaxPool3d
  from tests.helpers.classification_models import SigmoidDeepLiftModel, SoftmaxDeepLiftModel
  from torch import Tensor
  from torch.nn import Module
label_desc: Use image node_id 1 for calling the Test obj's underlying member method code with example usage: obj.test_sigmoid_classification() without return types