8 Dos melhores frameworks para deep learning em 2020

Imagem: Frameworks para aprender Deep learning em quadros

Um framework para deep learning consiste na combinação de interfaces, bibliotecas e ferramentas para definir e treinar modelos de Machine Learning de forma rápida e precisa.

Porque deep learning usa uma grande quantidade de dados não estruturados e não textuais, é necessário um Framework que controle a interação entre as “camadas” (layers) e torne o desenvolvimento de modelos rápido ao aprender com os dados inseridos e tomar decisões autónomas.

Se você estiver interessado em aprender deep learning em 2020, considere usar um dos frameworks que indicamos abaixo. Lembre-se de escolher um que ajude a alcançar seus objetivos e visão.

TensorFlow

Imagem: TensorFlow logo

Quando se fala sobre deep learning, TensorFlow é muitas vezes o primeiro Framework mencionado. Altamente popular, este Framework não é só usado pela Google – empresa responsável pela sua criação – mas também por outras empresas como Dropbox, eBay, Airbnb, Nvidia e tantas outras.

TensorFlow pode ser usado para desenvolver API’s em alto e baixo níveis, permitindo que você rode as aplicações em quase todo o tipo de dispositivos. Embora python seja sua linguagem primaria, a interface do Tensoflow pode ser acessada e controlada usando outras linguagens de programação tais como C++, java, Julia e JavaScript.

Por ser de código-aberto, TensorFlow permite que você faça diversas integrações com outras API’ e tenha um suporte rápido e atualizações da comunidade. Sua dependência em “gráficos estáticos” para computação permite que você faça cálculos imediatos ou salve as operações para acesso noutro momento. Estes motivos, somados á possibilidade de você poder “assistir” o desenvolvimento de sua rede neural através do TensorBoard, fazem do TensorFlow o framework mais popular para deep learning.

Número de contribuidores no GitHub: 2,459

PyTorch

Imagem: PyTorch logo

O pyTorch é um framework desenvolvido pela Facebook para dar suporte ao funcionamento de seus serviços. Desde que se tornou de código-aberto, este framework tem sido usado por outras empresas, além da Facebook, tais como a salesforce e Udacity.

Este framework opera gráficos atualizados dinamicamente, permitindo que você faca mudanças na arquitetura de seu conjunto de dados durante seu processamento. Com o PyTorch é mais simples desenvolver e treinar uma rede neural, mesmo sem nenhuma experiência em deep learning.

Sendo código-aberto e baseado em python, você pode fazer integrações simples e rápidas ao PyTorch. Este é ainda um framework simples de aprender, usar e depurar. Em caso de dúvidas, você pode contar com o grande suporte e atualizações das duas comunidades – comunidade python e comunidade PyTorch. Embora a documentação em português e número de membros falantes do português na comunidade PyTorch seja pequeno, uma analise dos códigos compartilhados permite entender com facilidade o tema em discussão.

Número de contribuidores no GitHub: 1,358

Theano

Imagem: Theano logo

Theano é uma biblioteca baseada em python que permite definir, otimizar e rodar expressões matemáticas de forma rápida e fácil.

Embora possa rodar em CPU’s, Theano é mais rápido se usado com GPU, especialmente se implementado com C e for usado para processar grandes quantidades de dados.

Theano é também rápido porque uma rede neutra pode ser representada (transformada) em matrizes e o uso de Nympy (ou outras integrações) para a computação das matrizes acelera a geração de outputs1.

Número de contribuidores no GitHub: 332

Apache MxNet

Imagem: Apache MxNet logo

Pela sua grande escalabilidade, alta performance, rápida resolução de problemas e suporte avançado a GPUs, este framework foi criado pela Apache para ser usado em grandes projetos industriais.

O MxNet pode ser usado em vários dispositivos e é suportado por várias linguagens de programação tais como Java, R, JavaScript, Scala e Go.

Embora o número de usuários e membros na sua comunidade seja baixo, o MxNet tem uma documentação bem escrita e grande potencial de crescimento, particularmente agora que a Amazon selecionou este framework como a ferramenta primária para machine learning na AWS.

Número de contribuidores no GitHub: 785

Microsoft Cognitive Toolkit (previously CNTK)

Imagem: Microsoft Cognitive Toolkit logo

Se você está pensando em desenvolver aplicativos ou serviços que rodem na Azure (serviços de nuvem da Microsoft), o Microsoft Cognitive Toolkit é o framework a selecionar para seus projetos de deep learning. Este é de código-aberto e suportado por linguagens de programação como python, C++, C#, Java, entre outras.

Este framework foi desenvolvido para “pensar como o cérebro humano”, pelo que pode processar grandes quantidades de dados não estruturados, simultaneamente oferecendo um rápido treinamento e uma arquitetura intuitiva.

Ao selecionar este framework – o mesmo por trás do Skype, Xbox e Cortana – você terá uma boa performance de suas aplicações, escalabilidade e simples integração com o Azure. Contudo, se comparado ao TensorFlow ou Pytorch, o número de membros em sua comunidade e suporte é reduzido.

Número de contribuidores no GitHub: 198

Keras

Imagem: Keras logo

Assim como o PytTorch e Theano, Keras é uma biblioteca baseada no python para projetos com grande quantidade de dados.

A API do keras funciona em alto nível e permite integrações com API’s de nível baixo tais como o TensorFlow, Theano e Microsoft Cognitive Toolkit.

Algumas vantagens de usar o keras são sua simplicidade de aprendizagem – sendo o framework recomendado para iniciantes em deep learning; sua velocidade de implantação; ter um grande suporte da comunidade python e de comunidades dos outros frameworks com quais é integrado; e funcionamento em vários dispositivos e plataformas, bem como em múltiplas GPU’s.

Número de contribuidores no GitHub: 816

Apple CORE ML

Imagem: Apple CORE ML logo

O Core ML foi desenvolvido pela Apple para suportar seu ecossistema – IOS, Mac Os e iPad OS.

Sua API funciona em baixo nível, fazendo um bom uso dos recursos de CPU’s e GPU’s, o que permite que modelos e aplicações criadas continuem rodando mesmo sem conexão a internet, o que reduz as “pegadas na memoria” e consumo de energia do dispositivo.

Com o Core ML você pode treinar modelos de deep learning importados de quase todos os frameworks baseados em python, tais como Keras, TensorFlow, Caffe, ONNX, entre outros. Esta funcionalidade permite que você dê mais performance às suas aplicações em qualquer dispositivo – smartphones, tablets ou computadores.

Número de contribuidores no GitHub: 60

Imagem: ONNYX logo

O último framework na nossa lista é o ONNX. Este framework surgiu da colaboração entre a Microsoft e Facebook, com o objetivo de simplificar o processo de transferência e construção de modelos entre diferentes frameworks, ferramentas, runtimes e compiladores.

O ONNX define um tipo comum de ficheiro que pode rodar em várias plataformas, enquanto faz uso dos benefícios das API’s de baixo nível, tais como do Microsoft Cognitive Toolkit, MxNet, Caffe e (usando conversores) do Tensorflow e Core ML.

O principio por trás do ONNX é treinar um modelo em uma stack e implementar usando outras inferências e previsões.

Número de contribuidores no GitHub: 115

Notas Finais

Este é um resumo dos melhores frameworks para deep learning. Existem diversos frameworks para esta finalidade, gratuitos ou pagos. Para selecionar o melhor para seu projeto, primeiro saiba para que plataforma você estará desenvolvendo sua aplicação. Frameworks generalistas como o TensorFlow e Keras são as melhores opções para iniciar. Mas se você precisa usar vantagens especificas do SO ou dispositivo, então o Core ML e Microsoft Cognitive Toolkit talvez sejam as melhores opções. Existem outros frameworks direcionados para dispositivos Android, outras máquinas e propósitos específicos que não foram mencionados nesta lista. Caso este último grupo te interesse, sugerimos fazer uma busca pela informação destes no Google ou outros sites de machine learning.

Anotações

  1. Computadores processam números (matrizes) mais rápido que outros tipos de dados.

Reaja!

Junte-se a conversa deste tópico no Facebook e Instagram.

Artigos similares

Aprenda mais sobre a IA com nossa newsletter

Assine nossa lista de emails hoje e passe a receber as mais recentes informações sobre IA e outras tecnologias no seu email