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. |