code: def get_split_datasets(self, X, y=None, **fit_params):
          
          dataset = self.get_dataset(X, y)
          if self.train_split:
              dataset_train, dataset_valid = self.train_split(
                  dataset, y, **fit_params)
          else:
              dataset_train, dataset_valid = dataset, None
          return dataset_train, dataset_valid
docs: Get internal train and validation datasets.
  
          The validation dataset can be None if ``self.train_split`` is
          set to None; then internal validation will be skipped.
  
          Override this if you want to change how the net splits
          incoming data into train and validation part.
  
          Parameters
          ----------
          X : input data, compatible with skorch.dataset.Dataset
            By default, you should be able to pass:
  
              * numpy arrays
              * torch tensors
              * pandas DataFrame or Series
              * scipy sparse CSR matrices
              * a dictionary of the former three
              * a list/tuple of the former three
              * a Dataset
  
            If this doesn't work with your data, you have to pass a
            ``Dataset`` that can deal with the data.
  
          y : target data, compatible with skorch.dataset.Dataset
            The same data types as for ``X`` are supported. If your X is
            a Dataset that contains the target, ``y`` may be set to
            None.
  
          **fit_params : dict
            Additional parameters passed to the ``self.train_split``
            call.
  
          Returns
          -------
          dataset_train
            The initialized training dataset.
  
          dataset_valid
            The initialized validation dataset or None