微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

GPU 上的 CatBoost 提供的性能比 CPU 上的差得多

如何解决GPU 上的 CatBoost 提供的性能比 CPU 上的差得多

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

我说的差了 50%。

这怎么可能?

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

catboostModel = catboostClassifier(
    task_type="cpu",early_stopping_rounds=50,eval_metric="Precision",cat_features=["Symbol"],auto_class_weights="Balanced",thread_count=-1
)

我们缺少什么?

解决方法

对于某些超参数,CatBoost 在 CPU 和 GPU 上使用不同的默认值。还有一些超参数只在 GPU 上可用或只在 CPU 上可用。 CatBoost documentation 提供了所有详细信息。

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。