class_docstr: A building block for Xceptions.
  
  Not only final outputs, this block also returns unactivated outputs
  of second separable convolution.
  
  Args:
      in_channels (int): The number of channels of the input array.
      depthlist (tuple of ints): Tuple of integers which defines
          number of channels of intermediate arrays. The length of
          this tuple must be 3.
      stride (int or tuple of ints): Stride of filter application.
      dilate (int or tuple of ints): Dilation factor of filter applications.
          :obj:`dilate=d` and :obj:`dilate=(d, d)` are equivalent.
      skip_type (string): the type of skip connection. If :obj:`sum`,
          original input is summed to output of network directly.
          When :obj:`conv`, convolution layer is applied before summation.
          When :obj:`none`, skip connection is not used.
          The default value is :obj:`conv`.
      activ_first (boolean): If :obj:`True`, activation function is
          applied first in this block.
          The default value is :obj:`True`
      bn_kwargs (dict):  Keywod arguments passed to initialize the batch
          normalization layers of :class:`chainercv.links.Conv2DBNActiv` and
          :class:`chainercv.links.SeparableConv2DBNActiv`.
class_docstr_tok: ["A","building","block","for","Xceptions",".","Not","only","final","outputs",",","this","block","also","returns","unactivated","outputs","of","second","separable","convolution",".","Args",":","in_channels","(","int",")",":","The","number","of","channels","of","the","input","array",".","depthlist","(","tuple","of","ints",")",":","Tuple","of","integers","which","defines","number","of","channels","of","intermediate","arrays",".","The","length","of","this","tuple","must","be","3.","stride","(","int","or","tuple","of","ints",")",":","Stride","of","filter","application",".","dilate","(","int","or","tuple","of","ints",")",":","Dilation","factor","of","filter","applications",".",":","obj",":","`","dilate=d","`","and",":","obj",":","`","dilate=","(","d",",","d",")","`","are","equivalent",".","skip_type","(","string",")",":","the","type","of","skip","connection",".","If",":","obj",":","`","sum","`",",","original","input","is","summed","to","output","of","network","directly",".","When",":","obj",":","`","conv","`",",","convolution","layer","is","applied","before","summation",".","When",":","obj",":","`","none","`",",","skip","connection","is","not","used",".","The","default","value","is",":","obj",":","`","conv","`",".","activ_first","(","boolean",")",":","If",":","obj",":","`","True","`",",","activation","function","is","applied","first","in","this","block",".","The","default","value","is",":","obj",":","`","True","`","bn_kwargs","(","dict",")",":","Keywod","arguments","passed","to","initialize","the","batch","normalization","layers","of",":","class",":","`","chainercv.links.Conv2DBNActiv","`","and",":","class",":","`","chainercv.links.SeparableConv2DBNActiv","`","."]
code: def __init__(
      self,
      in_channels,
      depthlist,
      stride=1,
      dilate=1,
      skip_type="conv",
      activ_first=True,
      bn_kwargs={},
      dw_activ_list=[None, None, None],
      pw_activ_list=[F.relu, F.relu, None],
  ):
      super(XceptionBlock, self).__init__()
      self.skip_type = skip_type
      self.activ_first = activ_first
      self.separable2_activ = pw_activ_list[1]
  
      with self.init_scope():
          self.separable1 = SeparableConv2DBNActiv(
              in_channels,
              depthlist[0],
              3,
              1,
              dilate,
              dilate,
              nobias=True,
              bn_kwargs=bn_kwargs,
              dw_activ=dw_activ_list[0],
              pw_activ=pw_activ_list[0],
          )
          self.separable2 = SeparableConv2DBNActiv(
              depthlist[0],
              depthlist[1],
              3,
              1,
              dilate,
              dilate,
              nobias=True,
              bn_kwargs=bn_kwargs,
              dw_activ=dw_activ_list[1],
              pw_activ=F.identity,
          )
          self.separable3 = SeparableConv2DBNActiv(
              depthlist[1],
              depthlist[2],
              3,
              stride,
              dilate,
              dilate,
              nobias=True,
              bn_kwargs=bn_kwargs,
              dw_activ=dw_activ_list[2],
              pw_activ=pw_activ_list[2],
          )
          if skip_type == "conv":
              self.conv = Conv2DBNActiv(
                  in_channels,
                  depthlist[2],
                  1,
                  activ=F.identity,
                  nobias=True,
                  stride=stride,
                  bn_kwargs=bn_kwargs,
              )
  
file_path: chainercv/chainercv/links/model/deeplab/xception.py
imports: from __future__ import division
  import chainer
  import chainer.functions
  from chainercv.links import Conv2DBNActiv
  from chainercv.links import SeparableConv2DBNActiv
  import numpy
label_desc: Use image node_id 1 to create a new XceptionBlock object from inherited base classes: chainer with example: obj = XceptionBlock(in_channels, depthlist, stride, dilate, skip_type, activ_first, bn_kwargs, dw_activ_list, pw_activ_list)