docs: def _to_patches(self, X):
          """
          Reshapes input to patches of the size of classifier's receptive field.
  
          For example:
  
          input X shape: [n_samples, n_pixels_y, n_pixels_x, n_bands]
  
          output: [n_samples * n_pixels_y/receptive_field_y * n_pixels_x/receptive_field_x,
                   receptive_field_y, receptive_field_x, n_bands]
          """
  
          window = self.patch_size
          asteps = self.patch_size
  
          if len(X.shape) == 4:
              window += (0,)
              asteps += (1,)
  
          image_view = rolling_window(X, window, asteps)
  
          new_shape = image_view.shape
  
          return image_view, new_shape