神经网络应该使用 sklearn 还是 tensorflow?

数据挖掘 神经网络 深度学习 张量流
2021-09-21 08:04:54

我刚刚开始从 cs231 学习神经网络进行深度学习。我正在尝试在 Python 中实现神经网络。我正在考虑使用 Tensorflow 或 scikit-learn。这些库对于这个应用程序有哪些优点和缺点?

2个回答

Sklearn 对深度神经网络的支持不多。这两者中,既然你对深度学习感兴趣,那就选择tensorflow

但是,我建议使用keras,它使用 tensorflow 作为后端,但提供了更简单的界面。

据我记得,在 cs231n 课程中,您大部分时间都在使用 NumPy 自己实现神经网络!这对我来说绝对是一次了不起的学习经历。

之后,在最后的作业中,您肯定需要查看TensorFlow示例)或Pytorch示例)来构建更复杂的网络。这些框架是由创建 CS231n 等课程的人(研究人员和行业专家)构建的。

SciKit Learn 神经网络模块由用于分类或回归的前馈网络组成,但没有什么更高级的,例如卷积网络 (CNN)、循环网络 (RNN) 或其他更奇特的组件,例如单独的激活函数。

我同意 Djib2011 的观点,即 Keras 是一个很好的入门选择 - 并且可以让您在 TensorFlow、CNTK 或 Theano 作为后端之间进行选择。Keras 是所有三个怪物框架的一个很好的统一包装器,所以让我们快速启动和运行。这是Keras 与 Pytorch 的相对较新且有用的比较

一旦您熟悉了像 Keras 这样的工具,使用它会比 SciKit Learn 中的简单产品更快。


我知道您没有询问 PyTorch,但我想我会提到它,作为 CS231n 的原始创建者之一,Andrej Karpathy 说它是最好的框架(来源 1来源 2)。