class_docstr: Establish Network structure for TapNet.
  
  Adapted from the implementation used in [1]
  
  Parameters
  ----------
  kernel_size     : array of int, default = (8, 5, 3)
      specifying the length of the 1D convolution window
  layers          : array of int, default = (500, 300)
      size of dense layers
  filter_sizes    : array of int, shape = (nb_conv_layers), default = (256, 256, 128)
  random_state    : int, default = 1
      seed to any needed random actions
  rp_params       : array of int, default = (-1, 3)
      parameters for random permutation
  dropout         : float, default = 0.5
      dropout rate, in the range [0, 1)
  dilation        : int, default = 1
      dilation value
  padding         : str, default = 'same'
      type of padding for convolution layers
  use_rp          : bool, default = True
      whether to use random projections
  use_att         : bool, default = True
      whether to use self attention
  use_lstm        : bool, default = True
      whether to use an LSTM layer
  use_cnn         : bool, default = True
      whether to use a CNN layer
  
  References
  ----------
  .. [1] Zhang et al. Tapnet: Multivariate time series classification with
  attentional prototypical network,
  Proceedings of the AAAI Conference on Artificial Intelligence
  34(4), 6845-6852, 2020
docstr: Get output size from a convolution layer.
  
  Parameters
  ----------
  in_size         : int
      Dimension of input image, either height or width
  kernel_size     : int
      Size of the convolutional kernel that is applied
  strides         : int
      Stride step between convolution operations
  padding         : int
      Amount of padding done on input.
  
  Returns
  -------
  output          : int
      Corresponding output dimension after convolution
code: def output_conv_size(in_size, kernel_size, strides, padding):
      """Get output size from a convolution layer.
  
      Parameters
      ----------
      in_size         : int
          Dimension of input image, either height or width
      kernel_size     : int
          Size of the convolutional kernel that is applied
      strides         : int
          Stride step between convolution operations
      padding         : int
          Amount of padding done on input.
  
      Returns
      -------
      output          : int
          Corresponding output dimension after convolution
      """
      # padding removed for now
      output = int((in_size - kernel_size) / strides) + 1
  
      return output
  
file_path: sktime/sktime/networks/tapnet.py
imports: import math
  import numpy
  from sktime.networks.base import BaseDeepNetwork
  from sktime.utils.validation._dependencies import _check_dl_dependencies, _check_soft_dependencies
label_desc: Use image node_id 2 for calling the TapNetNetwork obj's underlying member method code with example usage: obj.output_conv_size(in_size, kernel_size, strides, padding) and returns: output