Intel(R) Extension for Scikit-learn 是加速 Scikit-learn 应用程序的一种无缝方式。
项目描述
Intel(R) Extension for Scikit-learn*
使用 Intel(R) Extension for Scikit-learn,您可以为 Scikit-learn 应用程序加速,同时保持与所有 Scikit-Learn API 和算法的完全兼容性。这是一个免费的 AI 加速器软件,在各种应用程序中带来了 10-100 倍的加速。您甚至不需要更改现有的代码!
加速度是通过使用英特尔(R) oneAPI数据分析库(oneDAL)实现的。修补scikit-learn使其成为处理现实世界问题的理想机器学习框架。
⚠️英特尔(R) Scikit-learn扩展包含原本在daal4py包中可用的scikit-learn修补功能。所有针对修补的未来更新都仅可在英特尔(R) Scikit-learn扩展中获取。我们建议您使用scikit-learn-intelex包而不是daal4py。您可以在daal4py文档中了解更多关于daal4py的信息。
👀 关注我们的Medium账号
我们在Medium上发布博客,因此关注我们,学习如何使用英特尔(R) Scikit-learn扩展更有效地进行数据分析。以下是我们最新的博客
- 使用英特尔Scikit-learn扩展节省时间和金钱
- 在最新的英特尔至强可扩展处理器上实现卓越的机器学习性能
- 利用Scikit-Learn中的英特尔优化
- 英特尔为数据科学家提供Scikit-learn的性能提升
- 从数小时缩短到数分钟:600倍更快SVM
- 提升XGBoost和LightGBM推理性能
- 使用英特尔AI分析工具包加速Kaggle挑战
- 加速您的scikit-learn应用程序
- 加速机器学习中的线性模型
- 加速K-Means聚类
🔗 重要链接
💬 支持
使用以下方式报告问题、提问或提供建议:
您可以通过onedal.maintainers@intel.com私下联系项目维护者。
🛠 安装
英特尔(R) Scikit-learn扩展可在Python包索引、Anaconda Cloud的Conda-Forge通道和英特尔通道中找到。英特尔(R) Scikit-learn扩展也是英特尔® oneAPI AI分析工具包(AI Kit)的一部分。
- PyPi(默认推荐)
pip install scikit-learn-intelex
- 来自Conda-Forge通道的Anaconda Cloud(默认为conda用户推荐)
conda config --add channels conda-forge
conda config --set channel_priority strict
conda install scikit-learn-intelex
- 来自英特尔通道的Anaconda Cloud(默认为英特尔Python分发用户推荐)
conda config --add channels intel
conda config --set channel_priority strict
conda install scikit-learn-intelex
[点击展开] ℹ️ 支持的配置
📦 PyPi通道
操作系统/Python版本 | Python 3.8 | Python 3.9 | Python 3.10 | Python 3.11 | Python 3.12 |
---|---|---|---|---|---|
Linux | [CPU, GPU] | [CPU, GPU] | [CPU, GPU] | [CPU, GPU] | [CPU, GPU] |
Windows | [CPU, GPU] | [CPU, GPU] | [CPU, GPU] | [CPU, GPU] | [CPU, GPU] |
📦 Anaconda Cloud:Conda-Forge通道
操作系统/Python版本 | Python 3.8 | Python 3.9 | Python 3.10 | Python 3.11 | Python 3.12 |
---|---|---|---|---|---|
Linux | [CPU] | [CPU] | [CPU] | [CPU] | [CPU] |
Windows | [CPU] | [CPU] | [CPU] | [CPU] | [CPU] |
📦 Anaconda Cloud:英特尔通道
操作系统/Python版本 | Python 3.8 | Python 3.9 | Python 3.10 | Python 3.11 | Python 3.12 |
---|---|---|---|---|---|
Linux | [CPU, GPU] | [CPU, GPU] | [CPU, GPU] | [CPU, GPU] | [CPU, GPU] |
Windows | [CPU, GPU] | [CPU, GPU] | [CPU, GPU] | [CPU, GPU] | [CPU, GPU] |
⚠️ 注意:GPU支持是可选依赖项。对于GPU支持所需的依赖项将不会下载。您需要手动安装dpcpp_cpp_rt包。
[点击展开] ℹ️ 如何安装dpcpp_cpp_rt包
- PyPi
pip install --upgrade dpcpp_cpp_rt
- Anaconda Cloud
conda install dpcpp_cpp_rt -c intel
您还可以从源代码构建包。
⚡️ 开始使用
英特尔CPU优化修补
import numpy as np
from sklearnex import patch_sklearn
patch_sklearn()
from sklearn.cluster import DBSCAN
X = np.array([[1., 2.], [2., 2.], [2., 3.],
[8., 7.], [8., 8.], [25., 80.]], dtype=np.float32)
clustering = DBSCAN(eps=3, min_samples=2).fit(X)
英特尔GPU优化修补
import numpy as np
import dpctl
from sklearnex import patch_sklearn, config_context
patch_sklearn()
from sklearn.cluster import DBSCAN
X = np.array([[1., 2.], [2., 2.], [2., 3.],
[8., 7.], [8., 8.], [25., 80.]], dtype=np.float32)
with config_context(target_offload="gpu:0"):
clustering = DBSCAN(eps=3, min_samples=2).fit(X)
🚀 Scikit-learn修补
配置
- 硬件:使用2个插槽和每个插槽24个核心的英特尔Xeon Platinum 8275CL的c5.24xlarge AWS EC2实例
- 软件:scikit-learn版本0.24.2,scikit-learn-intelex版本2021.2.3,Python 3.8
[点击展开] ℹ️ 重复结果
- 启用英特尔® Extension for Scikit-learn
python runner.py --configs configs/blogs/skl_conda_config.json -–report
- 使用原始Scikit-learn
python runner.py --configs configs/blogs/skl_conda_config.json -–report --no-intel-optimized
Intel(R)扩展的Scikit-learn补丁会影响特定Scikit-learn功能的表现。请参阅支持的算法和参数列表以获取详细信息。当使用不受支持的参数时,该包将回退到原始Scikit-learn。如果补丁不适用于您的场景,请在GitHub上提交问题。
⚠️ 我们支持对Scikit-learn的最后四个版本的优化。Scikit-learn-intelex-2024.0.X的最新版本支持Scikit-learn 1.0.X、1.1.X、1.2.X和1.3.X。
📜 Intel(R)扩展的Scikit-learn详细输出
要找出当前正在使用哪种算法实现(Intel(R)扩展的Scikit-learn或原始Scikit-learn),请设置环境变量
- 在Linux上:
export SKLEARNEX_VERBOSE=INFO
- 在Windows上:
set SKLEARNEX_VERBOSE=INFO
例如,对于DBSCAN,您将根据使用的实现得到以下打印语句之一
SKLEARNEX INFO: sklearn.cluster.DBSCAN.fit: 在CPU上运行加速版本
SKLEARNEX INFO: sklearn.cluster.DBSCAN.fit: 回退到原始Scikit-learn
项目详情
哈希值 for scikit_learn_intelex-2024.7.0-py312-none-win_amd64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 6a66868ccbb4bd7712913f82d2aa00eb44e83b1fc87dbe7000b68ea51f275ed3 |
|
MD5 | 2424fa907e30319d3fcc401205329040 |
|
BLAKE2b-256 | 2040ec44c8b2b7a99122fb87c3d3bf7aa7537a15dbcdb1b1730d5a2c89f44895 |
哈希值 for scikit_learn_intelex-2024.7.0-py312-none-manylinux1_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 40259b3ab8c9171b9e777c2bdbcf317489020d3252d80e6e514351e893e1bc7a |
|
MD5 | 88ce28abfabaf1d21c757011013dbcd0 |
|
BLAKE2b-256 | 706f87863804ef1a6ac9fca0778c234017d5179956f4fee77466dff200aaf35a |
哈希值 for scikit_learn_intelex-2024.7.0-py311-none-win_amd64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 8994d086864cfcf8bba9d3bce5cece096e931d9bdf6512b998930e19d2a1b191 |
|
MD5 | 42665a76d0ce1637176e3e46c0d31fdb |
|
BLAKE2b-256 | 7afaf0c8b1a8968f595737bae7b314684e4c7ab5f3c397424439a39fb0191afe |
哈希值 for scikit_learn_intelex-2024.7.0-py311-none-manylinux1_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 11a7cd20d7910387651ef3883d3241a92557d81a59c1bffb99bdff40cd540b2e |
|
MD5 | fa27c740bab175ed24f710acfdb60e68 |
|
BLAKE2b-256 | 3fb1d10f2262f93186dbcf0199e463f38b36ae0cf1e31b3cf92f12098e33ccd2 |
哈希值 for scikit_learn_intelex-2024.7.0-py310-none-win_amd64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 876c5072a97edd0055070a33bd56652d1be1eea88132a4c23e903cae5b786cf4 |
|
MD5 | 3cb4fa145b1eb150c666ba35309c8d85 |
|
BLAKE2b-256 | 42318eabd2e754789cf40523a5fd881319a336489d3c21611c0e9338e4c1eb70 |
哈希值 for scikit_learn_intelex-2024.7.0-py310-none-manylinux1_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | ed0838c8db6a2873a1415e94b39ef1e282e1a9d4eb625b31c6dca158d49d9cd4 |
|
MD5 | 0eed961f9e42b174eb9a840511c8c60d |
|
BLAKE2b-256 | 965e15d4f900dd7772c19bad53e98c7204fbd5f504f6db369efb3b40376f50ac |
哈希值 for scikit_learn_intelex-2024.7.0-py39-none-win_amd64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 5e956ab42034d85a9ca228c29b93ffaea895bc4e4633203851bae41a41b5194c |
|
MD5 | 0af267b70d869053c7cd0ed3cf6ef6fd |
|
BLAKE2b-256 | 5f993b1053c2c8295e9d51745e663fbfc8b0b8bf4a6ed0550b79e501e25d49f3 |
哈希值 for scikit_learn_intelex-2024.7.0-py39-none-manylinux1_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 91ce5cf0c3c26407ae07fc36c04b184f8fbd08b9bb32aae3c16902c495437c05 |
|
MD5 | 05e53414d20dd28140c05b5b1e0b25a9 |
|
BLAKE2b-256 | b497c832acab04e72d0d4d74b608e551fcc5b681b2477bc03df591c2446de00a |