class_docstr: Bottleneck for Decoder.
  
  Args:
      inplanes (int): Number of input channels.
      planes (int): Number of output channels.
      stride (int, optional): Stride for convolution and de-convolution layers. Defaults to 1.
      upsample (nn.Module | None, optional): Module used for upsampling output. Defaults to None.
      groups (int, optional): Number of blocked connections from input channels to output channels.
          Defaults to 1.
      base_width (int, optional): Number of layers in each intermediate convolution layer. Defaults to 64.
      dilation (int, optional): Spacing between kernel elements. Defaults to 1.
      norm_layer (Callable[..., nn.Module] | None, optional): Batch norm layer to use.Defaults to None.
class_docstr_tok: ["Bottleneck","for","Decoder",".","Args",":","inplanes","(","int",")",":","Number","of","input","channels",".","planes","(","int",")",":","Number","of","output","channels",".","stride","(","int",",","optional",")",":","Stride","for","convolution","and","de-convolution","layers",".","Defaults","to","1.","upsample","(","nn.Module","|","None",",","optional",")",":","Module","used","for","upsampling","output",".","Defaults","to","None",".","groups","(","int",",","optional",")",":","Number","of","blocked","connections","from","input","channels","to","output","channels",".","Defaults","to","1.","base_width","(","int",",","optional",")",":","Number","of","layers","in","each","intermediate","convolution","layer",".","Defaults","to","64.","dilation","(","int",",","optional",")",":","Spacing","between","kernel","elements",".","Defaults","to","1.","norm_layer","(","Callable","[","...",",","nn.Module","]","|","None",",","optional",")",":","Batch","norm","layer","to","use.Defaults","to","None","."]
docstr: Forward-pass of de-resnet bottleneck block.
docstr_tok: ["Forward-pass","of","de-resnet","bottleneck","block","."]
code: def forward(self, batch: Tensor) -> Tensor:
      """Forward-pass of de-resnet bottleneck block."""
      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
      out = self.relu(out)
  
      return out
  
imports: from __future__ import annotations
  from typing import Any, Callable
  from torch import Tensor, nn
  from torchvision.models.resnet import conv1x1, conv3x3
label_desc: Use image node_id 2 for calling the DecoderBottleneck obj's underlying member method code with example usage: obj.forward(batch) and returns: out