code: def unet_decoder_args(encoders, *, skip_connections):
      """Get list of decoder arguments for upsampling (right) side of a symmetric u-net,
      given the arguments used to construct the encoder.
      Args:
          encoders (tuple of length `N` of tuples of
              (in_chan, out_chan, kernel_size, stride, padding)):
              List of arguments used to construct the encoders
          skip_connections (bool): Whether to include skip connections in the
              calculation of decoder input channels.
      Return:
          tuple of length `N` of tuples of
              (in_chan, out_chan, kernel_size, stride, padding):
              Arguments to be used to construct decoders
      """
      decoder_args = []
      for (
          enc_in_chan,
          enc_out_chan,
          enc_kernel_size,
          enc_stride,
          enc_padding,
          enc_dilation,
      ) in reversed(encoders):
          if skip_connections and decoder_args:
              skip_in_chan = enc_out_chan
          else:
              skip_in_chan = 0
          decoder_args.append(
              (
                  enc_out_chan + skip_in_chan,
                  enc_in_chan,
                  enc_kernel_size,
                  enc_stride,
                  enc_padding,
                  enc_dilation,
              )
          )
      return tuple(decoder_args)
  
imports: import functools
  from functools import partial
  import numpy
  import torch
  from torch import Tensor, nn
  from torch.nn.modules.batchnorm import _BatchNorm
label_desc: Use image node_id 3 for calling a global function with example usage: unet_decoder_args(encoders) and returns: tuple