code: def test_sklearn(self):
      m, n = 15000, 14
      tr_size = 2500
      X = np.random.rand(m, n)
      y = 200 * np.matmul(X, np.arange(-3, -3 + n))
      y = y.reshape(y.size)
      X_train, y_train = X[:tr_size, :], y[:tr_size]
      X_test, y_test = X[tr_size:, :], y[tr_size:]
  
      params = {
          "tree_method": "hist",
          "device": "cuda:0",
          "n_jobs": -1,
          "seed": 123,
      }
      m = xgb.XGBRegressor(**params).fit(X_train, y_train)
      gpu_train_score = m.score(X_train, y_train)
      gpu_test_score = m.score(X_test, y_test)
  
      # Now with cpu
      m.set_params(device="cpu")
      cpu_train_score = m.score(X_train, y_train)
      cpu_test_score = m.score(X_test, y_test)
  
      assert np.allclose(cpu_train_score, gpu_train_score)
      assert np.allclose(cpu_test_score, gpu_test_score)
  
imports: import sys
  from copy import copy
  import numpy
  import pytest
  from hypothesis import assume, given, settings, strategies
  import xgboost
  from xgboost import testing
  from xgboost.compat import PANDAS_INSTALLED
  from test_predict import run_predict_leaf
  from test_predict import run_threaded_predict
label_desc: Use image node_id 3 for calling the TestGPUPredict obj's underlying member method code with example usage: obj.test_sklearn() without return types