code: def __init__(self, x, y, batch_size=32, shuffle=True):
      # error checks
      err = False
      if type(x) == np.ndarray:
          if len(x.shape) != 2:
              err = True
      elif type(x) == list:
          for d in x:
              if type(d) != np.ndarray or len(d.shape) != 2:
                  err = True
                  break
      else:
          err = True
      if err:
          raise ValueError(
              "x must be a 2d numpy array or a list of 2d numpy arrays"
          )
      if type(y) != np.ndarray:
          raise ValueError("y must be a numpy array")
      if type(x) == np.ndarray:
          x = [x]
  
      # set variables
      super().__init__(batch_size=batch_size)
      self.x, self.y = x, y
      self.indices = np.arange(self.x[0].shape[0])
      self.n_inputs = len(x)
      self.shuffle = shuffle
  
imports: from .imports import *
label_desc: Use image node_id 1 to create a new MultiArrayDataset object from inherited base classes: SequenceDataset with example: obj = MultiArrayDataset(x, y, batch_size, shuffle)