class_docstr: Reimplementation of highres3dnet based on
  Li et al., "On the compactness, efficiency, and representation of 3D
  convolutional networks: Brain parcellation as a pretext task", IPMI '17
  
  Adapted from:
  https://github.com/NifTK/NiftyNet/blob/v0.6.0/niftynet/network/highres3dnet.py
  https://github.com/fepegar/highresnet
  
  Args:
      spatial_dims: number of spatial dimensions of the input image.
      in_channels: number of input channels.
      out_channels: number of output channels.
      norm_type: feature normalization type and arguments.
          Defaults to ``("batch", {"affine": True})``.
      acti_type: activation type and arguments.
          Defaults to ``("relu", {"inplace": True})``.
      dropout_prob: probability of the feature map to be zeroed
          (only applies to the penultimate conv layer).
      bias: whether to have a bias term in convolution blocks. Defaults to False.
          According to `Performance Tuning Guide <https://pytorch.org/tutorials/recipes/recipes/tuning_guide.html>`_,
          if a conv layer is directly followed by a batch norm layer, bias should be False.
      layer_params: specifying key parameters of each layer/block.
      channel_matching: {``"pad"``, ``"project"``}
          Specifies handling residual branch and conv branch channel mismatches. Defaults to ``"pad"``.
  
          - ``"pad"``: with zero padding.
          - ``"project"``: with a trainable conv with kernel size one.
class_docstr_tok: ["Reimplementation","of","highres3dnet","based","on","Li","et","al.",",","``","On","the","compactness",",","efficiency",",","and","representation","of","3D","convolutional","networks",":","Brain","parcellation","as","a","pretext","task","''",",","IPMI","'17","Adapted","from",":","https",":","\/\/github.com\/NifTK\/NiftyNet\/blob\/v0.6.0\/niftynet\/network\/highres3dnet.py","https",":","\/\/github.com\/fepegar\/highresnet","Args",":","spatial_dims",":","number","of","spatial","dimensions","of","the","input","image",".","in_channels",":","number","of","input","channels",".","out_channels",":","number","of","output","channels",".","norm_type",":","feature","normalization","type","and","arguments",".","Defaults","to","``","(","``","batch","''",",","{","``","affine","''",":","True","}",")","``",".","acti_type",":","activation","type","and","arguments",".","Defaults","to","``","(","``","relu","''",",","{","``","inplace","''",":","True","}",")","``",".","dropout_prob",":","probability","of","the","feature","map","to","be","zeroed","(","only","applies","to","the","penultimate","conv","layer",")",".","bias",":","whether","to","have","a","bias","term","in","convolution","blocks",".","Defaults","to","False",".","According","to","`","Performance","Tuning","Guide","<","https",":","\/\/pytorch.org\/tutorials\/recipes\/recipes\/tuning_guide.html",">","`","_",",","if","a","conv","layer","is","directly","followed","by","a","batch","norm","layer",",","bias","should","be","False",".","layer_params",":","specifying","key","parameters","of","each","layer\/block",".","channel_matching",":","{","``","``","pad","''","``",",","``","``","project","''","``","}","Specifies","handling","residual","branch","and","conv","branch","channel","mismatches",".","Defaults","to","``","``","pad","''","``",".","-","``","``","pad","''","``",":","with","zero","padding",".","-","``","``","project","''","``",":","with","a","trainable","conv","with","kernel","size","one","."]
code: def forward(self, x: torch.Tensor) -> torch.Tensor:
      return torch.as_tensor(self.blocks(x))
  
file_path: MONAI/monai/networks/nets/highresnet.py
imports: from __future__ import annotations
  from collections.abc import Sequence
  import torch
  import torch.nn
  from monai.networks.blocks import ADN, Convolution
  from monai.networks.layers.simplelayers import ChannelPad
  from monai.utils import ChannelMatching
label_desc: Use image node_id 2 for calling the HighResNet obj's underlying member method code with example usage: obj.forward(x) and returns: torch