class_docstr: Base MACNN Network for MACNNClassifier and MACNNRegressor.
  
  Parameters
  ----------
  padding : str, optional (default="same")
      The type of padding to be provided in MACNN Blocks. Accepts
      all the string values that keras.layers supports.
  pool_size : int, optional (default=3)
      A single value representing pooling windows which are applied
      between two MACNN Blocks.
  strides : int, optional (default=2)
      A single value representing strides to be taken during the
      pooling operation.
  repeats : int, optional (default=2)
      The number of MACNN Blocks to be stacked.
  filter_sizes : tuple, optional (default=(64, 128, 256))
      The input size of Conv1D layers within each MACNN Block.
  kernel_size : tuple, optional (default=(3, 6, 12))
      The output size of Conv1D layers within each MACNN Block.
  reduction : int, optional (default=16)
      The factor by which the first dense layer of a MACNN Block will be divided by.
  random_state: int, optional (default=0)
      The seed to any random action.
docstr: Implement a single MACNN Block.
  
  Parameters
  ----------
  x : An instance of keras.layers.Layer
      The previous layer, in case of the first
      block it represents the input layer.
  kernels: int
      The base output dimension for dense layers, it corresponds
      to elements `filter_sizes` attributes.
  reduce: int
      The factor by which, the first dense layer's output dimension
      should be divided by, it corresponds to the `reduction` attribute.
  
  Returns
  -------
  block_output: An instance of keras.layers.Layer
      Represents the last layer of a MACNN Block, to be used by the next block.
docstr_tok: ["Implement","a","single","MACNN","Block",".","Parameters","--","--","--","--","--","x",":","An","instance","of","keras.layers.Layer","The","previous","layer",",","in","case","of","the","first","block","it","represents","the","input","layer",".","kernels",":","int","The","base","output","dimension","for","dense","layers",",","it","corresponds","to","elements","`","filter_sizes","`","attributes",".","reduce",":","int","The","factor","by","which",",","the","first","dense","layer","'s","output","dimension","should","be","divided","by",",","it","corresponds","to","the","`","reduction","`","attribute",".","Returns","--","--","--","-","block_output",":","An","instance","of","keras.layers.Layer","Represents","the","last","layer","of","a","MACNN","Block",",","to","be","used","by","the","next","block","."]
code: def _macnn_block(self, x, kernels, reduce):
      """Implement a single MACNN Block.
  
      Parameters
      ----------
      x : An instance of keras.layers.Layer
          The previous layer, in case of the first
          block it represents the input layer.
      kernels: int
          The base output dimension for dense layers, it corresponds
          to elements `filter_sizes` attributes.
      reduce: int
          The factor by which, the first dense layer's output dimension
          should be divided by, it corresponds to the `reduction` attribute.
  
      Returns
      -------
      block_output: An instance of keras.layers.Layer
          Represents the last layer of a MACNN Block, to be used by the next block.
      """
      from tensorflow import keras, reduce_mean, reshape
  
      conv_layers = []
      for i in range(len(self.kernel_size)):
          conv_layers.append(
              keras.layers.Conv1D(
                  kernels, self.kernel_size[i], padding=self.padding
              )(x)
          )
  
      x1 = keras.layers.Concatenate(axis=2)(conv_layers)
      x1 = keras.layers.BatchNormalization()(x1)
      x1 = keras.layers.Activation("relu")(x1)
  
      x2 = reduce_mean(x1, 1)
      x2 = keras.layers.Dense(
          int(kernels * 3 / reduce), use_bias=False, activation="relu"
      )(x2)
      x2 = keras.layers.Dense(
          int(kernels * 3), use_bias=False, activation="relu"
      )(x2)
      x2 = reshape(x2, [-1, 1, kernels * 3])
  
      return x1 * x2
  
imports: from sktime.networks.base import BaseDeepNetwork
  from sktime.utils.validation._dependencies import _check_dl_dependencies
label_desc: Use image node_id 2 for calling the MACNNNetwork obj's underlying member method code with example usage: obj._macnn_block(x, kernels, reduce) and returns: unknown