def forward(self, batch: torch.Tensor) -> torch.Tensor:
        """Forward pass of the decoder bottleneck block.

        Args:
            batch (torch.Tensor): Input tensor of shape ``(B, C, H, W)``

        Returns:
            torch.Tensor: Output tensor of shape ``(B, C', H', W')``, where ``C'`` is
                ``planes * expansion`` and ``H'``, ``W'`` depend on ``stride``
        """
        identity = batch

        out = self.conv1(batch)
        out = self.bn1(out)
        out = self.relu(out)

        out = self.conv2(out)
        out = self.bn2(out)
        out = self.relu(out)

        out = self.conv3(out)
        out = self.bn3(out)

        if self.upsample is not None:
            identity = self.upsample(batch)

        out += identity
        return self.relu(out)
Forward pass of the decoder bottleneck block.

        Args:
            batch (torch.Tensor): Input tensor of shape ``(B, C, H, W)``

        Returns:
            torch.Tensor: Output tensor of shape ``(B, C', H', W')``, where ``C'`` is
                ``planes * expansion`` and ``H'``, ``W'`` depend on ``stride``
        
src/anomalib/models/image/reverse_distillation/components/de_resnet.py