首页 > 解决方案 > GPU 上的 CatBoost 提供的性能比 CPU 上差得多

问题描述

我们正在 CPU 和 GPU 上测试 CatBoost。虽然它在 GPU 上的运行速度比在 CPU 上快得多,但我们得到的结果要差得多,而且我们使用的是相同的数据。

我说的差了大约 50%。

这怎么可能?

我们使用以下代码在 CPU 上运行它,并且仅在task_typeGPU 上运行时将其更改为 GPU:

catBoostModel = CatBoostClassifier(
    task_type="CPU",
    early_stopping_rounds=50,
    eval_metric="Precision",
    cat_features=["Symbol"], 
    auto_class_weights="Balanced",
    thread_count=-1
)

我们缺少什么?

标签: pythoncatboost

解决方案


有一些超参数 CatBoost 在 CPU 和 GPU 上使用不同的默认值。还有一些超参数仅在 GPU 上可用或仅在 CPU 上可用。CatBoost文档提供了所有详细信息。

这意味着即使您在 CPU 和 GPU 上运行相同的代码,您也可能在训练两个不同的模型。您可以使用model.get_all_params()model您的训练模型对象在哪里)来获取所有超参数的列表并在 CPU 和 GPU 之间进行比较。


推荐阅读