class_docstr: 1D causal temporal convolution, where the term causal means that output[t]
  does not depend on input[t+1:]. Notice that Conv1D is not implemented in
  Gluon.
  
  This is the basic structure used in Wavenet [ODZ+16]_ and Temporal
  Convolution Network [BKK18]_.
  
  The output has the same shape as the input, while we always left-pad zeros.
  
  Parameters
  ----------
  
  channels
      The dimensionality of the output space, i.e. the number of output
      channels (filters) in the convolution.
  
  kernel_size
      Specifies the dimensions of the convolution window.
  
  dilation
      Specifies the dilation rate to use for dilated convolution.
  
  activation
      Activation function to use. See :func:`~mxnet.ndarray.Activation`.
      If you don't specify anything, no activation is applied
      (ie. "linear" activation: `a(x) = x`).
class_docstr_tok: ["1D","causal","temporal","convolution",",","where","the","term","causal","means","that","output","[","t","]","does","not","depend","on","input","[","t+1",":","]",".","Notice","that","Conv1D","is","not","implemented","in","Gluon",".","This","is","the","basic","structure","used","in","Wavenet","[","ODZ+16","]","_","and","Temporal","Convolution","Network","[","BKK18","]","_",".","The","output","has","the","same","shape","as","the","input",",","while","we","always","left-pad","zeros",".","Parameters","--","--","--","--","--","channels","The","dimensionality","of","the","output","space",",","i.e",".","the","number","of","output","channels","(","filters",")","in","the","convolution",".","kernel_size","Specifies","the","dimensions","of","the","convolution","window",".","dilation","Specifies","the","dilation","rate","to","use","for","dilated","convolution",".","activation","Activation","function","to","use",".","See",":","func",":","`","~mxnet.ndarray.Activation","`",".","If","you","do","n't","specify","anything",",","no","activation","is","applied","(","ie",".","``","linear","''","activation",":","`","a","(","x",")","=","x","`",")","."]
docstr: In Gluon's conv1D implementation, input has dimension NCW where N is
  batch_size, C is channel, and W is time (sequence_length).
  
  Parameters
  ----------
  data
      Shape (batch_size, num_features, sequence_length)
  
  Returns
  -------
  Tensor
      causal conv1d output. Shape (batch_size, num_features,
      sequence_length)
docstr_tok: ["In","Gluon","'s","conv1D","implementation",",","input","has","dimension","NCW","where","N","is","batch_size",",","C","is","channel",",","and","W","is","time","(","sequence_length",")",".","Parameters","--","--","--","--","--","data","Shape","(","batch_size",",","num_features",",","sequence_length",")","Returns","--","--","--","-","Tensor","causal","conv1d","output",".","Shape","(","batch_size",",","num_features",",","sequence_length",")"]
code: def hybrid_forward(self, F, data: Tensor) -> Tensor:
      """
      In Gluon's conv1D implementation, input has dimension NCW where N is
      batch_size, C is channel, and W is time (sequence_length).
  
      Parameters
      ----------
      data
          Shape (batch_size, num_features, sequence_length)
  
      Returns
      -------
      Tensor
          causal conv1d output. Shape (batch_size, num_features,
          sequence_length)
      """
      ct = self.conv1d(data)
      if self.kernel_size > 0:
          end_ = -self.padding if self.padding != 0 else None
          ct = F.slice_axis(ct, axis=2, begin=0, end=end_)
      return ct
  
file_path: gluonts/src/gluonts/mx/block/cnn.py
imports: from typing import List, Optional, Tuple, Union
  from mxnet import gluon
  from mxnet.gluon import nn
  from gluonts.mx import Tensor
label_desc: Use image node_id 2 for calling the CausalConv1D obj's underlying member method code with example usage: obj.hybrid_forward(F, data) and returns: ct