Artigos > Data Science

Principais frameworks de deep learning em 2021

Allan Segovia Spadini
Allan Segovia Spadini

Quando você pesquisa sobre deep learning aparecem nomes como Tensorflow e Pytorch. Porém, será que essas são as únicas opções de frameworks existentes? E qual framework devemos usar para o nosso projeto? Vou responder a estas questões neste artigo.

TensorFlow

O TensorFlow certamente é a biblioteca mais popular. Quando pesquisamos por este termo no github encontramos cerca de 100 mil repositórios e 1 milhão de commits. Essa biblioteca criada pelo Google é aberta e possibilita controlar todos os aspectos de um sistema de aprendizado de máquina.

Além disso, pode rodar em múltiplas plataformas, como CPUs, GPUs e TPUs. Normalmente a Tensorflow é utilizada com a linguagem Python, mas existem versões experimentais para C++, Java e Go. Além de versões criadas pela comunidade para C# e Julia.

Os recursos para a biblioteca a tornam ainda mais poderosa. O TensorBoard.dev é um serviço gratuito que permite visualizar e compartilhar a estrutura da sua rede neural, a acurácia e os hiperparâmetros.

O TensorFlow Serving é outra parte importante. Essa ferramenta foi projetada para ambientes de produção e permite aos usuários servir os seus modelos com facilidade. Já o TensorFlow Lite permite que você implemente modelos de machine learning em dispositivos móveis e de Internet das Coisas.

Keras

Keras é uma API de deep learning escrita em Python. Essa ferramenta é de alto nível (mais próxima da linguagem humana) e foi feita originalmente para tornar a utilização de frameworks como o Theano mais intuitiva. Posteriormente, permitiu o uso de outros frameworks como o TensorFlow. Atualmente é possível utilizar o tf.keras que permite a construção rápida de modelos com o TensorFlow por trás dos panos.

Se você pretende iniciar os estudos sobre deep learning e possui interesse no TensorFlow o ideal é começar pelo Keras. Com o Keras é possível trabalhar com temas como visão computacional, processamento de linguagem natural, séries temporais, aprendizagem por reforço e diversos outros. Apenas para aplicações mais avançadas, como inovações propostas em artigos científicos, que envolvem o estado da arte de deep learning é que pode ser necessário descer um nível e utilizar diretamente o TensorFlow.

Pytorch

PyTorch é outra biblioteca popular do Facebook que permite a implementação de modelos de deep learning com facilidade. Sua popularidade é ainda maior na comunidade científica e é aí que são desenvolvidos algoritmos mais avançados. Em sites como o Papers with code, onde a comunidade tenta disponibilizar código relacionado a artigos científicos, o Pytorch é a ferramenta preferida. Além disso, quando pesquisamos no Google Trends vemos que no decorrer dos anos a popularidade deste framework vem crescendo em relação ao TensorFlow.

Comparar o TensorFlow e o Pytorch é uma tarefa difícil já que os dois possuem muitos pontos interessantes. Um dos pontos principais é que no TensorFlow temos que criar grafos computacionais estáticos no tempo de compilação. Isso significa que todas as condições e interações dentro da estrutura das redes neurais deve ser definida antes de rodar. Esses quesitos são importantes para a eficiência computacional.

Porém, muitas das novas arquiteturas de redes neurais mudam dinamicamente. Embora atualmente exista a opção enable_eager_execution() dentro do TensorFlow temos que no Pytorch a mudança dinâmica ocorre de forma mais intuitiva. A cada época do treinamento de uma rede neural é criado um grafo que pode mudar em uma época seguinte. Por outro lado, o Pytorch perde no quesito de visualização.

Esses processos são possíveis, mas não existem ferramentas tão boas quanto o tensorboard. Na verdade existe uma forma de tentar gerar a visualização da rede criada no Pytorch no TensorBoard. Na parte de entrega dos modelos o Pytorch uniu forças com o Caffe2 que seria o equivalente do TensorFlow Serving para a entrega de modelos. Assim, é possível pensar no Pytorch tanto para a pesquisa quanto para a produção.

Microsoft CNTK

A caixa de ferramentas cognitivas da Microsoft ou Microsoft Cognitive Toolkit (CNTK) é uma ferramenta de código aberto para aplicações não comerciais de deep learning. A CNTK permite que os usuários construam modelos populares de deep learning como as redes neurais convolucionais, LSTMs, dentre outros.

Pode ser utilizado com a sua linguagem de descrição de modelos (BrainScript) ou ser incluso com uma biblioteca em programas Python, C# ou C++. Um ponto interessante é que este é dos primeiros frameworks a dar suporte ao Open Neural Network Exchange (ONNX). O ONNX é uma representação de modelos de código aberto. Com o ONNX, é possível utilizar um modelo construído com o CNTK através do Pytorch, por exemplo.

MXNet

O Apache MXNET se destaca em relação aos demais pelo número de linguagens suportadas. Essas linguagens incluem o C++, Python, Java, Julia, Matlab, JavaScript, Go, R, Scala, Perl e Wolfram Language. O ecossistema do MXNET inclue o GluonCV, para a visão computacional, o GluonNLP para o processamento de linguagem natural, o GluonTS, para séries temporais e o AutoGluon para o AutoML.

Além disso, existe o Keras-MXNet que permite o uso Keras por cima do MXNet. Também existem opções como o MXBoard para visualização no TensorBoard e o MXNet Model Server para a servir modelos exportados do MXNet ou do ONNX. Apesar de menos conhecida, a MXNet também possui integração com Amazon AWS.

Sonnet

Se você precisa de uma alternativa um pouco mais avançada que o Keras, o Sonnet pode ser o framework ideal. Esse framework foi desenvolvido como uma camada acima do TensorFlow, assim como o Keras. O diferencial dele é ter sido desenvolvido por pesquisadores do Google DeepMind. Esse é um dos laboratórios de pesquisa em inteligência artificial mais importantes do mundo. Ele resolve alguns dos problemas do TensorFlow através da utilização de módulos que representam uma parte da rede neural. Isso torna o framework flexível já que o usuário pode conectar esses módulos e também criar os seus próprios módulos.

Chainer

Chainer é um framework que possui o poder do Pytorch já as redes podem ser definidas a cada rodada. O framework possui extensões como Chainer RL focada em algoritmos de aprendizagem por reforço e o Chainer CV para visão computacional. Essa biblioteca é suportada pela IBM, Intel, Microsoft, Nvidia e AWS. Porém, sua comunidade é relativamente pequena.

DL4J

Se você faz parte do mundo Java existe a DL4J. Essa biblioteca é escrita em Java e é suportada por qualquer linguagem de programação que utilize uma máquina virtual Java. Exemplos, são as linguagens, Scala, Clojure e Kotlin. A biblioteca também suporta uma grande variedade de redes neurais. Por fim, ela pode ajudar a trazer modelos construídos utilizando outros frameworks para aplicações em Java.

Conclusão

A escolha de frameworks entre tantas opções é bastante difícil. Mas levando a questão do tamanho das comunidades, ficamos entre o TensorFlow e o Pytorch. Aprender o Keras com o TensorFlow por trás dos panos, é uma escolha acertada para iniciantes. Em termos de dificuldade o Pytorch fica no meio do caminho entre o TensorFlow e o Keras. Porém, é uma escolha muito interessante para você que precisa das descobertas mais recentes focadas no deep learning. Se você quiser iniciar com o Pytorch você pode começar por este curso aqui:

Redes Neurais: Deep Learning com Pytorch.

E aí? Qual framework é o seu preferido? Conta pra gente nos comentários.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software

Artigos > Data Science

Cursos profissionais de Data Science é na Alura, comece agora!

  • 1265 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

Premium

  • 1265 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

12X
R$75
à vista R$900
Matricule-se

Premium Plus

  • 1265 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

12X
R$100
à vista R$1.200
Matricule-se

Max

  • 1265 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

12X
R$120
à vista R$1.440
Matricule-se
Conheça os Planos para Empresas

Acesso completo
durante 1 ano

Estude 24h/dia
onde e quando quiser

Novos cursos
todas as semanas