PyTorch - Introdução

PyTorch é definido como uma biblioteca de aprendizado de máquina de código aberto para Python. Ele é usado para aplicativos como processamento de linguagem natural. É inicialmente desenvolvido pelo grupo de pesquisa de inteligência artificial do Facebook e o software Pyro da Uber para programação probabilística que é construído sobre ele.

Originalmente, o PyTorch foi desenvolvido por Hugh Perkins como um wrapper Python para o LusJIT baseado no framework Torch. Existem duas variantes do PyTorch.

PyTorch reprojeta e implementa Torch em Python, enquanto compartilha as mesmas bibliotecas C principais para o código de back-end. Os desenvolvedores do PyTorch ajustaram esse código de back-end para executar o Python com eficiência. Eles também mantiveram a aceleração de hardware baseada em GPU, bem como os recursos de extensibilidade que tornaram o Torch baseado em Lua.

Características

Os principais recursos do PyTorch são mencionados abaixo -

Easy Interface- PyTorch oferece API fácil de usar; portanto, é considerado muito simples de operar e roda em Python. A execução do código neste framework é bastante fácil.

Python usage- Esta biblioteca é considerada Pythonic, que se integra perfeitamente com a pilha de ciência de dados Python. Assim, pode alavancar todos os serviços e funcionalidades oferecidos pelo ambiente Python.

Computational graphs- PyTorch fornece uma excelente plataforma que oferece gráficos computacionais dinâmicos. Assim, um usuário pode alterá-los durante o tempo de execução. Isso é muito útil quando um desenvolvedor não tem ideia de quanta memória é necessária para criar um modelo de rede neural.

PyTorch é conhecido por ter três níveis de abstração, conforme mostrado abaixo -

  • Tensor - array n-dimensional imperativo que roda em GPU.

  • Variável - Nó no gráfico computacional. Isso armazena dados e gradiente.

  • Módulo - Camada de rede neural que armazenará o estado ou pesos aprendíveis.

Vantagens do PyTorch

A seguir estão as vantagens do PyTorch -

  • É fácil depurar e entender o código.

  • Inclui muitas camadas como tocha.

  • Inclui muitas funções de perda.

  • Pode ser considerado uma extensão NumPy para GPUs.

  • Permite construir redes cuja estrutura depende da própria computação.

TensorFlow vs. PyTorch

Veremos as principais diferenças entre TensorFlow e PyTorch abaixo -

PyTorch TensorFlow

PyTorch está intimamente relacionado à estrutura Torch baseada em lua que é ativamente usada no Facebook.

O TensorFlow é desenvolvido pelo Google Brain e usado ativamente no Google.

PyTorch é relativamente novo em comparação com outras tecnologias competitivas.

O TensorFlow não é novo e é considerado uma ferramenta portátil por muitos pesquisadores e profissionais do setor.

PyTorch inclui tudo de maneira imperativa e dinâmica.

O TensorFlow inclui gráficos estáticos e dinâmicos como uma combinação.

O gráfico de computação no PyTorch é definido durante o tempo de execução.

O TensorFlow não inclui nenhuma opção de tempo de execução.

O PyTorch inclui implantação de recursos para estruturas móveis e incorporadas.

O TensorFlow funciona melhor com estruturas incorporadas.