code: def DecoderUpsamplingX2Block(filters, stage, use_batchnorm=False):
      up_name = "decoder_stage{}_upsampling".format(stage)
      conv1_name = "decoder_stage{}a".format(stage)
      conv2_name = "decoder_stage{}b".format(stage)
      concat_name = "decoder_stage{}_concat".format(stage)
  
      concat_axis = (
          3 if backend.image_data_format() == "channels_last" else 1
      )
  
      def wrapper(input_tensor, skip=None):
          x = layers.UpSampling2D(size=2, name=up_name)(input_tensor)
  
          if skip is not None:
              x = layers.Concatenate(
                  axis=concat_axis, name=concat_name
              )([x, skip])
  
          x = Conv3x3BnReLU(filters, use_batchnorm, name=conv1_name)(x)
          x = Conv3x3BnReLU(filters, use_batchnorm, name=conv2_name)(x)
  
          return x
  
      return wrapper
  
file_path: segmentation_models/segmentation_models/models/unet.py
imports: from keras_applications import get_submodules_from_kwargs
  from ._common_blocks import Conv2dBn
  from ._utils import freeze_model, filter_keras_submodules
  from ..backbones.backbones_factory import Backbones
label_desc: Use image node_id 3 for calling a global function with example usage: DecoderUpsamplingX2Block(filters, stage, use_batchnorm) and returns: wrapper, x