SciKit Learn、Keras或Pytorch中的差异

2024-04-15 20:26:27 发布

您现在位置:Python中文网/ 问答频道 /正文

这些库可以互换吗?

看这里,https://stackshare.io/stackups/keras-vs-pytorch-vs-scikit-learn,主要的区别似乎是底层框架(至少对于PyTorch)。


Tags: httpsio框架pytorchscikitlearnkerasvs
1条回答
网友
1楼 · 发布于 2024-04-15 20:26:27

是的,有一个很大的区别。

SciKit Learn是一个通用的机器学习库,建立在NumPy之上。它具有许多机器学习算法,如支持向量机、随机森林,以及许多用于一般数据预处理和后处理的实用工具。它不是一个神经网络框架。

Pythorch是一个深度学习框架,由

  1. 一个类似于NumPy的矢量化数学库,但有GPU支持和许多与神经网络相关的操作(如softmax或各种激活)
  2. Autograd-一种自动计算函数梯度的算法,根据基本操作定义
  3. 基于梯度的大规模优化程序,专门用于神经网络优化
  4. 神经网络相关效用函数

Keras是一个更高层次的深度学习框架,它将许多细节抽象出来,使代码比PyTorch或TensorFlow中的代码更简单和简洁,但代价是有限的可攻击性。它将计算后端抽象出来,可以是TensorFlow、Theano或CNTK。它不支持Pythorch后端,但这并非深不可测的—您可以将其视为以上内容的简化和流线型子集。

简而言之,如果你使用的是“经典”的非神经算法,那么PyTorch和Keras都不会对你有用。如果您正在进行深度学习,scikit learn可能仍然对其实用部分有用;除此之外,您还需要实际的深度学习框架,您可以在Keras和PyTorch之间进行选择,但不太可能同时使用这两个框架。这是非常主观的,但在我看来,如果你正在研究一种新的算法,你更可能使用PyTorch(或TensorFlow或其他一些较低级别的框架)来获得灵活性。如果你正在调整一个已知的和经过测试的算法来适应一个新的问题设置,你可能会希望使用Keras,因为它更简单,入门级更低。

相关问题 更多 >