code: def get_dataset(self, X, y=None):
          
          if is_dataset(X):
              return X
  
          dataset = self.dataset
          is_initialized = not callable(dataset)
  
          kwargs = self._get_params_for('dataset')
          if kwargs and is_initialized:
              raise TypeError("Trying to pass an initialized Dataset while "
                              "passing Dataset arguments ({}) is not "
                              "allowed.".format(kwargs))
  
          if is_initialized:
              return dataset
  
          return dataset(X, y, **kwargs)
docs: Get a dataset that contains the input data and is passed to
          the iterator.
  
          Override this if you want to initialize your dataset
          differently.
  
          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.
  
          Returns
          -------
          dataset
            The initialized dataset.