code: @Override public void crossValidate(Frame[] splits, Frame[] cv_preds, long[] offsets, int i) {
      // Train a clone with slightly modified parameters (to account for cross-validation)
      final DeepLearning cv = (DeepLearning) this.clone();
      cv.genericCrossValidation(splits, offsets, i);
      cv_preds[i] = ((DeepLearningModel) UKV.get(cv.dest())).score(cv.validation);
      new TAtomic<DeepLearningModel>() {
        @Override public DeepLearningModel atomic(DeepLearningModel m) {
          if (!keep_cross_validation_splits && /*paranoid*/cv.dest().toString().contains("xval")) {
            m.get_params().source = null;
            m.get_params().validation=null;
            m.get_params().response=null;
          }
          return m;
        }
      }.invoke(cv.dest());
    }
docs: Cross-Validate a DeepLearning model by building new models on N train/test holdout splits
  @param splits Frames containing train/test splits
  @param cv_preds Array of Frames to store the predictions for each cross-validation run
  @param offsets Array to store the offsets of starting row indices for each cross-validation run
  @param i Which fold of cross-validation to perform