Ultralytics YOLO27: Entre na lista de espera.
Licenciar o YOLO
Voltar ao glossário da Ultralytics

PyTorch

PyTorch é uma framework de código aberto para Python, destinada à criação e ao treino de redes neuronais com tensores de GPU e diferenciação automática. Os seus conceitos fundamentais e o percurso até à implementação.

PyTorch é uma estrutura de código aberto para criar, treinar e implantar redes neurais em Python. Ela fornece tensores acelerados por GPU, diferenciação automática e uma biblioteca de camadas, otimizadores e funções de perda, além de executar o código de forma imediata, linha por linha, permitindo criar e depurar modelos como programas Python comuns. Criado na Facebook AI Research, hoje Meta AI, o PyTorch é regido desde 2022 pela PyTorch Foundation, independente de fornecedores e vinculada à Linux Foundation, e é amplamente usado em pesquisas de aprendizado profundo e modelos de produção em visão computacional e linguagem.

Conceitos fundamentais#

  • Tensores: arrays multidimensionais, como arrays NumPy, que podem residir em uma CPU ou acelerador. PyTorch oferece suporte a GPUs NVIDIA por meio de CUDA, GPUs AMD por meio de ROCm e Apple Silicon por meio de Metal (MPS), e a transferência de dados entre eles exige uma chamada .to(device).
  • Autograd: conforme as operações com tensores são executadas, PyTorch as registra em um grafo computacional. Chamar .backward() percorre esse grafo no sentido inverso e calcula o gradiente da saída em relação a cada tensor que precisa dele, o que corresponde à etapa de retropropagação do treinamento.
  • Execução imediata: o grafo é reconstruído em cada passagem direta, permitindo que os modelos usem loops, condicionais e instruções print do Python, e fazendo com que os erros apontem para a linha exata em que ocorreram.
  • Módulos e otimizadores: torch.nn fornece camadas como convoluções, atenção e normalização, e torch.optim fornece otimizadores como SGD e Adam, que atualizam os pesos com base nos gradientes calculados.
  • torch.compile: adicionado no PyTorch 2.0, captura o programa de execução imediata como um grafo e gera kernels fundidos, muitas vezes acelerando o treinamento e a inferência sem alterar o código do modelo.

O exemplo abaixo executa um pequeno cálculo em uma GPU, se houver uma disponível, e permite que o autograd calcule seu gradiente:

import torch

# Use a GPU when PyTorch can see one, otherwise fall back to the CPU
device = "cuda" if torch.cuda.is_available() else "cpu"

# Tensors record the operations applied to them when requires_grad=True
w = torch.tensor([2.0, -1.0], device=device, requires_grad=True)
x = torch.tensor([3.0, 4.0], device=device)

# Ordinary Python runs eagerly: each line executes immediately
loss = (w * x).sum() ** 2

# Autograd walks the recorded graph backward to get d(loss)/dw
loss.backward()
print(f"device={device}, loss={loss.item()}, grad={w.grad.tolist()}")

Em uma máquina sem GPU, ele imprime device=cpu, loss=4.0, grad=[12.0, 16.0]. A perda é (2·3 − 1·4)² = 4, e o autograd retorna sua derivada 2·(w·x)·x = [12, 16] sem nenhum cálculo diferencial escrito à mão: é o mesmo mecanismo que treina redes com bilhões de pesos.

PyTorch vs. outras ferramentas#

  • TensorFlow: estrutura do Google que criava grafos estáticos antes de executá-los, até que o TensorFlow 2 tornou a execução imediata o padrão. Continua comum em sistemas de produção baseados no Keras e nas ferramentas de implantação do Google.
  • JAX: biblioteca numérica do Google que transforma funções Python puras com operações componíveis grad, jit e vmap compiladas por meio do XLA, popular em pesquisas de grande escala em TPUs.
  • OpenCV: biblioteca de visão computacional para ler, transformar e analisar imagens com algoritmos clássicos. Os pipelines costumam usar OpenCV para carregar e pré-processar quadros antes de um modelo PyTorch processá-los.
  • Hugging Face: hub e conjunto de bibliotecas criados principalmente sobre PyTorch, cuja biblioteca Transformers fornece modelos pré-treinados de linguagem e visão como módulos PyTorch.

Da pesquisa à implantação#

Um modelo PyTorch treinado é salvo como checkpoint, geralmente em um arquivo .pt ou .pth que contém seus pesos. Ele pode ser executado como está em um serviço Python, mas dispositivos de borda e servidores otimizados geralmente precisam que ele seja convertido para um ambiente de execução desenvolvido para o hardware:

Ultralytics YOLO26 é escrito em PyTorch: yolo26n.pt é um checkpoint PyTorch, o treinamento usa o autograd e os otimizadores do PyTorch, e model.export() converte o modelo para estes formatos de implantação, incluindo ONNX, TensorRT, OpenVINO, Core ML e LiteRT.

Explore as soluções

Visão computacional no desporto

Visão computacional no desporto

Descubra como o Ultralytics YOLO impulsiona a visão computacional no esporte com rastreamento de jogadores e bolas, análise de desempenho, insights para treinadores e reabilitação de atletas.
Saiba mais
Visão computacional para imagens aéreas

Visão computacional para imagens aéreas

Transforma imagens de drones e aéreas em informações em tempo real para a agricultura, a aquacultura, a conservação e a análise geoespacial com Ultralytics YOLO.
Saiba mais
Visão computacional no setor aeroespacial

Visão computacional no setor aeroespacial

Aplica visão computacional na indústria aeroespacial com Ultralytics YOLO para inspecionar aeronaves, detetar objetos estranhos na pista (FOD), apoiar operações aeroportuárias em terra e detetar defeitos em materiais compósitos.
Saiba mais
Visão computacional na segurança

Visão computacional na segurança

Protege todas as instalações com os modelos Ultralytics YOLO. A IA visual permite monitorizar perímetros, detetar ameaças, reconhecer matrículas e melhorar a segurança no local de trabalho.
Saiba mais
Visão computacional na robótica

Visão computacional na robótica

Potencia máquinas mais inteligentes com os modelos Ultralytics YOLO. A IA visual na robótica permite navegação autónoma, perceção, rastreamento de objetos e controlo em tempo real.
Saiba mais
Visão computacional na logística

Visão computacional na logística

Otimize a logística com os modelos Ultralytics YOLO. A IA de visão permite inspecionar pacotes, fazer triagem, rastrear veículos e monitorar a segurança em tempo real nos armazéns.
Saiba mais
Visão computacional no varejo

Visão computacional no varejo

Reinvente o varejo com os modelos Ultralytics YOLO. A IA de visão permite rastrear o estoque, monitorar prateleiras, gerenciar filas e obter insights mais inteligentes sobre clientes.
Saiba mais
Visão computacional na área da saúde

Visão computacional na área da saúde

Desenvolva soluções de saúde com os modelos Ultralytics YOLO. A IA de visão na área da saúde permite obter imagens médicas mais rapidamente, diagnósticos mais inteligentes e monitoramento de pacientes.
Saiba mais
Visão computacional na manufatura

Visão computacional na manufatura

Otimize a manufatura com modelos Ultralytics YOLO. A IA visual impulsiona o controle de qualidade, a detecção de defeitos, a conformidade com o uso de EPI e a automação da linha de montagem.
Saiba mais
Visão computacional no setor automotivo

Visão computacional no setor automotivo

Aplique visão computacional no setor automotivo com modelos Ultralytics YOLO. A IA visual aumenta a segurança viária, aprimora a assistência ao condutor e viabiliza a automação de veículos para estradas mais inteligentes.
Saiba mais
Visão computacional na agricultura

Visão computacional na agricultura

Leve a IA de visão à agricultura inteligente com os modelos Ultralytics YOLO. Aprimore o monitoramento de plantações, o rastreamento de animais e a agricultura de precisão para obter safras maiores e mais inteligentes.
Saiba mais

Vamos construir juntos o futuro da IA!

Comece sua jornada rumo ao futuro do aprendizado de máquina