python - GPU 上的 CatBoost 提供的性能比 CPU 上差得多
问题描述
我们正在 CPU 和 GPU 上测试 CatBoost。虽然它在 GPU 上的运行速度比在 CPU 上快得多,但我们得到的结果要差得多,而且我们使用的是相同的数据。
我说的差了大约 50%。
这怎么可能?
我们使用以下代码在 CPU 上运行它,并且仅在task_type
GPU 上运行时将其更改为 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文档提供了所有详细信息。
这意味着即使您在 CPU 和 GPU 上运行相同的代码,您也可能在训练两个不同的模型。您可以使用model.get_all_params()
(model
您的训练模型对象在哪里)来获取所有超参数的列表并在 CPU 和 GPU 之间进行比较。
推荐阅读
- google-apps-script - 使用脚本创建 PDF 没有格式
- php - 如何在 PHP 中正确连接
- python - 如何在 Qiskit 中进行量子比特观测建模
- r - 使用 install.packages 时与编译相关的错误
- python - 关于 Blender Python 中的模态运算符
- splunk - 带有 GUID 的丢失日志的 Splunk 警报
- azure-data-factory - Get Metadata 如何对其输出进行排序/排序?
- ios - 如何为 UITableView 标题设置颜色文本颜色
- c++ - 指向 STL 容器行为的指针
- spring - OneToOne 映射上的 EntityNotFoundException,即使实体存在