code: def test_predict_sklearn_pickle(self) -> None:
      from sklearn.datasets import load_digits
  
      x, y = load_digits(return_X_y=True)
  
      kwargs = {
          "tree_method": "gpu_hist",
          "objective": "binary:logistic",
          "gpu_id": 0,
          "n_estimators": 10,
      }
  
      model = XGBClassifier(**kwargs)
      model.fit(x, y)
  
      save_pickle(model, "model.pkl")
      del model
  
      # load model
      model = load_pickle("model.pkl")
      os.remove("model.pkl")
  
      gpu_pred = model.predict(x, output_margin=True)
  
      # Switch to CPU predictor
      bst = model.get_booster()
      bst.set_param({"device": "cpu"})
      cpu_pred = model.predict(x, output_margin=True)
      np.testing.assert_allclose(cpu_pred, gpu_pred, rtol=1e-5)
  
file_path: xgboost/tests/python-gpu/test_gpu_pickling.py
imports: import os
  import pickle
  import subprocess
  import numpy
  import pytest
  import xgboost
  from xgboost import XGBClassifier
  from xgboost import testing
label_desc: Use image node_id 5 for calling the TestPickling obj's underlying member method code with example usage: obj.test_predict_sklearn_pickle() without return types