Razões para escolher PyTorch para Deep Learning

Nov 26 2020
PyTorch tem muito a oferecer aos programadores de Deep Learning
Aprendizado profundo e aprendizado de máquina têm sido as palavras da moda entre todos nos últimos anos, e há uma explicação perfeita para isso. O aprendizado de máquina permitiu que os sistemas aprendessem com a experiência, enquanto o aprendizado profundo levou o aprendizado de máquina a uma escala ainda maior com o uso de conjuntos de dados expansivos.

Aprendizado profundo e aprendizado de máquina têm sido as palavras da moda entre todos nos últimos anos, e há uma explicação perfeita para isso.

O aprendizado de máquina permitiu que os sistemas aprendessem com a experiência, enquanto o aprendizado profundo levou o aprendizado de máquina a uma escala ainda maior com o uso de conjuntos de dados expansivos. Este impulso no ML e DL deu origem a vários linguagem de programação s e bibliotecas que veio e permitiu programadores , pesquisadores e cientistas de dados para alcançar o impensável. Alguns dos mais fortes candidatos à melhor biblioteca de Deep Leaning são TensorFlow e PyTorch . Por enquanto, vamos nos concentrar mais no PyTorch.

PyTorch

O Facebook lançou o PyTorch para o cenário de programação em 2016 , que é baseado na biblioteca Torch da Lua .

PyTorch é uma biblioteca de aprendizado de máquina gratuita e de código aberto e está atualmente na v1.4 . O PyTorch foi lançado há quase três anos e passou por várias melhorias para estar em uma posição melhor. O PyTorch foi criado para ser mais rápido e Python do que o resto da competição. Também inclui suporte para computação C, C ++ e Tensor .

Google Trends - PyTorch Interest Over Time

Google Trends (fonte)

Razões para escolher PyTorch para Deep Learning

Antes de pular para as razões pelas quais não devemos dar uma chance ao PyTorch, abaixo estão alguns dos projetos e bibliotecas de Deep Learning únicos e emocionantes que PyTorch ajudou a dar à luz:

CheXNet: Detecção de pneumonia em nível de radiologista em radiografias de tórax com aprendizado profundo.

Horizon: uma plataforma para aprendizagem por reforço aplicado (Applied RL)

PYRO : Pyro é uma linguagem de programação probabilística universal (PPL) escrita em Python e suportada pelo PyTorch no backend.

Kaolin da NVIDIA como uma biblioteca PyTorch para acelerar o 3D Deep Learning

TorchCV para implementar a visão computacional em seus projetos

PyDLT como um conjunto de ferramentas para aprendizado profundo

● biblioteca fastai otimiza seu processo de treinamento de rede neural

e muito mais.

Esses são alguns frameworks e projetos desenvolvidos com base no TensorFlow e no PyTorch. Você pode encontrar mais no Github e nos sites oficiais da TF e PyTorch.

Em um mundo de TensorFlow , o PyTorch é capaz de se manter sozinho com seus pontos fortes. Abaixo estão alguns dos destaques que explicam por que o PyTorch seria um ajuste adequado para seus Projetos de Aprendizado Profundo:

1. PyTorch é mais pitônico

PyTorch é um framework que nos permite escrever código de uma forma mais pítônica . Além disso, o tipo de dinamismo que ele suporta usando código python ingênuo é notável.

PyTorch tende a se inclinar mais para Python quando comparado com qualquer outra biblioteca. É porque PyTorch é relativamente fácil de entender e parece mais natural , nativo e alinhado com o código Python .
Para quem já trabalhou com Python, eles se sentirão em casa com tudo com PyTorch, como funções de perda, otimizadores, transformações, carregadores de dados e muito mais classes.

O código para cada exemplo PyTorch (Vision e NLP) compartilha uma estrutura comum:

Exemplo de PyTorch (fonte)
Exemplo de PyTorch (fonte)

2. Fácil de usar

Quando comparado ao PyTorch, o TensorFlow tem uma curva de aprendizado relativamente mais íngreme. Os programadores de Python precisarão de menos tempo para se ajustar ao PyTorch, pois para eles provavelmente parecerá uma extensão do framework do Python. A depuração fácil e um grande conjunto de APIs simples desempenham um papel fundamental em tornar o PyTorch mais fácil de entender para os programadores.

3. Bibliotecas úteis

Com grande apoio da comunidade vem grande entusiasmo e contribuições para a comunidade. Usando o PyTorch, os programadores foram em frente e criaram alguns projetos que estão disponíveis para qualquer pessoa interessada em dar uma olhada. Uma lista combinada de um punhado desses projetos em vários domínios, como Visão Computacional , Processamento de Linguagem Natural e Bibliotecas Geradoras, está abaixo:

● pro_gan_pytorch para aproveitar os recursos do ProGAN

● BoTorch para usar otimizações bayesianas

● ParlAI para compartilhar, treinar e testar modelos de diálogo

● OpenNMT-py para implementação de sistema de tradução automática neural

● MUSE para embeddings de palavras multilíngues

● skorch para fundir código scikit-learn com PyTorch

4. Paralelismo de dados sem esforço

O paralelismo de dados no PyTorch é eficiente e permite dividir os dados em lotes , que são enviados a várias GPUs para processamento. Usando essa técnica, o PyTorch pode mudar uma parte significativa da carga de trabalho da CPU para a GPU. Para paralelismo de dados , ele usa a classe torch.nn.DataParallel.

Distributed Data-Parallel é um recurso da PyTorch que você pode combinar com o Data-Parallel para lidar com casos de uso que exigem grandes conjuntos de dados e modelos grandes o suficiente para uma única GPU. Quando todas as tarefas no pool de GPUs são concluídas, o resultado é coletado, mesclado e enviado de volta para você pelo Data-Parallel.

Pytorch Data Parallel (fonte)

5. Excelente para pesquisadores

PyTorch é uma dádiva de Deus para pesquisadores , pois provou ser usado por pelo menos 70% dos pesquisadores que trabalham em frameworks. Apesar de ser a escolha líder do setor para o desenvolvimento de aplicativos, o TensorFlow ainda não alcançou o PyTorch nesse aspecto. Uma razão por trás disso pode ser a simplicidade e facilidade de uso que o PyTorch tem a oferecer com melhor desempenho.

6. Pronto para celular

A partir da v1.3 , PyTorch adicionou suporte para implantação em dispositivos Android e iOS . O recurso traz todos os benefícios do PyTorch para dispositivos de ponta para atender a aplicativos que exigem latências mais baixas. O objetivo por trás do PyTorch mobile é reduzir o ciclo de desenvolvimento, oferecendo suporte às APIs básicas para plataformas móveis, eliminando a necessidade de exportar para estruturas móveis como Caffe2. Isso permite uma redução significativa no espaço ocupado no dispositivo. Suporte para ajuste preciso de scripts de construção também foi adicionado para maior controle.

Comece a usar o PyTorch Mobile:

Comece no Android

Comece no iOS

7. Depuração fácil

O PyTorch é muito fácil de depurar quando você tem a opção de acessar cada linha e a maneira usual de imprimir após cada linha. A cereja do bolo é que os objetos e a operação no PyTorch contêm os dados reais e não as referências simbólicas, facilitando a vida dos programadores. Alguns dos depuradores padrão para PyTorch são:

● ipdb

● pdb

● PyCharm

Digamos, por exemplo, que você possa usar a função “pdb.set_trace ()” do pdb para colocar pontos de interrupção em seu código para detalhar a raiz do erro. Além disso, os gráficos computacionais dinâmicos do PyTorch permitem modificação dinâmica e depuração rápida enquanto seu código é executado.

Depuração PyTorch com pdb (fonte)

8. Suporte para ONNX

O Open Neural Network Exchange atua como um ecossistema de código aberto para Inteligência Artificial , fornecendo um terreno comum para os programadores de IA trabalharem de forma intercambiável em uma variedade de estruturas, ferramentas e bibliotecas. O ONNX faz isso fornecendo um formato de arquivo padrão que funciona em várias estruturas e hardware.

Quando se trata de PyTorch, o ONNX vem com suporte integrado para PyTorch e uma ampla variedade de outras estruturas, como Caffe2, MXNet, TensorFlow e muito mais. O ONNX torna mais fácil para os programadores de IA exportar e migrar seus modelos PyTorch para um formato aberto que outras estruturas podem integrar.

Suporte PyTorch nativo ONNX (fonte)

9. Suporte para gráficos computacionais dinâmicos

Ao visualizar cada modelo como um gráfico acíclico direcionado, o PyTorch oferece uma abordagem dinâmica para definir gráficos de computação. Enquanto outras estruturas permitem a definição de um gráfico estático, o PyTorch suporta a criação de um gráfico de computação dinâmica onde você é livre para manipulá-lo em qualquer lugar. Um desses elementos que mais se beneficia desse aspecto dinâmico do PyTorch são as redes neurais recorrentes, entre muitos outros.

10. Forte apoio da comunidade

PyTorch também oferece excelente suporte à comunidade . A casa do PyTorch possui documentação detalhada sobre cada um de seus recursos. Todas as atualizações mais recentes da biblioteca são bem explicadas. Com cada nova adição, tutoriais de suporte e recursos relacionados também podem ser encontrados para obter aquela sensação prática valiosa.

O PyTorch Forum é um lugar excelente e altamente recomendado para iniciantes para postar suas perguntas e veteranos para compartilhar suas idéias com outros programadores. Com mais de cem postagens por dia, a comunidade é bastante ativa e incentiva as pessoas a embarcarem no PyTorch.

Aqui estão alguns da comunidade de desenvolvedores PyTorch , recursos e tutoriais para contribuir, aprender e tirar suas dúvidas -

● Formulário de discussão PyTorch

● Comunidade do PyTorch Slack

● Exemplos PyTorch

● PyTorch Docs

● Tutoriais do Github Pytorch

● Cheatsheet para iniciantes do PyTorch

● Notas de versão do PyTorch

● Aprendizado profundo com Pytorch: um blitz de 60 minutos

● Usando dados do tutorial do Google Drive no Colab

● Documentos e tutoriais em chinês

● Tutoriais em coreano

Conclusão

Com um vasto número de recursos intuitivos para programadores de Deep Learning, o PyTorch tem muito a oferecer às pessoas em uma ampla gama de níveis de habilidade. Apesar de fornecer um ponto de entrada fácil, o PyTorch não deve ser considerado levianamente, pois oferece recursos que não apenas oferecem melhor desempenho em certos aspectos, mas também oferecem recursos exclusivos adicionais. Discutimos alguns dos recursos mais comentados do PyTorch para ajudá-lo a fazer aquele salto para o PyTorch sobre o qual você era tão cético.

Mais leituras interessantes -

Espero que você tenha achado este artigo útil! Abaixo estão algumas leituras interessantes, espero que você goste delas também -

sobre o autor

Claire D . é criador e comerciante de conteúdo na Digitalogy - um mercado de sourcing de tecnologia e combinação customizada que conecta pessoas a desenvolvedores e designers pré-selecionados e de primeira linha com base em suas necessidades específicas em todo o mundo. Conecte-se com Digitalogy no Linkedin , Twitter , Instagram .