Следует использовать sklearn или тензор потока для нейронных сетей?

7

Я только начал изучать нейронные сети для глубокого изучения cs231. Я пытаюсь реализовать нейронную сеть в Python. Я смотрю на использование Tensorflow или scikit-learn. Каковы некоторые плюсы и минусы этих библиотек для этого приложения?

Муааз Ариф
источник

Ответы:

11

Sklearn не имеет большой поддержки Deep Neural Networks. Среди двух, поскольку вы заинтересованы в глубоком изучении , выберите тензорный поток .

Тем не менее, я бы предложил использовать keras , который использует тензор потока в качестве бэкэнда, но предлагает более простой интерфейс.

Djib2011
источник
4

Насколько я помню, в курсе cs231n вы проводите большую часть времени, внедряя нейронные сети самостоятельно, используя только NumPy! это был определенно удивительный опыт обучения для меня.

После этого, в последних заданиях, вам определенно нужно взглянуть на TensorFlow ( примеры ) или Pytorch ( примеры ) для построения более сложных сетей. Эти структуры были созданы такими же людьми, как те, кто создает курсы, например CS231n - исследователями и отраслевыми экспертами.

SciKit Learn нейронный сетевой модуль состоит из подающих вперед сетей для любой классификации или регрессии, но ничего более причудливого, таких как сверточные сети (CNNs), рецидивирующий сети (RNNs) или других более экзотических компоненты, таких как отдельные функции активации.

Я согласен с Djib2011 в том, что Keras - отличная альтернатива для начала - и позволит вам выбрать между TensorFlow, CNTK или Theano в качестве бэкэнда. Keras - хорошая оболочка для всех трех фреймворков с монстрами, так что давайте начнем работать очень быстро. Вот сравнительно недавнее и полезное сравнение Keras с Pytorch

Когда вы ознакомитесь с таким инструментом, как Keras, вы сможете использовать его быстрее, чем простые предложения в SciKit Learn.


Я знаю, что вы не спрашивали о PyTorch, но я подумал, что упомяну об этом, поскольку один из создателей CS231n, Андрей Карпати, говорит, что это лучший фреймворк ( источник 1 , источник 2 ).

n1k31t4
источник
В то время как мы говорим о Pytorch: он намного превосходит другие фреймворки, когда речь идет о рекуррентных сетях переменной длины
Evpok
@Evpok - вероятно, следует также упомянуть, что Tensorflow теперь поддерживает динамические сети, используя свой tf.eagerAPI, который сопоставим с PyTorch.
n1k31t4