1 – TensorFlow
Open source desde 2015, a plataforma TensorFlow permite a qualquer desenvolvedor aplicar o molho secreto do Google em seus próprios projetos, desde que aprenda como.
Você pode instalar TensorFlow localmente ou usar a nuvem. Talvez a maneira mais poderosa de usar o TensorFlow seja configurar um projeto do Google Cloud Platform com o Cloud Machine Learning em conjunto com uma instalação TensorFlow local.
Talvez a maneira mais fácil de usar o TensorFlow seja fazer um Deep Learning AMI no Amazon Linux, que já tem TensorFlow e outras quatro bibliotecas de Deep Learning instaladas.
Entre os recursos e melhorias mais recentes do TensorFlow incluem a integração com o Google Cloud Bigtable como fonte de dados, melhor módulo tk.keras, melhor geração de modelos otimizados para dispositivos móveis, melhor carregamento de dados e processamento de texto, nova busca de dados para memória GPU, melhor desempenho com o Google Cloud TPUs e elevação do modo de execução para o status totalmente suportado.
2 – Keras
A ferramenta é tão simples quanto uma estrutura de rede neural profunda poderia ser – uma linha de código Python por camada e uma chamada para compilar e treinar um modelo, usando modelos seqüenciais. O Keras também oferece suporte a topologias arbitrárias por meio de sua API funcional. Ele usa o TensorFlow, o Theano e o CNTK 2 como backends e obtém um bom suporte para as GPUs deles (e TPUs no Google Cloud com o TensorFlow). O treinamento em Keras usa matrizes Numpy como entrada, embora possa suportar outros formatos por meio de uma interface do gerador Python. A ferramenta tem também uma boa variedade de opções de implantação, que vão desde serviços em nuvem até dispositivos móveis.
3 – PyTorch
O PyTorch é uma rede neural profunda de alto nível que usa o Phyton como linguagem de script e usa um back-end Torch C/ CUCA evoluído. Os recursos de produção do Caffe2 também estão sendo incorporados ao projeto. Ele apresenta redes neurais dinâmicas, ou seja, a própria topologia da rede pode mudar de iteração para iteração durante o treinamento.
Para permitir redes dinâmicas, que são mais fáceis de depurar e mais rápidas de interagir do que as redes estáticas, os programas PyTorch criam um gráfico em tempo real. Em seguida, a retro propagação usa o gráfico criado dinamicamente, calculando automaticamente os gradientes dos estados do tensor salvos. Dado que o PyTorch se baseia na estrutura madura do Torch, ele já possui uma forte coleção de redes neurais, algoritmos de otimização e funções de perda.
4 – Fast.ai
Fast.ai não é apenas um MOOC de aprendizado profundo, é também uma biblioteca de Deep Learning que se baseia no PyTorch. O framework fornece um conjunto de invólucros consistentes e opinativos para construir e treinar modelos, assim como incorpora algumas técnicas de ponta para o treinamento de modelos de aprendizagem profunda. Em outras palavras, o Fast.ai ajuda a construir modelos para competições de Kaggle e para as aplicações reais de produção.
5 – Chainer
Chainer é uma estrutura flexível do Python para redes neurais. Ao contrário dos frameworks que primeiro definem e consertam a topologia de rede neural, a ferramenta usa um esquema de definição por execução. Ou seja, a rede é definida dinamicamente por meio do cálculo real – o cálculo de retro propagação calcula o array de gradiente e chama o otimizador para encontrar os pesos atualizados.
O Chainer usa o CuPy como back-end para computação de GPU, que por sua vez chama CUDA e cuDNN. Em particular, a classe cupy.ndarray é a implementação da matriz GPU para o Chainer. O CuPy suporta um subconjunto de recursos do NumPy com uma interface compatível.
6 – H2O
É uma plataforma de Machine Learning distribuída na memória com escalabilidade linear. Ele suporta os algoritmos estatísticos e de Machine Learning mais amplamente utilizados, incluindo máquinas impulsionadas por gradiente, modelos lineares generalizados e aprendizado profundo. H2O suporta programação em R, Python, Scala, Javan e seus próprios portáteis interativos.
7 – Microsoft Cognitive Toolkit
O Microsoft Cognitive Toolkit – ou mais simplesmente o CNTK – é o kit de ferramentas de Deep Learning que sustenta os recursos de inteligência artificial dos serviços da Microsoft, incluindo Skype, Cortana, Bing e Xbox. Ele lida com dados multidimensionais densos ou esparsos de Python, C + + ou BrainScript e inclui uma ampla variedade de tipos de redes neurais: FeedForward (FFN), Convolucional (CNN), Memória de Curto Prazo Recorrente / Longo (RNN / LSTM), normalização em lote e sequência-a-sequência com atenção, para iniciantes.
8 – MXNet
O MXNet foi desenvolvido sob o guarda-chuva da Apache Software Foundation no início de 2017 e ainda é considerado “incubador” na v1.2.1. Ele possui um bom controle sobre o posicionamento da estrutura de dados em dispositivos, treinamento em várias GPUs, diferenciação automática e camadas de rede neural pré-definidas e otimizadas. Ele tem em Gluon uma interface fácil de usar que também pode ajudar a treinar rapidamente.
9 – Featuretools
O Featuretools é uma biblioteca Python de software livre para engenharia de recursos automatizada. Ele implementa a síntese de recursos profundos. Ou seja, a pessoa pode combinar seus dados brutos com o que sabe sobre os dados para criar recursos significativos para Machine Learning e modelagem preditiva. O recurso fornece APIs para garantir que apenas dados válidos sejam usados para cálculos, mantendo seus vetores de recursos seguros contra problemas comuns de vazamento de etiquetas.
10 – Horovod
Criado no Uber, o Horovod é um framework de treinamento distribuído para o TensorFlow, Keras e PyTorch. O objetivo da ferramenta é tornar o Deep Learning distribuído rápido e fácil de usar.
Horovod usa Open MPI (ou outra implementação MPI) para passar mensagens e a Nvidia Collective Communications Library (NCCL) para sua versão otimizada de anel-allreduce.
11- Fabric for Deep Learning
O Fabric for Deep Learning (ou FfDL) é uma plataforma de Machine Learning que oferece o TensorFlow, Caffe, PyTorch, Keras e H2O como um service no Kubernetes. Ele foi desenvolvido originalmente para o IBM Cloud, mas também pode ser executado em outras nuvens que suportam clusters Kubernetes e localmente no Docker via Kubeadm-DIND.
Seja o primeiro a comentar