class_docstr: Decoder part of the discriminator network.
  
  Args:
      base_width (int): Base dimensionality of the layers of the autoencoder.
      out_channels (int): Number of output channels.
class_docstr_tok: ["Decoder","part","of","the","discriminator","network",".","Args",":","base_width","(","int",")",":","Base","dimensionality","of","the","layers","of","the","autoencoder",".","out_channels","(","int",")",":","Number","of","output","channels","."]
docstr: Computes predicted anomaly class scores from the intermediate outputs of the encoder sub network.
  
  Args:
      act1 (Tensor): Encoder activations of the first block of convolutional layers.
      act2 (Tensor): Encoder activations of the second block of convolutional layers.
      act3 (Tensor): Encoder activations of the third block of convolutional layers.
      act4 (Tensor): Encoder activations of the fourth block of convolutional layers.
      act5 (Tensor): Encoder activations of the fifth block of convolutional layers.
      act6 (Tensor): Encoder activations of the sixth block of convolutional layers.
  
  Returns:
      Predicted anomaly class scores per pixel.
docstr_tok: ["Computes","predicted","anomaly","class","scores","from","the","intermediate","outputs","of","the","encoder","sub","network",".","Args",":","act1","(","Tensor",")",":","Encoder","activations","of","the","first","block","of","convolutional","layers",".","act2","(","Tensor",")",":","Encoder","activations","of","the","second","block","of","convolutional","layers",".","act3","(","Tensor",")",":","Encoder","activations","of","the","third","block","of","convolutional","layers",".","act4","(","Tensor",")",":","Encoder","activations","of","the","fourth","block","of","convolutional","layers",".","act5","(","Tensor",")",":","Encoder","activations","of","the","fifth","block","of","convolutional","layers",".","act6","(","Tensor",")",":","Encoder","activations","of","the","sixth","block","of","convolutional","layers",".","Returns",":","Predicted","anomaly","class","scores","per","pixel","."]
code: def forward(
      self,
      act1: Tensor,
      act2: Tensor,
      act3: Tensor,
      act4: Tensor,
      act5: Tensor,
      act6: Tensor,
  ) -> Tensor:
      """Computes predicted anomaly class scores from the intermediate outputs of the encoder sub network.
  
      Args:
          act1 (Tensor): Encoder activations of the first block of convolutional layers.
          act2 (Tensor): Encoder activations of the second block of convolutional layers.
          act3 (Tensor): Encoder activations of the third block of convolutional layers.
          act4 (Tensor): Encoder activations of the fourth block of convolutional layers.
          act5 (Tensor): Encoder activations of the fifth block of convolutional layers.
          act6 (Tensor): Encoder activations of the sixth block of convolutional layers.
  
      Returns:
          Predicted anomaly class scores per pixel.
      """
      up_b = self.up_b(act6)
      cat_b = torch.cat((up_b, act5), dim=1)
      db_b = self.db_b(cat_b)
  
      up1 = self.up1(db_b)
      cat1 = torch.cat((up1, act4), dim=1)
      db1 = self.db1(cat1)
  
      up2 = self.up2(db1)
      cat2 = torch.cat((up2, act3), dim=1)
      db2 = self.db2(cat2)
  
      up3 = self.up3(db2)
      cat3 = torch.cat((up3, act2), dim=1)
      db3 = self.db3(cat3)
  
      up4 = self.up4(db3)
      cat4 = torch.cat((up4, act1), dim=1)
      db4 = self.db4(cat4)
  
      out = self.fin_out(db4)
      return out
  
imports: from __future__ import annotations
  import torch
  from torch import Tensor, nn
  from anomalib.models.components.layers import SSPCAB
label_desc: Use image node_id 2 for calling the DecoderDiscriminative obj's underlying member method code with example usage: obj.forward(act1, act2, act3, act4, act5, act6) and returns: out