class_docstr: This class defines core TCN architecture.
  This is only the base class, training strategy is not implemented.
docstr: Defines the residual block
  Args:
      x: Input tensor to residual block
      in_channels: Number of input features (dimensions)
      out_channels: Number of output features (dimensions)
      dilation: Dilation rate
      padding: Padding value
  
  Returns:
      Output of residual path
docstr_tok: ["Defines","the","residual","block","Args",":","x",":","Input","tensor","to","residual","block","in_channels",":","Number","of","input","features","(","dimensions",")","out_channels",":","Number","of","output","features","(","dimensions",")","dilation",":","Dilation","rate","padding",":","Padding","value","Returns",":","Output","of","residual","path"]
code: def _residual_block(
      self, x, in_channels, out_channels, dilation, padding
  ):
      """
      Defines the residual block
      Args:
          x: Input tensor to residual block
          in_channels: Number of input features (dimensions)
          out_channels: Number of output features (dimensions)
          dilation: Dilation rate
          padding: Padding value
  
      Returns:
          Output of residual path
      """
      xin = x
      # define two temporal blocks
      for i in range(2):
          with tf.variable_scope("temporal_block_" + str(i)):
              x = self._temporal_block(
                  x, out_channels, dilation, padding
              )
  
      # sidepath
      if in_channels != out_channels:
          x_side = tf.layers.Conv1D(
              filters=out_channels,
              kernel_size=1,
              padding="same",
              strides=1,
              activation=None,
              dilation_rate=1,
              kernel_initializer=tf.initializers.random_normal(0, 0.01),
              bias_initializer=tf.initializers.random_normal(0, 0.01),
          )(xin)
      else:
          x_side = xin
  
      # combine both
      return tf.add(x, x_side)
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import tensorflow
  from tensorflow.python.framework import tensor_shape
  from tensorflow.python.keras.layers import Wrapper
  from tensorflow.python.layers.convolutional import Conv1D
  from tensorflow.python.ops import variable_scope
  from tensorflow.python.keras.engine.base_layer import Layer
  from tensorflow.python.eager import context
  from tensorflow.python.ops import nn_impl
  from tensorflow.python.keras import initializers
  from tensorflow.python.keras.engine.base_layer import InputSpec
  from tensorflow.python.ops import array_ops
  from tensorflow.python.framework import ops
label_desc: Use image node_id 4 for calling the TCN obj's underlying member method code with example usage: obj._residual_block(x, in_channels, out_channels, dilation, padding) and returns: tf