Escolhendo entre TensorFlow ou Theano como back-end para Keras

20

Keras suporta tanto TensorFlow e Theano como backend: quais são as vantagens / desvantagens de escolher um contra o outro, além do fato de que, atualmente, nem todas as operações são implementadas com o backend TensorFlow?

Franck Dernoncourt
fonte
4
Voltando a isso. Acho que vou mudar de opinião hoje: D
Dawny33
@ Dawny33 graças eu vou assistir a resposta atualizada :-)
Franck Dernoncourt

Respostas:

9

Se eu tivesse a opção, eu iria com Theano .

Razões:

  • Implementações avançadas de RNN e APIs , que o TensorFlow infelizmente não possui, e ainda tem um longo caminho a percorrer . E em um domínio em que as RNNs são a tendência, Theano tem uma grande vantagem por lá.
  • Muito ampla gama de implementações . O TensorFlow tem um longo caminho a percorrer. Muitos modelos recentes de ML foram feitos com a ajuda do Theano, por isso é algo como um padrão quando se trata de redes neurais.
  • Loop otimizado e aprimorado : a varredura do Theano é uma maneira maravilhosa de loop em redes neurais, que faz uso da incrível estrutura de redução de mapa. Mas tenho certeza que o TensorFlow melhoraria isso, pois seu criador Jeff Dean é o pai do Map Reduce. No entanto, a partir de agora; é Theano
  • Uma vantagem enorme quando se trata de análise de vídeo.

No entanto, o TensorFlow suporta as interfaces cpp e Python, o que pode ser uma vantagem para a comunidade cpp. Mas, quando se trata de produtos de ML e de ciência de dados, o Python é o padrão, por isso não seria uma IMO de ponta.

Porém, a implantação do modelo e a facilidade de uso na produção é onde o TensorFlow tem a vantagem real. Como ele usa o Eigen para uma implantação fácil e aprimorada, seria um problema para os engenheiros. Se for compatível com o Windows, você verá uma grande migração. Mas, eu me acostumei com a sobrecarga do Python, posso esperar até que fique mais polida.

Então, Theano por enquanto. Felizmente, espero que o TensorFlow o atualize.

Se você estiver implantando redes neurais de complexidade simples a média, vá com o Tensorflow. Se aprendizagem profunda, então Theano.

Dawny33
fonte
1
Dadas as melhorias no TensorFlow nos últimos 1,5 anos, você agora tem uma opinião diferente?
Seanny123
1
@ Seanny123 eu tenho certeza. Não estava conseguindo colocar isso como resposta: D. Irá escrever em breve :). [PS não relacionado: Checkout Pytorch também]
Dawny33
8

Foi anunciado em 28/09/2017 que o Theano será descontinuado:

Em https://groups.google.com/forum/#!topic/theano-users/7Poq8BZutbY (Yoshua Bengio):

Após quase dez anos de desenvolvimento, lamentamos anunciar que encerraremos o desenvolvimento do Theano após o lançamento da versão 1.0, que deve ocorrer nas próximas semanas. Continuaremos com a manutenção mínima para mantê-lo funcionando por um ano, mas pararemos de implementar ativamente novos recursos. O Theano continuará disponível depois, conforme nosso compromisso com o software de código aberto, mas o MILA não se compromete a gastar tempo em manutenção ou suporte após esse período.

Portanto, o TensorFlow é uma opção melhor.

Franck Dernoncourt
fonte