cuml-rapids-ml算法

cuml的Python项目详细描述


cuml-gpu机器学习算法

注意:对于最新的稳定README.md请确保您在master分支上。

cuml是一套实现机器学习算法和数学原语函数的库,这些函数与其他RAPIDS项目共享兼容的api。

cuml使数据科学家、研究人员和软件工程师能够在gpu上运行传统的表格ml任务,而无需深入研究cuda编程的细节。

例如,下面的python片段加载输入并计算dbscan集群,所有这些都在gpu上:

importcudffromcumlimportDBSCAN# Create and populate a GPU DataFramegdf_float=cudf.DataFrame()gdf_float['0']=[1.0,2.0,5.0]gdf_float['1']=[4.0,2.0,1.0]gdf_float['2']=[4.0,2.0,1.0]# Setup and fit clustersdbscan_float=DBSCAN(eps=1.0,min_samples=1)dbscan_float.fit(gdf_float)print(dbscan_float.labels_)

输出:

0    0
1    1
2    2
dtype: int32

有关其他示例,请浏览完整的API documentation,或查看更详细的walkthrough notebooks

支持的算法:

  • 截断奇异值分解(tsvd)-conda cuda 10包中的单gpu、多gpu
  • 线性回归(普通最小二乘法)-conda cuda 10包中的单gpu、多gpu
  • 主成分分析(PCA)-单GPU
  • 基于密度的噪声应用空间聚类(dbscan)-单gpu
  • K均值聚类-多GPU
  • K-近邻-多GPU
  • 岭回归-单GPU
  • 卡尔曼滤波器-单GPU
  • umap
  • 线性回归、logistic回归和线性支持向量机的随机梯度下降,具有l1、l2和弹性净惩罚。

正在进行的算法:

  • 更多卡尔曼滤波器版本
  • 套索
  • 弹性网
  • 逻辑回归

在cuml中有更多的ml算法和ml原语中有更多的ml原语正在研究中。未来版本的目标包括更多算法以及算法和原语的多GPU版本。

安装

确保安装了libomplibopenblas,例如通过apt:

sudo apt install libopenblas-base libomp-dev

条件

cuml可以使用rapidsaiconda通道安装:

conda install -c nvidia -c rapidsai -c conda-forge -c pytorch -c defaults cuml

管道

cuml也可以使用pip安装。根据您的cuda版本选择包。

# cuda 9.2
pip install cuml-cuda92

# cuda 10.0
pip install cuml-cuda100

从源代码构建/安装

请参见构建instructions

贡献

请使用github问题和请求来报告错误和添加或请求功能。

联系人

了解有关RAPIDS site的更多详细信息

打开GPU数据科学

rapids开源软件库套件旨在使端到端的数据科学和分析管道完全在gpu上执行。它依赖nvidia®cuda®原语进行低级计算优化,但通过用户友好的python接口暴露了gpu并行性和高带宽内存速度。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
我们应该在测试java代码时模拟黄瓜测试吗。我们应该在多大程度上使用黄瓜?   Hibernate Weblogic 10.3.4 java。lang.NoSuchMethodError:javax/persistence/spi/PersistenceUnitInfo。getValidationMode()Ljavax/persistence/ValidationMode;   java如何在main()中访问私有静态实例变量   java JMockit无法模拟类的公共final字段   java是否可以返回特定控制器操作的输出(html)?   java如何返回正确类型的列表?   rest-OpenUI/Swagger-java-to-API   java组织。springframework。豆。工厂NoSuchBeanDefinitionException或加载ApplicationContext失败   java使用POST将参数从JSP发送到Servlet   java如何监听特定的按钮按下和主视图用户交互?   java如何让gradle在本地maven repo中覆盖库?   如何在Java中“合并”两个URI?   java如何制作一个方法来移动数组中的字符?   使用来自java的命令启动powershell窗口   java垃圾收集器和匿名类   java如何为CellTable(GWT 2.4)中的ImageResourceCell创建PanelPopup?