Ultralytics YOLO27:

Exportação de modelos YOLO26 para TorchScript para implementação rápida#

PyTorch está a descontinuar o TorchScript

O PyTorch descontinuou o TorchScript e está a remover gradualmente as suas funcionalidades. Para novas implementações móveis e em dispositivos edge, utilize a integração ExecuTorch suportada. A Ultralytics mantém a exportação normal para TorchScript para compatibilidade com C++ legado.

A implementação de modelos de visão computacional em ambientes C++ sem Python requer uma representação serializada portátil. O TorchScript fornece essa compatibilidade para aplicações LibTorch legadas.

Exporte para TorchScript para serializar os seus modelos Ultralytics YOLO26, garantindo compatibilidade entre plataformas e uma implementação simplificada. Neste guia, mostramos como exportar os seus modelos YOLO26 para o formato TorchScript, facilitando a sua utilização numa gama mais ampla de aplicações.

Por que deve exportar para TorchScript?#

Visão geral do fluxo de trabalho de serialização e implementação de modelos TorchScript

Desenvolvido pelos criadores do PyTorch, o TorchScript é uma ferramenta poderosa para otimizar e implementar modelos PyTorch em diversas plataformas. Exportar modelos YOLO26 para TorchScript é essencial para passar da investigação a aplicações do mundo real. O TorchScript, parte do framework PyTorch, ajuda a tornar esta transição mais simples, permitindo utilizar modelos PyTorch em ambientes que não suportam Python.

O processo envolve duas técnicas: tracing e scripting. O tracing regista as operações durante a execução do modelo, enquanto o scripting permite definir modelos utilizando um subconjunto de Python. Estas técnicas garantem que modelos como o YOLO26 continuam a funcionar corretamente mesmo fora do seu ambiente Python habitual.

Comparação entre scripting e tracing no TorchScript

Os modelos TorchScript também podem ser otimizados através de técnicas como a fusão de operadores e melhorias na utilização da memória, garantindo uma execução eficiente. Outra vantagem da exportação para TorchScript é o seu potencial para acelerar a execução dos modelos em várias plataformas de hardware. Cria uma representação autónoma e pronta para produção do seu modelo PyTorch, que pode ser integrada em ambientes C++.

Principais funcionalidades dos modelos TorchScript#

O TorchScript, uma parte essencial do ecossistema PyTorch, fornece funcionalidades poderosas para otimizar e implementar modelos de deep learning.

Visão geral das principais funcionalidades do TorchScript

Estas são as principais funcionalidades que tornam o TorchScript uma ferramenta valiosa para programadores:

  • Execução com grafo estático: O TorchScript utiliza uma representação em grafo estático da computação do modelo, que é diferente da execução com grafo dinâmico do PyTorch. Na execução com grafo estático, o grafo computacional é definido e compilado uma vez antes da execução propriamente dita, resultando num melhor desempenho durante a inferência.

  • Serialização de modelos: O TorchScript permite serializar modelos PyTorch para um formato independente da plataforma. Os modelos serializados podem ser carregados sem exigir o código Python original, permitindo a implementação em diferentes ambientes de execução.

  • Compilação JIT: O TorchScript utiliza compilação just-in-time (JIT) para converter modelos PyTorch numa representação intermédia otimizada. O JIT compila o grafo computacional do modelo, permitindo uma execução eficiente nos dispositivos-alvo.

  • Conversão gradual: O TorchScript fornece uma abordagem de conversão gradual, permitindo converter incrementalmente partes do seu modelo PyTorch para TorchScript. Esta flexibilidade é particularmente útil ao trabalhar com modelos complexos ou quando pretende otimizar partes específicas do código.

Opções de implementação no TorchScript#

Antes de analisarmos o código para exportar modelos YOLO26 para o formato TorchScript, vamos compreender onde os modelos TorchScript são normalmente utilizados.

O TorchScript oferece várias opções de implementação para modelos de machine learning, tais como:

  • API C++: O caso de utilização mais comum do TorchScript é a sua API C++ LibTorch, que permite carregar e executar modelos TorchScript otimizados diretamente em aplicações C++. Esta opção é ideal para ambientes de produção onde Python pode não ser adequado ou estar disponível. A API C++ oferece uma execução eficiente e com baixa sobrecarga dos modelos TorchScript, maximizando o potencial de desempenho.

  • Implementação móvel: Para inferência móvel de baixa latência e offline, bem como para privacidade dos dados em dispositivos móveis, utilize o ExecuTorch, o substituto do TorchScript Mobile no PyTorch.

  • Implementação na cloud: Os modelos TorchScript podem ser implementados em servidores baseados na cloud utilizando soluções como o TorchServe. Este fornece funcionalidades como versionamento de modelos, batching e monitorização de métricas para uma implementação escalável em ambientes de produção. A implementação do TorchScript na cloud pode tornar os seus modelos acessíveis através de APIs ou de outros serviços web.

Tarefas suportadas#

A exportação para TorchScript suporta todas as sete tarefas da Ultralytics. A segmentação semântica e a estimativa de profundidade estão disponíveis apenas com YOLO26, a única família fornecida com essas cabeças.

TarefaYOLOv8YOLO11YOLO26
Detetar
Segmentar
Semântica
Profundidade
Classificar
Pose
OBB

Exportação para TorchScript: conversão do seu modelo YOLO26#

Exportar modelos YOLO26 para TorchScript facilita a sua utilização em diferentes locais e ajuda-os a funcionar de forma mais rápida e eficiente. Isto é ideal para quem pretende utilizar modelos de deep learning de forma mais eficaz em aplicações do mundo real.

Instalação#

Para instalar o pacote necessário, executa:

Instalação
# Install the required package for YOLO26
pip install ultralytics

Para obter instruções detalhadas e boas práticas relacionadas com o processo de instalação, consulte o nosso guia de instalação do Ultralytics. Ao instalar os pacotes necessários para YOLO26, se encontrar alguma dificuldade, consulte o nosso guia de problemas comuns para obter soluções e dicas.

Utilização#

Todos os modelos Ultralytics YOLO26 foram concebidos para suportar a exportação imediatamente, facilitando a sua integração no teu fluxo de trabalho de implementação preferido. Podes consultar a lista completa de formatos de exportação e opções de configuração compatíveis para escolher a melhor configuração para a tua aplicação.

O formato TorchScript suporta os modos Export, Predict e Validate. Exporte o seu modelo e, em seguida, carregue o modelo exportado para executar inferência ou validar a sua precisão.

Exportação
from ultralytics import YOLO

# Load a YOLO26 model
model = YOLO("yolo26n.pt")

# Export the model to TorchScript format
model.export(format="torchscript")  # creates 'yolo26n.torchscript'
Previsão
from ultralytics import YOLO

# Load the exported TorchScript model
model = YOLO("yolo26n.torchscript")

# Run inference
results = model("https://ultralytics.com/images/bus.jpg")
Validar
from ultralytics import YOLO

# Load the exported TorchScript model
model = YOLO("yolo26n.torchscript")

# Validate accuracy on the COCO8 dataset
metrics = model.val(data="coco8.yaml")

Argumentos de Exportação#

ArgumentoTipoPredefiniçãoDescrição
formatstr'torchscript'Formato de destino do modelo exportado, que define a compatibilidade com vários ambientes de implementação.
imgszint ou tuple640Tamanho de imagem pretendido para a entrada do modelo. Pode ser um número inteiro para imagens quadradas ou um tuplo (height, width) para dimensões específicas.
dynamicboolFalsePermite tamanhos de entrada dinâmicos, aumentando a flexibilidade para lidar com diferentes dimensões de imagem.
quantizeint ou strNonePrecisão da quantização: 16 (FP16) requer exportação na GPU com device=0; 32/não definido corresponde a FP32. Substitui o sinalizador half obsoleto.
nmsbool, opcionalNoneSeleciona a saída em bruto (None, predefinição), a NMS embutida (True) ou a cabeça sem NMS (False).
batchint1Especifica o tamanho do lote de inferência do modelo exportado ou o número máximo de imagens que o modelo exportado processará em simultâneo no modo predict.
devicestrNoneEspecifica o dispositivo para a exportação: GPU (device=0), CPU (device=cpu), MPS para Apple Silicon (device=mps).

Para obter mais detalhes sobre o processo de exportação, visita a página da documentação da Ultralytics sobre exportação.

Implementação de modelos YOLO26 TorchScript exportados#

Depois de exportar com êxito os seus modelos Ultralytics YOLO26 para o formato TorchScript, pode agora implementá-los. O primeiro passo principal e recomendado para executar um modelo TorchScript é utilizar o método YOLO("model.torchscript"), conforme indicado no excerto de código de utilização anterior. Para obter instruções detalhadas sobre a implementação dos seus modelos TorchScript noutros contextos, consulte os seguintes recursos:

  • Explorar a implementação móvel: Utilize o pipeline separado torch.export().pte do ExecuTorch para a implementação móvel atual do PyTorch.

  • Dominar a implementação no servidor: Aprenda a implementar modelos no servidor com o TorchServe, através de um tutorial passo a passo para disponibilizar modelos de forma escalável e eficiente.

  • Implementar em C++: Explore o Tutorial sobre como carregar um modelo TorchScript em C++, facilitando a integração dos seus modelos TorchScript em aplicações C++ para obter melhor desempenho e versatilidade.

Resumo#

Neste guia, explorámos o processo de exportação de modelos Ultralytics YOLO26 para o formato TorchScript. Ao seguir as instruções fornecidas, pode otimizar os modelos YOLO26 para obter desempenho e ganhar flexibilidade para os implementar em várias plataformas e ambientes.

Para obter mais informações sobre a utilização, consulte a documentação oficial do TorchScript.

Além disso, se quiseres saber mais sobre outras integrações do Ultralytics YOLO26, visita a nossa página do guia de integrações. Encontrarás aí muitos recursos e informações úteis.

Perguntas frequentes#

  • Exportar um modelo Ultralytics YOLO26 para TorchScript permite uma implementação flexível e multiplataforma. O TorchScript, parte do ecossistema PyTorch, facilita a serialização de modelos, que podem depois ser executados em ambientes sem suporte para Python. Isto torna-o útil para implementar modelos em ambientes C++.

  • Para exportar um modelo YOLO26 para TorchScript, pode utilizar o seguinte código de exemplo:

    Utilização
    from ultralytics import YOLO
    
    # Load a YOLO26 model
    model = YOLO("yolo26n.pt")
    
    # Export the model to TorchScript format
    model.export(format="torchscript")  # creates 'yolo26n.torchscript'
    
    # Load the exported TorchScript model
    torchscript_model = YOLO("yolo26n.torchscript")
    
    # Run inference
    results = torchscript_model("https://ultralytics.com/images/bus.jpg")

    Para obter mais detalhes sobre o processo de exportação, consulte a documentação da Ultralytics sobre exportação.

  • Utilizar TorchScript para implementar modelos YOLO26 oferece várias vantagens:

    • Portabilidade: Os modelos exportados podem ser executados em aplicações C++ sem Python.
    • Otimização: O TorchScript suporta execução com grafo estático e compilação just-in-time (JIT), que podem otimizar o desempenho do modelo.
    • Integração entre linguagens: Os modelos TorchScript podem ser integrados noutras linguagens de programação, aumentando a flexibilidade e a capacidade de expansão.
    • Serialização: Os modelos podem ser serializados, permitindo o carregamento e a inferência independentes da plataforma.

    Para obter mais informações sobre a implementação, consulte a documentação do TorchServe e o guia de implementação em C++. Para a implementação móvel no dispositivo, o PyTorch recomenda agora o ExecuTorch, que utiliza o seu próprio pipeline separado torch.export().pte, em vez do TorchScript.

  • Para instalar o pacote necessário para exportar modelos YOLO26, utilize o seguinte comando:

    Instalação
    # Install the required package for YOLO26
    pip install ultralytics

    Para obter instruções detalhadas, consulte o guia de instalação da Ultralytics. Se ocorrer algum problema durante a instalação, consulte o guia de problemas comuns.

  • Depois de exportar os modelos YOLO26 para o formato TorchScript, pode implementá-los numa variedade de plataformas:

    • API C++: Utilize o LibTorch para ambientes de produção eficientes e com baixa sobrecarga.
    • Implementação móvel: Utilize o ExecuTorch, o substituto suportado pelo PyTorch, com um pipeline de exportação .pte separado.
    • Implementação na cloud: Utilize serviços como o TorchServe para uma implementação escalável no servidor.

    Explore orientações abrangentes para implementar modelos nestes contextos e tirar o máximo partido das capacidades do TorchScript.

Comentários