class_docstr: The Extraction Block used in RegUNet.
  Extracts feature from each ``extract_levels`` and takes the average.
class_docstr_tok: ["The","Extraction","Block","used","in","RegUNet",".","Extracts","feature","from","each","``","extract_levels","``","and","takes","the","average","."]
docstr: Args:
      x: Decoded feature at different spatial levels, sorted from deep to shallow
      image_size: output image size
  
  Returns:
      Tensor of shape (batch, `out_channels`, size1, size2, size3), where (size1, size2, size3) = ``image_size``
docstr_tok: ["Args",":","x",":","Decoded","feature","at","different","spatial","levels",",","sorted","from","deep","to","shallow","image_size",":","output","image","size","Returns",":","Tensor","of","shape","(","batch",",","`","out_channels","`",",","size1",",","size2",",","size3",")",",","where","(","size1",",","size2",",","size3",")","=","``","image_size","``"]
code: def forward(
      self, x: list[torch.Tensor], image_size: list[int]
  ) -> torch.Tensor:
      """
  
      Args:
          x: Decoded feature at different spatial levels, sorted from deep to shallow
          image_size: output image size
  
      Returns:
          Tensor of shape (batch, `out_channels`, size1, size2, size3), where (size1, size2, size3) = ``image_size``
      """
      feature_list = [
          F.interpolate(
              layer(x[self.max_level - level]),
              size=image_size,
              mode=self.mode,
              align_corners=self.align_corners,
          )
          for layer, level in zip(self.layers, self.extract_levels)
      ]
      out: torch.Tensor = torch.mean(
          torch.stack(feature_list, dim=0), dim=0
      )
      return out
  
imports: from __future__ import annotations
  from collections.abc import Sequence
  import torch
  from torch import nn
  from torch.nn import functional
  from monai.networks.blocks import Convolution
  from monai.networks.layers import Conv, Norm, Pool, same_padding
label_desc: Use image node_id 2 for calling the RegistrationExtractionBlock obj's underlying member method code with example usage: obj.forward(x, image_size) and returns: out