Deve usar sklearn ou tensorflow para redes neurais?

7

Acabei de começar a aprender redes neurais para aprender profundamente com o cs231. Estou tentando implementar a rede neural em Python. Eu estou olhando para usar o Tensorflow ou o scikit-learn. Quais são os prós e os contras dessas bibliotecas para este aplicativo?

Muaaz Arif
fonte

Respostas:

11

O Sklearn não tem muito suporte para redes neurais profundas. Entre os dois, como você está interessado em aprendizado profundo , escolha o fluxo tensor .

No entanto, eu sugeriria usar o keras , que usa o tensorflow como back-end, mas oferece uma interface mais fácil.

Djib2011
fonte
4

No curso cs231n, tanto quanto me lembro, você passa a maior parte do tempo implementando redes neurais usando apenas o NumPy! essa foi definitivamente uma experiência de aprendizado incrível para mim.

Depois disso, nas últimas tarefas, você definitivamente precisa olhar para o TensorFlow ( exemplos ) ou o Pytorch ( exemplos ) para criar redes mais complicadas. Essas estruturas foram criadas por pessoas como as que criam cursos como o CS231n - pesquisadores e especialistas do setor.

O módulo de rede neural SciKit Learn consiste em redes feed-forward para classificação ou regressão, mas nada mais sofisticado, como redes convolucionais (CNNs), redes recorrentes (RNNs) ou outros componentes mais exóticos, como funções de ativação separadas.

Concordo com o Djib2011, que o Keras é uma ótima alternativa para começar - e permitirá que você escolha entre o TensorFlow, CNTK ou Theano como back-end. Keras é um bom invólucro uniforme em todas as três estruturas de monstros, então vamos colocar as coisas em funcionamento rapidamente. Aqui está uma comparação recente e útil de Keras com Pytorch

Quando você estiver familiarizado com uma ferramenta como Keras, será mais rápido usá-la do que as ofertas simples do SciKit Learn.


Eu sei que você não perguntou sobre o PyTorch, mas pensei em mencioná-lo, como um dos criadores originais do CS231n, Andrej Karpathy, diz que é o melhor framework ( fonte 1 , fonte 2 ).

n1k31t4
fonte
Enquanto estamos falando de Pytorch: é muito acima de outras estruturas quando se trata de redes recorrentes de comprimento variável
Evpok
@ Evpok - Nós provavelmente também devemos mencionar que o Tensorflow agora suporta redes dinâmicas usando sua tf.eagerAPI, que é comparável ao PyTorch.
N1k31t4 13/08/19