class_docstr: ResNet model for decoder.
  
  Args:
      block (Type[DecoderBasicBlock | DecoderBottleneck]): Type of block to use in a layer.
      layers (list[int]): List to specify number for blocks per layer.
      zero_init_residual (bool, optional): If true, initializes the last batch norm in each layer to zero.
          Defaults to False.
      groups (int, optional): Number of blocked connections per layer from input channels to output channels.
          Defaults to 1.
      width_per_group (int, optional): Number of layers in each intermediate convolution layer.. Defaults to 64.
      norm_layer (Callable[..., nn.Module] | None, optional): Batch norm layer to use. Defaults to None.
class_docstr_tok: ["ResNet","model","for","decoder",".","Args",":","block","(","Type","[","DecoderBasicBlock","|","DecoderBottleneck","]",")",":","Type","of","block","to","use","in","a","layer",".","layers","(","list","[","int","]",")",":","List","to","specify","number","for","blocks","per","layer",".","zero_init_residual","(","bool",",","optional",")",":","If","true",",","initializes","the","last","batch","norm","in","each","layer","to","zero",".","Defaults","to","False",".","groups","(","int",",","optional",")",":","Number","of","blocked","connections","per","layer","from","input","channels","to","output","channels",".","Defaults","to","1.","width_per_group","(","int",",","optional",")",":","Number","of","layers","in","each","intermediate","convolution","layer","..","Defaults","to","64.","norm_layer","(","Callable","[","...",",","nn.Module","]","|","None",",","optional",")",":","Batch","norm","layer","to","use",".","Defaults","to","None","."]
docstr: Forward pass for Decoder ResNet. Returns list of features.
docstr_tok: ["Forward","pass","for","Decoder","ResNet",".","Returns","list","of","features","."]
code: def forward(self, batch: Tensor) -> list[Tensor]:
      """Forward pass for Decoder ResNet. Returns list of features."""
      feature_a = self.layer1(batch)  # 512*8*8->256*16*16
      feature_b = self.layer2(feature_a)  # 256*16*16->128*32*32
      feature_c = self.layer3(feature_b)  # 128*32*32->64*64*64
  
      return [feature_c, feature_b, feature_a]
  
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 3 for calling the ResNet obj's underlying member method code with example usage: obj.forward(batch) and returns: list