class_docstr: Context Aggregation Network
class_docstr_tok: ["Context","Aggregation","Network"]
code: def forward(self, features: List[Tensor]):
      features = [rcm(x) for x, rcm in zip(features, self.encoder_rcm)]
  
      x = self.cfm(features[-1])
      outputs = [x]
      num_blocks = len(self.amm_blocks)
      for index in range(num_blocks):
          block_index = num_blocks - index - 1
          encoder_input = features[block_index]
          x = self.amm_blocks[block_index](encoder_input, x)
          x = self.rcm_blocks[block_index](x)
          outputs.append(x)
  
      return outputs[::-1]
  
imports: from typing import List
  import torch
  import torch.nn.functional
  from torch import nn, Tensor
  from ..dsconv import DepthwiseSeparableConv2d
  from ..interfaces import AbstractDecoder, FeatureMapsSpecification
label_desc: Use image node_id 2 for calling the CANDecoder obj's underlying member method code with example usage: obj.forward(features) and returns: outputs