使用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倍,但我注意到该指标显着下降(测试集中的RMSE从0.13955@CPU降至0.14377@GPU)。 GPU和CPU是否通过相同的接口使用不同的随机数生成器,还是我还缺少其他功能?
我正在使用以下硬件
答案 0 :(得分:0)
有两件事可能会影响结果:
因此,请尝试将其设置为255,如果有帮助,请在此处写下。