class_docstr: Implements a 1d depthwise separable convolutional layer. In regular convolutional
  layers, the input channels are mixed with each other to produce each output channel.
  Depthwise separable convolutions decompose this process into two smaller
  convolutions -- a depthwise and pointwise convolution.
  
  The depthwise convolution spatially convolves each input channel separately,
  then the pointwise convolution projects this result into a new channel space.
  This process reduces the number of FLOPS used to compute a convolution and also
  exhibits a regularization effect. The general behavior -- including the input
  parameters -- is equivalent to `nn.Conv1d`.
  
  `bottleneck` controls the behavior of the pointwise convolution. Instead of
  upsampling directly, we split the pointwise convolution into two pieces: the first
  convolution downsamples into a (sufficiently small) low dimension and the
  second convolution upsamples into the target (higher) dimension. Creating this
  bottleneck significantly cuts the number of parameters with minimal loss
  in performance.
class_docstr_tok: ["Implements","a","1d","depthwise","separable","convolutional","layer",".","In","regular","convolutional","layers",",","the","input","channels","are","mixed","with","each","other","to","produce","each","output","channel",".","Depthwise","separable","convolutions","decompose","this","process","into","two","smaller","convolutions","--","a","depthwise","and","pointwise","convolution",".","The","depthwise","convolution","spatially","convolves","each","input","channel","separately",",","then","the","pointwise","convolution","projects","this","result","into","a","new","channel","space",".","This","process","reduces","the","number","of","FLOPS","used","to","compute","a","convolution","and","also","exhibits","a","regularization","effect",".","The","general","behavior","--","including","the","input","parameters","--","is","equivalent","to","`","nn.Conv1d","`",".","`","bottleneck","`","controls","the","behavior","of","the","pointwise","convolution",".","Instead","of","upsampling","directly",",","we","split","the","pointwise","convolution","into","two","pieces",":","the","first","convolution","downsamples","into","a","(","sufficiently","small",")","low","dimension","and","the","second","convolution","upsamples","into","the","target","(","higher",")","dimension",".","Creating","this","bottleneck","significantly","cuts","the","number","of","parameters","with","minimal","loss","in","performance","."]
code: def forward(self, x):
      return self.conv(x)
  
imports: import math
  import torch
  import torch.nn
  from pytext.config.module_config import Activation, CNNParams, PoolingType
  from pytext.models.representations.representation_base import RepresentationBase
  from pytext.optimizer import get_activation
  from pytext.utils.usage import log_class_usage
label_desc: Use image node_id 2 for calling the SeparableConv1d obj's underlying member method code with example usage: obj.forward(x) and returns: self