Primeiros passos com Deep Learning: Keras vs Pytorch
Qual dos dois usar se eu estou começando com Deep Learning.

Quando queremos começar a fazer alguma coisa em Aprendizado Profundo de Máquina ou Deep Learning pode bater aquela dúvida,
por onde eu começo?
E geralmente quando bate essa dúvida ela é direcionada para o que é mais usado para Deep Learning na comunidade de ciência de dados
Keras e PyTorch
Quais são as diferenças entre os dois e por qual começar? Vamos tentar esclarecer essas dúvidas.
Quais são as diferenças entre Keras e PyTorch?
Ambos são estruturas que facilitam o desenvolvimento de implementações de Deep Learning, por isso são chamados de frameworks. Tanto o Keras quando o PyTorch procuram facilitar os processos de:
- preparação de dados
- construção do modelo
- treinamento do modelo
- salvamento e reutilização do modelo
- teste do modelo
- métricas do modelo
Ambos também fazem isso usando a linguagem Python. E nos dois podemos usar GPUs para processar nossos dados.
Até agora sabemos algumas semelhanças.
Os dois são frameworks, ambos procuram facilitar o ciclo de vida do desenvolvimento de Deep Learning, podemos usá-los com Python e com uma GPU.
O que é o Keras?
O Keras era um projeto de uma pessoa que se chama François Chollet. É possível usar o Keras como uma camada superior que permite acessar partes mais complexas de backends para Deep learning. Até hoje ele se descreve como uma API de Deep Learning.
Ao usar o Keras, é possível escolher como backend:
- Theano
- Tensorflow
- CNTK
Como o uso do Keras com o Tensorflow foi ficando cada vez mais frequente, o François foi contratado pela Google e cada vez mais o Keras fica unido com o Tensorflow.
Por ser uma camada superior de acesso, muitas vezes se é necessário acessar camadas mais profundas é preciso entender também do backend que está sendo usado.
O que é o PyTorch?
O PyTorch foi desenvolvido por um grupo de pesquisa de inteligência artificial do Facebook chamado FAIR (Facebook Artificial Intelligence Research). No início havia apenas o Torch e depois envolveram o Torch no Python, fazendo um Python wrapper e foi criado o PyTorch.
Diferentemente do Keras, o Pytorch não é uma camada superior que permite que você use diferentes backends, ele é uma mistura de código que facilita o acesso superior às suas camadas mais profundas com código que reflete a necessidade de acesso à essas camadas profundas.
Neste caso, o PyTorch se torna um framework que mistura o alto nível com o baixo nível, sendo high-level e low-level simultaneamente quanto aos acessos de suas camadas.
Começo por Keras ou por PyTorch?
Depende.
Se considerarmos que o objetivo é o início do aprendizado e que queremos entender como fazemos um modelo de Deep learning, a sugestão é Keras.
O Keras acaba sendo mais popular que o PyTorch por enquanto.
Há mais tutoriais e exemplos de implementações disponíveis na web, escrever o código é mais alto nível, e é o framework mais usado em competições ganhadoras do Kaggle dado a sua praticidade.
E ao ir se aprofundando nos estudos é interessante aprender os backends, então entender o Tensorflow, o Theano, o CNTK.
Podemos ter recomendado o Keras agora, no entanto a comunidade do PyTorch está crescendo e podem acontecer mudanças no futuro.
Mais informações
O início por Keras é uma sugestão.
Também recomendamos que você teste e faça um exemplo simples com cada um deles e entenda qual flui melhor.
No final, o framework mais legal para você estudar também tem a ver com aquele que você se sente mais confortável usando.
Dê uma olhada nos sites e veja qual lhe parece mais interessante:
Também há tutoriais para que você tenha uma idéia do que é usar cada um deles: