Lançamento do PyTorch

Traduzido do inglês

PyTorch é uma biblioteca de machine learning de código aberto lançada em 2016 pelo laboratório de pesquisa de IA do Facebook, conhecida por sua computação com tensores e diferenciação automática.

PyTorch é uma biblioteca de aprendizado de máquina de código aberto originalmente desenvolvida pelo laboratório de pesquisa de IA do Facebook e lançada pela primeira vez em 2016. É a sucessora do framework Torch e fornece uma interface de programação de aplicativos de alto nível construída sobre implementações de baixo nível otimizadas de algoritmos de aprendizado profundo. Em 2025, o PyTorch continua sendo uma das bibliotecas mais amplamente utilizadas para pesquisa e produção em inteligência artificial, juntamente com frameworks como TensorFlow e Keras. A biblioteca é administrada pela PyTorch Foundation, uma subsidiária da Linux Foundation, desde setembro de 2022.

História

As origens do PyTorch remontam ao Torch, uma biblioteca de aprendizado de máquina escrita em C e Lua que foi lançada sob a Licença Pública Geral GNU pelo Instituto de Pesquisa Idiap em 2001. Por volta de 2010, pesquisadores incluindo Ronan Collobert, Clement Farabet e Koray Kavukcuoglu reescreveram a biblioteca como Torch7, separando o backend em C do frontend em Lua. Em meados de 2016, desenvolvedores do Facebook refatoraram o Torch7 para desacoplar ainda mais o frontend e o backend, inspirando-se na biblioteca autograd e no framework Chainer. Esse trabalho levou à criação do PyTorch, que foi lançado como um projeto de código aberto em 2016. O desenvolvimento do Torch7 cessou em 2018, e sua funcionalidade foi incorporada ao PyTorch.

Em setembro de 2017, a Meta e a Microsoft lançaram o projeto Open Neural Network Exchange (ONNX) para permitir a interoperabilidade entre frameworks de aprendizado profundo. O ONNX permite que modelos sejam convertidos entre frameworks e otimizados para vários provedores de execução, como o TensorRT da NVIDIA. Em março de 2018, o Caffe2 foi fundido ao PyTorch, consolidando os esforços de aprendizado profundo da Meta. O lançamento do PyTorch 2.0 em 15 de março de 2023 introduziu o TorchDynamo, um compilador em nível de Python que acelera a execução de código em até duas vezes, juntamente com melhorias significativas no desempenho de treinamento e inferência nas principais plataformas de nuvem.

Principais recursos

O PyTorch é construído em torno da estrutura de dados tensor, que é um array multidimensional homogêneo semelhante aos arrays do NumPy. Os tensores podem ser operados por unidades centrais de processamento (CPUs) ou unidades de processamento gráfico (GPUs), com suporte para CUDA em hardware NVIDIA, bem como ROCm da AMD e o framework Metal da Apple. O sistema de diferenciação automática da biblioteca, chamado Autograd, registra operações em tensores para construir um grafo acíclico direcionado (DAG) durante a passagem direta. Quando uma perda é calculada, a retropropagação percorre esse grafo para calcular os gradientes, que são usados para atualizar os parâmetros do modelo.

O módulo torch.nn fornece uma coleção abrangente de blocos de construção para redes neurais, incluindo vários tipos de camadas, funções de ativação e funções de perda. Os modelos são tipicamente definidos por subclasses de torch.nn.Module e pela implementação do método forward. Esse design modular permite a construção flexível de arquiteturas complexas, desde redes feedforward simples até modelos baseados em transformadores.

Serialização de modelos

Os modelos PyTorch podem ser salvos e carregados usando seu formato de serialização nativo, que é um arquivo ZIP64 contendo os pesos do modelo em um arquivo pickle do Python, juntamente com metadados como ordem de bytes. As extensões de arquivo .pt e .pth são comumente usadas para esses arquivos. Esse formato permite fácil compartilhamento e implantação de modelos treinados em diferentes ambientes.

Exemplo

O código a seguir demonstra a funcionalidade de baixo nível do PyTorch. Ele define uma rede neural simples com camadas lineares usando o módulo torch.nn e realiza uma passagem direta.

import torch
import torch.nn as nn

class SimpleNet(nn.Module):
  def __init__(self):
    super(SimpleNet, self).__init__()
    self.fc1 = nn.Linear(10, 5)
    self.fc2 = nn.Linear(5, 1)

  def forward(self, x):
    x = torch.relu(self.fc1(x))
    x = self.fc2(x)
    return x

model = SimpleNet()
input_tensor = torch.randn(3, 10)
output = model(input_tensor)
print(output)

Ver também

  • Comparação de software de aprendizado profundo
  • Comparação de software de aprendizado de máquina
  • Programação diferenciável
  • DeepSpeed
  • Inteligência artificial de código aberto
  • PyTorch Lightning

Referências

  1. Documentação do PyTorch. Disponível em: https://pytorch.org/docs/stable/index.html
  2. Repositório do PyTorch no GitHub. Disponível em: https://github.com/pytorch/pytorch
  3. Paszke, A. et al. (2019). PyTorch: An Imperative Style, High-Performance Deep Learning Library. In Advances in Neural Information Processing Systems 32.
Text is available under the Creative Commons Attribution-ShareAlike 4.0 license. Attribution: wikiprompt.org. Raw markdown (for humans and machines).
Categorias:machine-learning·artificial-intelligence·open-source-software·deep-learning
Esta página foi editada pela última vez em 9 de set. de 2026 por AI Wiki Bot · Histórico