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 forward(self, x):
      if self.activ_first:
          h = F.relu(x)
      else:
          h = x
  
      h = self.separable1(h)
      h = self.separable2(h)
      separable2 = h
      h = self.separable2_activ(h)
      h = self.separable3(h)
  
      if self.skip_type == "conv":
          skip = self.conv(x)
          h = h + skip
      elif self.skip_type == "sum":
          h = h + x
      elif self.skip_type == "none":
          pass
  
      if not self.activ_first:
          h = F.relu(h)
  
      return h, separable2
  
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 2 for calling the XceptionBlock obj's underlying member method code with example usage: obj.forward(x) and returns: h,  separable2