Yolo Vision Shenzhen
Shenzhen
Junte-se agora
Glossário

ONNX (Open Neural Network Exchange)

Descubra como ONNX aprimora a portabilidade e a interoperabilidade do modelo de IA, permitindo a implantação perfeita dos modelos Ultralytics YOLO em diversas plataformas.

A Open Neural Network ExchangeONNX) é uma norma de código aberto concebida para representar modelos de modelos de aprendizagem automática (ML) de uma forma que garante a portabilidade entre diferentes estruturas e hardware. Originalmente desenvolvido por empresas como Microsoft e o Facebook, ONNX funciona como um "tradutor universal" para a IA. Permite aos programadores treinar um modelo num ecossistema, como o PyTorche implantá-lo sem problemas em outro, como o TensorFlow ou um motor de motor de inferência especializado. Esta interoperabilidade elimina a necessidade de reconstruir ou treinar novamente as redes quando se passa de ambientes de investigação para aplicações de produção, simplificando significativamente o de implantação de modelos.

Como funciona ONNX

No seu núcleo, ONNX define um conjunto comum de operadores - os blocos de construção dos modelos de aprendizagem profunda (DL) e modelos de aprendizagem automática - e um formato de ficheiro padrão. Quando um modelo é convertido para ONNX, a sua estrutura computacional é mapeada para um gráfico de computação estático. Neste gráfico, os nós representam operações matemáticas operações matemáticas (como convoluções ou funções de ativação) e as arestas representam o fluxo de tensores de dados entre eles.

Como esta representação gráfica é normalizada, os fabricantes de hardware podem criar fornecedores de execução optimizados para ONNX. Isto significa que um único .onnx pode ser acelerado em diversos tipos de hardware, incluindo um CPU, GPU (Unidade de processamento gráfico), ou especializado TPU Tensor Unidade de ProcessamentoTensor )frequentemente utilizando a tecnologia de alto desempenho Tempo de execução ONNX.

Exportação de modelos para ONNX

Para os utilizadores do ultralytics a conversão de um modelo treinado para o formato ONNX é um processo simples simples. A biblioteca trata automaticamente do complexo mapeamento de camadas para o padrão ONNX . O seguinte trecho de código a seguir demonstra como exportar um modelo YOLO11 modelo, preparando-o para uma implantação mais alargada.

from ultralytics import YOLO

# Load a pretrained YOLO11 model
model = YOLO("yolo11n.pt")

# Export the model to ONNX format
# This creates 'yolo11n.onnx' in the current directory
model.export(format="onnx")

Aplicações no Mundo Real

A flexibilidade do ONNX torna-o um componente crítico na infraestrutura moderna de IA, particularmente para tarefas de visão computacional (CV).

  1. Implementação móvel multiplataforma: Um programador pode treinar um modelo de modelo de deteção de objectos usando PyTorch numa poderosa estação de trabalho. No entanto, o aplicativo final precisa ser executado em dispositivos iOS e Android . Ao exportar o modelo para ONNX, o programador pode integrar o mesmo ficheiro de modelo em aplicações móveis utilizando o ONNX Runtime for Mobile, garantindo um comportamento consistente em diferentes sistemas operativos sem manter bases de código separadas.
  2. Integração com sistemas legados: Muitas aplicações industriais são construídas utilizando linguagens como C++ ou C# para desempenho e estabilidade. Embora Python seja o padrão para treinamento, a integração de um modelo Python em um ambiente de produção ambiente de produção C++ pode ser lento e propenso a erros. ONNX preenche esta lacuna. Uma instalação de fabrico que utilize visão computacional em robótica pode treinar um modelo em Python, exportá-lo para ONNX e depois carregá-lo diretamente no seu software de controlo C++ para inferência de alta velocidade em tempo real no chão de fábrica fábrica.

ONNX vs. Conceitos relacionados

Compreender a forma como ONNX interage com outras ferramentas ajuda a selecionar a estratégia de implementação correta.

  • ONNX vs. TensorRT: Enquanto ONNX é um formato de ficheiro para representar modelos, TensorRT é um SDK de otimização de alto desempenho desenvolvido pela NVIDIA especificamente para GPUs NVIDIA . Os dois trabalham frequentemente em conjunto; os programadores exportam modelos para ONNX e e, em seguida, utilizam TensorRT para ingerir esse ficheiro ONNX , aplicando uma otimização de modelos como a fusão de camadas e a calibragem para obter a máxima velocidade no hardware NVIDIA .
  • ONNX vs. Formatos-quadro (por exemplo, .pt, .h5): Formatos nativos como o do PyTorch .pt ou Keras's .h5 são excelentes para treinar e poupar pesos do modelo nos seus ecossistemas específicos. No entanto, exigem frequentemente a instalação do quadro original para executar o modelo. ONNX separa o modelo da da estrutura de treinamento, facilitando a execução de IA de ponta implantações em que a instalação de uma biblioteca é impraticável devido a restrições de armazenamento ou de memória.
  • ONNX vs. Quantização: ONNX é um formato, enquanto ONNX a quantização do modelo é uma técnica para reduzir o tamanho do modelo e aumentar a velocidade através da redução da precisão (por exemplo, de float32 para int8). A norma ONNX suporta operadores operadores quantizados, permitindo aos programadores armazenar e executar modelos quantizados quantizados de forma eficiente.

Junte-se à comunidade Ultralytics

Junte-se ao futuro da IA. Conecte-se, colabore e cresça com inovadores globais

Junte-se agora