code: def __init__(
      self,
      input_channels,
      output_channels,
      strides=1,
      filter_size=3,
      dilation=1,
      skip_conv=True,
      has_skip=True,
      activation_fn_in_separable_conv=False,
      name=None,
  ):
      super(Xception_Block, self).__init__()
  
      repeat_number = 3
      output_channels = check_data(output_channels, repeat_number)
      filter_size = check_data(filter_size, repeat_number)
      strides = check_data(strides, repeat_number)
  
      self.has_skip = has_skip
      self.skip_conv = skip_conv
      self.activation_fn_in_separable_conv = (
          activation_fn_in_separable_conv
      )
      if not activation_fn_in_separable_conv:
          self._conv1 = Separate_Conv(
              input_channels,
              output_channels[0],
              stride=strides[0],
              filter=filter_size[0],
              dilation=dilation,
              name=name + "/separable_conv1",
          )
          self._conv2 = Separate_Conv(
              output_channels[0],
              output_channels[1],
              stride=strides[1],
              filter=filter_size[1],
              dilation=dilation,
              name=name + "/separable_conv2",
          )
          self._conv3 = Separate_Conv(
              output_channels[1],
              output_channels[2],
              stride=strides[2],
              filter=filter_size[2],
              dilation=dilation,
              name=name + "/separable_conv3",
          )
      else:
          self._conv1 = Separate_Conv(
              input_channels,
              output_channels[0],
              stride=strides[0],
              filter=filter_size[0],
              act="relu",
              dilation=dilation,
              name=name + "/separable_conv1",
          )
          self._conv2 = Separate_Conv(
              output_channels[0],
              output_channels[1],
              stride=strides[1],
              filter=filter_size[1],
              act="relu",
              dilation=dilation,
              name=name + "/separable_conv2",
          )
          self._conv3 = Separate_Conv(
              output_channels[1],
              output_channels[2],
              stride=strides[2],
              filter=filter_size[2],
              act="relu",
              dilation=dilation,
              name=name + "/separable_conv3",
          )
  
      if has_skip and skip_conv:
          self._short = ConvBNLayer(
              input_channels,
              output_channels[-1],
              1,
              stride=strides[-1],
              padding=0,
              name=name + "/shortcut",
          )
  
imports: import paddle.nn
  import paddle.nn.functional
  from paddleseg.cvlibs import manager
  from paddleseg.utils import utils
  from paddleseg.models import layers
label_desc: Use image node_id 1 to create a new Xception_Block object from inherited base classes: nn with example: obj = Xception_Block(input_channels, output_channels, strides, filter_size, dilation, skip_conv, has_skip, activation_fn_in_separable_conv, name)