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

FLOPs

FLOPs contam as operações de ponto flutuante de que um modelo precisa para uma passagem direta, uma medida padrão do custo computacional. Como contar, comparar e reduzir esse número.

FLOPs (operações de ponto flutuante) contam as operações aritméticas que uma rede neural executa para processar uma entrada, como uma imagem ou um token, principalmente as multiplicações e adições dentro de suas camadas. Essa contagem mede o custo computacional de um modelo independentemente do hardware em que ele é executado, por isso é a forma padrão de comparar o custo de diferentes arquiteturas. Os modelos de visão costumam ser descritos em GFLOPs (bilhões de operações) para um tamanho de entrada especificado, e o total de computação usado para treinar um modelo grande também é informado em FLOPs.

FLOPs versus FLOPS versus MACs#

É fácil confundir três termos semelhantes:

  • FLOPs (s minúsculo): o número de operações de ponto flutuante, uma propriedade do modelo e do tamanho da entrada. Mede a quantidade de trabalho necessária.
  • FLOPS (S maiúsculo): operações de ponto flutuante por segundo, uma propriedade do hardware, como uma GPU. Mede a velocidade com que o trabalho pode ser feito; dividir os FLOPs de um modelo pelo pico de FLOPS de um dispositivo fornece o menor tempo de execução possível.
  • MACs: operações de multiplicação e acumulação. Um MAC é uma multiplicação mais uma adição, então um MAC equivale a dois FLOPs. Alguns artigos e ferramentas informam MACs com o nome FLOPs, reduzindo os valores pela metade.

Como os FLOPs são contados#

A maior parte dos FLOPs de uma rede vem de multiplicações de matrizes e convoluções. Uma camada totalmente conectada com n entradas e m saídas custa cerca de 2 × n × m FLOPs por entrada. Uma convolução calcula um produto escalar para cada valor de saída, então seu custo é 2 × C_in × k × k × C_out × H_out × W_out, em que k é o tamanho do kernel e H_out × W_out é a resolução de saída. As ativações, a normalização e as adições acrescentam relativamente pouco. O exemplo abaixo calcula o custo de uma convolução por meio de uma fórmula e confere o resultado com o contador de FLOPs integrado do PyTorch:

import torch
from torch.utils.flop_counter import FlopCounterMode

# A 3x3 convolution mapping 64 channels to 128 on an 80x80 feature map
conv = torch.nn.Conv2d(64, 128, kernel_size=3, padding=1, bias=False)
x = torch.randn(1, 64, 80, 80)

# Each output value needs 64*3*3 multiply-accumulates (MACs); 1 MAC = 2 FLOPs
macs = 128 * 80 * 80 * 64 * 3 * 3
print(f"By formula: {2 * macs / 1e9:.3f} GFLOPs ({macs / 1e9:.3f} GMACs)")

# PyTorch's FLOP counter traces the real forward pass
with FlopCounterMode(display=False) as counter:
    conv(x)
print(f"Counted:    {counter.get_total_flops() / 1e9:.3f} GFLOPs")

As duas linhas imprimem 0,944 GFLOPs, e a linha da fórmula mostra a mesma camada como 0,472 GMACs, metade do valor em FLOPs. Para Transformers, uma passagem para frente custa cerca de 2 FLOPs por parâmetro por token, e o treinamento custa cerca de 6; essa regra prática vem da pesquisa sobre leis de escala, que estima a computação total de uma execução de treinamento como 6 × parâmetros × tokens de treinamento.

FLOPs e velocidade no mundo real#

Os FLOPs preveem a velocidade apenas de forma aproximada. A latência também depende do tráfego de memória, do grau de paralelismo de cada operação e da disponibilidade de kernels otimizados para o hardware. O artigo do ShuffleNet V2 mostrou que redes com FLOPs semelhantes podem ter velocidades bem diferentes no mesmo dispositivo, e as convoluções separáveis em profundidade, apesar de exigirem poucos FLOPs, muitas vezes são limitadas pela largura de banda da memória, não pelos cálculos. As otimizações também atuam em fatores diferentes. A poda de modelos e tamanhos de entrada menores removem operações, enquanto a quantização de modelos mantém a quantidade de operações e torna cada uma mais barata ao realizar cálculos com inteiros de 8 bits. Portanto, os FLOPs funcionam melhor como um primeiro filtro antes de medir a latência de inferência no dispositivo de destino, por exemplo, com o modo de benchmark da Ultralytics:

FLOPs na seleção de modelos#

As famílias de modelos são lançadas em vários tamanhos para que as equipes possam trocar precisão por capacidade de computação, uma escolha explicada na lição sobre tamanho de modelo da Ultralytics Academy. O Ultralytics YOLO26 varia de 5,5 GFLOPs para YOLO26n a 194,4 GFLOPs para YOLO26x com entrada de 640×640, e model.info() exibe os GFLOPs de qualquer modelo carregado. Drones e celulares alimentados por bateria usam as variantes menores, enquanto servidores na nuvem podem usar as maiores. Como o custo de uma rede convolucional aumenta com o número de pixels, o tamanho da entrada altera os FLOPs tanto quanto o tamanho do modelo:

from ultralytics import YOLO
from ultralytics.utils.torch_utils import get_flops

# Load the smallest YOLO26 detection model and fuse its layers, as for inference
model = YOLO("yolo26n.pt")
model.fuse()

# Count GFLOPs for the same model at three input resolutions
for imgsz in [320, 640, 1280]:
    print(f"{imgsz}px: {get_flops(model.model, imgsz):.1f} GFLOPs")

O loop imprime 1,3, 5,5 e 23,4 GFLOPs: cada duplicação do lado da entrada multiplica a contagem por cerca de quatro, então executar o YOLO26n a 1.280 pixels custa mais que os 20,9 GFLOPs do YOLO26s, um modelo com quatro vezes mais parâmetros, a 640.

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