Выполнение одного и того же кода с использованием CPU и GPU дает мне разные RMSE-баллы.Почему?
Я выполнял следующий код снова и снова, пока выполнял настройки на этапе разработки и выбора функций.
from catboost import CatBoostRegressor
model = CatBoostRegressor(iterations=1000, learning_rate=0.05, depth=5, random_seed=69);
df_ser_full.Model.fit(
X_train,
y_train,
use_best_model=True,
eval_set=(X_test, y_test),
plot=True,
silent=True
);
Через некоторое время я устал ждать ожиданияобучение, поэтому я переключился на тренировку на GPU, а не на CPU, заменив вторую строку кода следующей
model = CatBoostRegressor(iterations=1000, learning_rate=0.05, depth=5, task_type='GPU', random_seed=69);
Обучение теперь ускорилось примерно в 5 раз, но я заметил, что показатель значительно упал(Среднеквадратичное отклонение от тестового набора изменилось с 0,13955@CPU до 0,14377@GPU).Используют ли GPU и CPU разные генераторы случайных чисел с одним и тем же интерфейсом, или мне чего-то не хватает?
Я использую следующее оборудование
- Intel Core i9-8950HK (процессор @ 2,90 ГГц)
- NVIDIA Quadro P2000