11 ferramentas open source para Machine Learning

O prêmio Best of Software Source 2018, da InfoWorld, aponta as principais ferramentas de código aberto para o aprendizado de máquina

Publicado:

Leitura 6 minutos

Brasil Inteligente prevê ações para universalização do acesso à internet

Amazon, Google, Microsoft, Facebook e muitas outras estão dispostas a criar as bibliotecas mais ricas e fáceis para Machine Learning. Confira os vencedores do prêmio “Best of Software Source 2018“, feito pelo portal InfoWorld, e entenda mais sobre as melhores ferramentas open source de Machine e Deep Learning.

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.

As melhores notícias de tecnologia B2B
Acompanhe todas as novidades diretamente na sua caixa de entrada

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.

opensource

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.

Notícias relacionadas

Ver mais Seta para direita