Conteúdo[Esconder][Mostrar]
Um framework para deep learning consiste em uma combinação de interfaces, bibliotecas e ferramentas para definir e treinar modelos de Machine Learning com rapidez e precisão.
Como o aprendizado profundo usa uma grande quantidade de dados não estruturados e não textuais, você precisa de uma estrutura que controle a interação entre as “camadas” e agilize o desenvolvimento do modelo aprendendo com os dados de entrada e tomando decisões autônomas.
Se você estiver interessado em aprender sobre deep learning em 2021, considere usar uma das estruturas indicadas abaixo. Lembre-se de escolher um que irá ajudá-lo a alcançar seus objetivos e visão.
1. TensorFlow
Ao falar sobre aprendizado profundo, TensorFlow é frequentemente o primeiro framework mencionado. Muito popular, esse framework não é usado apenas pelo Google – empresa responsável por sua criação – mas também por outras empresas como Dropbox, eBay, Airbnb, Nvidia e tantas outras.
O TensorFlow pode ser usado para desenvolver APIs de alto e baixo nível, permitindo que você execute aplicativos em praticamente qualquer tipo de dispositivo. Embora o Python seja sua linguagem principal, a interface do Tensoflow pode ser acessada e controlada usando outras linguagens de programação, como C++, Java, Julia e JavaScript.
Sendo de código aberto, o TensorFlow permite que você faça várias integrações com outras APIs e obtenha suporte e atualizações rápidos da comunidade. Sua dependência de “gráficos estáticos” para computação permite que você faça cálculos imediatos ou salve operações para acesso em outro momento. Esses motivos, somados à possibilidade de você “observar” o desenvolvimento de sua rede neural por meio do TensorBoard, tornam o TensorFlow o framework mais popular para aprendizado profundo.
Características principais
- Open-source
- Flexibilidade
- Depuração rápida
2. PyTorch
O PyTorch é um framework desenvolvido pelo Facebook para dar suporte à operação de seus serviços. Desde que se tornou de código aberto, essa estrutura tem sido usada por outras empresas além do Facebook, como Salesforce e Udacity.
Essa estrutura opera gráficos atualizados dinamicamente, permitindo que você faça alterações na arquitetura do seu conjunto de dados à medida que o processa. Com o PyTorch é mais simples desenvolver e treinar uma rede neural, mesmo sem nenhuma experiência em deep learning.
Sendo de código aberto e baseado em Python, você pode fazer integrações simples e rápidas ao PyTorch. É também uma estrutura simples de aprender, usar e depurar. Se você tiver dúvidas, pode contar com o excelente suporte e atualizações de ambas as comunidades – comunidade Python e comunidade PyTorch.
Características principais
- Fácil de aprender
- Suporta GPU e CPU
- Conjunto rico de APIs para estender bibliotecas
3. Apache MX Net
Devido à sua alta escalabilidade, alto desempenho, solução rápida de problemas e suporte avançado a GPU, esse framework foi criado pela Apache para uso em grandes projetos industriais.
O MXNet inclui a interface Gluon que permite que desenvolvedores de todos os níveis de habilidade comece com o aprendizado profundo na nuvem, em dispositivos de borda e em aplicativos móveis. Em apenas algumas linhas de código Gluon, você pode construir regressão linear, redes convolucionais e LSTMs recorrentes para detecção de objetos, reconhecimento de fala, recomendação e personalização.
O MXNet pode ser usado em vários dispositivos e é suportado por vários linguagens de programação como Java, R, JavaScript, Scala e Go. Embora o número de usuários e membros em sua comunidade seja baixo, o MXNet possui documentação bem escrita e grande potencial de crescimento, principalmente agora que a Amazon selecionou essa estrutura como a principal ferramenta para Machine Learning na AWS.
Características principais
- 8 ligações de idioma
- Treinamento distribuído, suportando sistemas multi-CPU e multi-GPU
- Front-end híbrido, permitindo alternar entre os modos imperativo e simbólico
4. Kit de ferramentas cognitivas da Microsoft
Se você está pensando em desenvolver aplicativos ou serviços executados no Azure (serviços de nuvem da Microsoft), o Microsoft Cognitive Toolkit é a estrutura a ser selecionada para seus projetos de aprendizado profundo. Este é de código aberto e suportado por linguagens de programação como Python, C++, C#, Java, entre outras. Essa estrutura foi projetada para “pensar como o cérebro humano”, para que possa processar grandes quantidades de dados não estruturados, oferecendo treinamento rápido e uma arquitetura intuitiva.
Ao selecionar esta estrutura – a mesma por trás do Skype, Xbox e Cortana – você obterá bom desempenho de seus aplicativos, escalabilidade e integração simples com o Azure. No entanto, quando comparado ao TensorFlow ou PyTorch, o número de membros em sua comunidade e o suporte são reduzidos.
O vídeo a seguir oferece uma introdução completa e exemplos de aplicação:
Características principais
- Documentação clara
- Suporte da equipe da Microsoft
- Visualização direta do gráfico
5. Keras
Assim como o PyTorch, o Keras é uma biblioteca baseada em Python para projetos com uso intensivo de dados. A API keras funciona em alto nível e permite integrações com APIs de baixo nível, como TensorFlow, Theano e Microsoft Cognitive Toolkit.
Algumas vantagens do uso do keras são sua simplicidade para aprender – sendo o framework recomendado para iniciantes em deep learning; sua velocidade de implantação; tendo grande apoio da comunidade python e das comunidades dos demais frameworks com os quais está integrado.
Keras contém várias implementações do blocos de construção de redes neurais como camadas, funções objetivas, funções de ativação e otimizadores matemáticos. Seu código está hospedado no GitHub e há fóruns e um canal de suporte Slack. Além do suporte para padrão redes neurais, Keras oferece suporte para Redes Neurais Convolucionais e Redes Neurais Recorrentes.
Keras permite modelos de aprendizagem profunda para ser gerado em smartphones em iOS e Android, em uma máquina virtual Java ou na web. Também permite o uso de treinamento distribuído de modelos de aprendizado profundo em clusters de Unidades de Processamento Gráfico (GPU) e Unidades de Processamento Tensor (TPU).
Características principais
- Modelos pré-treinados
- Suporte a vários back-ends
- Suporte à comunidade amigável e grande
6. Apple CoreML
O Core ML foi desenvolvido pela Apple para dar suporte ao seu ecossistema – IOS, Mac OS e iPad OS. Sua API funciona em baixo nível, aproveitando bem os recursos de CPU's e GPU's, o que permite que os modelos e aplicativos criados continuem funcionando mesmo sem conexão com a internet, o que reduz o “pegada de memória” e o consumo de energia do dispositivo.
A maneira como o Core ML faz isso não é exatamente criando outra biblioteca de aprendizado de máquina otimizada para execução em iphones/ipads. Em vez disso, o Core ML é mais como um compilador que pega especificações de modelo e parâmetros treinados expressos com outro software de aprendizado de máquina e os converte em um arquivo que se torna um recurso para um aplicativo iOS. Essa conversão para um modelo Core ML acontece durante o desenvolvimento do aplicativo, não em tempo real enquanto o aplicativo está sendo usado, e é facilitada pela biblioteca python coremltools.
O Core ML oferece desempenho rápido com fácil integração de aprendizado de máquina modelos em aplicativos. Ele suporta aprendizado profundo com mais de 30 tipos de camadas, bem como árvores de decisão, máquinas de vetor de suporte e métodos de regressão linear, todos construídos sobre tecnologias de baixo nível, como Metal e Accelerate.
Características principais
- Fácil de integrar em aplicativos
- Utilização otimizada dos recursos locais, não necessitando de acesso à internet
- Privacidade: os dados não precisam sair do dispositivo
7. Onnx.
O último framework da nossa lista é o ONNX. Este framework surgiu de uma colaboração entre a Microsoft e o 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 de arquivo comum que pode ser executado em várias plataformas, enquanto aproveita os benefícios de APIs de baixo nível, como as do Microsoft Cognitive Toolkit, MXNet, Caffe e (usando conversores) Tensorflow e Core ML. O princípio por trás do ONNX é treinar um modelo em uma pilha e implementá-lo usando outras inferências e previsões.
A LF AI Foundation, uma suborganização da Linux Foundation, é uma organização dedicada a construir um ecossistema para apoiar de código aberto inovação em inteligência artificial (IA), aprendizado de máquina (ML) e aprendizado profundo (DL). Ele adicionou o ONNX como um projeto de nível de pós-graduação em 14 de novembro de 2019. Essa mudança do ONNX sob a égide da LF AI Foundation foi vista como um marco importante no estabelecimento do ONNX como um padrão de formato aberto neutro de fornecedor.
O ONNX Model Zoo é uma coleção de modelos pré-treinados em Deep Learning disponíveis no formato ONNX. Para cada modelo existem Cadernos Jupyter para treinamento de modelo e realização de inferência com o modelo treinado. Os notebooks são escritos em Python e contêm links para o conjunto de dados de treinamento e referências ao documento científico original que descreve a arquitetura do modelo.
Características principais
- Interoperabilidade da estrutura
- Otimização de hardware
Conclusão
Este é um resumo dos melhores frameworks para deep learning. Existem vários frameworks para esse fim, gratuitos ou pagos. Para selecionar o melhor para o seu projeto, primeiro saiba para qual plataforma você irá desenvolver sua aplicação.
Estruturas gerais como TensorFlow e Keras são as melhores opções para começar. Mas se você precisar usar vantagens específicas do sistema operacional ou do dispositivo, o Core ML e o Microsoft Cognitive Toolkit podem ser as melhores opções.
Existem outros frameworks voltados para dispositivos Android, outras máquinas e propósitos específicos que não foram mencionados nesta lista. Se o último grupo lhe interessar, sugerimos fazer uma busca por suas informações no Google ou em outros sites de aprendizado de máquina.
Deixe um comentário