阅读TensorFlow中scikit learn的实现:http://learningtensorflow.com/lesson6/和scikit学习:http://scikit-learn.org/stable/modules/generated/sklearn.cluster.KMeans.html我正在努力决定使用哪种实现。
scikit-learn作为tensorflow docker容器的一部分安装,因此可以使用任何一种实现。
使用scikit学习的原因:
scikit learn包含的样板比tensorflow更少实施
使用tensorflow的原因:
如果在Nvidia GPU上运行,算法将并行运行,我不确定scikit learn是否会使用所有可用的GPU?
阅读https://www.quora.com/What-are-the-main-differences-between-TensorFlow-and-SciKit-Learn
TensorFlow更低级;基本上,乐高积木你可以实现机器学习算法,而scikit可以学习为您提供现成的算法,例如分类,如SVM、随机森林、逻辑回归和很多,更多。如果你想实现TensorFlow深度学习算法,因为它可以让你利用GPU提供更高效的培训。
这句话强化了我的断言;scikit-learn包含比tensorflow实现更少的样板文件";但也暗示scikit learn不会使用所有可用的GPU?
Tensorflow仅在针对Cuda和CuDNN构建的情况下使用GPU。默认情况下,它不使用GPU,尤其是当它在Docker内运行时,除非你使用nvidia Docker和内置支持的图像。
Scikit learn不打算用作深度学习框架,也不提供任何GPU支持。
为什么不支持深度或强化学习/scikit learning中会支持深度或加强学习吗
深度学习和强化学习都需要丰富的定义架构的词汇,此外还有深度学习需要用于高效计算的GPU。然而,这两者都不适合在scikit学习的设计约束下;因此学习和强化学习目前已经超出了scikit所学的目的。
摘自http://scikit-learn.org/stable/faq.html#why-如果不支持深度或强化学习,scikit学习中会支持深度或加强学习吗
你会在scikit学习中添加GPU支持吗
不,或者至少在不久的将来不会。主要原因是GPU支持将引入许多软件依赖项,并引入平台特定问题。scikit learn设计为易于使用安装在各种各样的平台上。在神经网络之外,GPU在今天的机器学习中并没有发挥很大作用通常可以通过仔细选择算法。
摘自http://scikit-learn.org/stable/faq.html#will-添加gpu支持
我正在试验一种滴入溶液(h204gpu),以利用GPU加速,特别是Kmeans:
试试这个:
from h2o4gpu.solvers import KMeans
#from sklearn.cluster import KMeans
到目前为止,0.3.2版本仍然没有.emination_,但我认为它在他们的TODO列表中。
编辑:还没有测试,但scikit cuda似乎正在获得吸引力。
编辑:RAPID真的是一条通往这里的路。
根据我的经验,我在这里使用这个包来利用GPU进行一些sklearn算法。
我使用的代码:
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)
来源:英特尔(R)扩展Scikit学习的oneAPI和GPU支持