如何解决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 举报,一经查实,本站将立刻删除。