class_docstr: A block with skip links and layer - norm - activation.
  Only changes the number of channels, the spatial size is kept same.
class_docstr_tok: ["A","block","with","skip","links","and","layer","-","norm","-","activation",".","Only","changes","the","number","of","channels",",","the","spatial","size","is","kept","same","."]
docstr: Args:
      x: Tensor in shape (batch, ``in_channels``, insize_1, insize_2, [insize_3])
  
  Returns:
      Tensor in shape (batch, ``out_channels``, insize_1, insize_2, [insize_3]),
      with the same spatial size as ``x``
docstr_tok: ["Args",":","x",":","Tensor","in","shape","(","batch",",","``","in_channels","``",",","insize_1",",","insize_2",",","[","insize_3","]",")","Returns",":","Tensor","in","shape","(","batch",",","``","out_channels","``",",","insize_1",",","insize_2",",","[","insize_3","]",")",",","with","the","same","spatial","size","as","``","x","``"]
code: def forward(self, x: torch.Tensor) -> torch.Tensor:
      """
  
      Args:
          x: Tensor in shape (batch, ``in_channels``, insize_1, insize_2, [insize_3])
  
      Returns:
          Tensor in shape (batch, ``out_channels``, insize_1, insize_2, [insize_3]),
          with the same spatial size as ``x``
      """
      skip = x
      for i, (conv, norm, act) in enumerate(
          zip(self.layers, self.norms, self.acts)
      ):
          x = conv(x)
          x = norm(x)
          if i == self.num_layers - 1:
              # last block
              x = x + skip
          x = act(x)
      return x
  
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 RegistrationResidualConvBlock obj's underlying member method code with example usage: obj.forward(x) and returns: x