Salta para o conteúdo

Compreende como exportar para o formato TF SavedModel de YOLOv8

A implementação de modelos de aprendizagem automática pode ser um desafio. No entanto, a utilização de um formato de modelo eficiente e flexível pode facilitar o teu trabalho. TF SavedModel é uma estrutura de aprendizagem automática de código aberto utilizada por TensorFlow para carregar modelos de aprendizagem automática de forma consistente. É como uma mala para os modelos TensorFlow , tornando-os fáceis de transportar e utilizar em diferentes dispositivos e sistemas.

Aprender a exportar para TF SavedModel de Ultralytics YOLOv8 pode ajudar-te a implementar modelos facilmente em diferentes plataformas e ambientes. Neste guia, vamos explicar como converter os teus modelos para o formato TF SavedModel , simplificando o processo de execução de inferências com os teus modelos em diferentes dispositivos.

Por que razão deves exportar para TF SavedModel ?

O formato TensorFlow SavedModel faz parte do ecossistema TensorFlow desenvolvido pela Google, como indicado abaixo. Foi concebido para guardar e serializar modelos TensorFlow sem problemas. Encapsula os detalhes completos dos modelos, como a arquitetura, os pesos e até as informações de compilação. Isto facilita a partilha, a implementação e a continuação da formação em diferentes ambientes.

TF SavedModel

O TF SavedModel tem uma vantagem fundamental: a sua compatibilidade. Funciona bem com TensorFlow Serving, TensorFlow Lite e TensorFlow.js. Esta compatibilidade facilita a partilha e a implementação de modelos em várias plataformas, incluindo aplicações Web e móveis. O formato TF SavedModel é útil tanto para pesquisa quanto para produção. Fornece uma forma unificada de gerir os seus modelos, garantindo que estão prontos para qualquer aplicação.

Principais características de TF SavedModels

Eis as principais características que tornam o TF SavedModel uma excelente opção para os programadores de IA:

  • Portabilidade: TF SavedModel fornece um formato de serialização hermético, recuperável e neutro em termos de linguagem. Permite que sistemas e ferramentas de nível superior produzam, consumam e transformem modelos TensorFlow . Os SavedModels podem ser facilmente partilhados e implementados em diferentes plataformas e ambientes.

  • Facilidade de implementação: TF SavedModel agrupa o gráfico computacional, os parâmetros treinados e os metadados necessários num único pacote. Estes podem ser facilmente carregados e utilizados para inferência sem ser necessário o código original que construiu o modelo. Isto torna a implementação dos modelos TensorFlow simples e eficiente em vários ambientes de produção.

  • Gestão de activos: TF SavedModel suporta a inclusão de activos externos, tais como vocabulários, embeddings ou tabelas de pesquisa. Esses ativos são armazenados junto com a definição do gráfico e as variáveis, garantindo que estejam disponíveis quando o modelo for carregado. Esse recurso simplifica o gerenciamento e a distribuição de modelos que dependem de recursos externos.

Opções de implantação com TF SavedModel

Antes de nos debruçarmos sobre o processo de exportação de modelos YOLOv8 para o formato TF SavedModel , vamos explorar alguns cenários de implementação típicos em que este formato é utilizado.

TF SavedModel fornece uma gama de opções para implementar os teus modelos de aprendizagem automática:

  • TensorFlow Servir: TensorFlow O Serving é um sistema de serviço flexível e de alto desempenho projetado para ambientes de produção. Suporta nativamente TF SavedModels, facilitando a implantação e o fornecimento de seus modelos em plataformas de nuvem, servidores locais ou dispositivos de borda.

  • Plataformas de nuvem: Os principais provedores de nuvem, como Google Cloud Platform (GCP), Amazon Web Services (AWS) e Microsoft Azure, oferecem serviços para implantar e executar modelos TensorFlow , incluindo TF SavedModels. Estes serviços fornecem uma infraestrutura escalável e gerida, permitindo-te implementar e escalar os teus modelos facilmente.

  • Dispositivos móveis e incorporados: TensorFlow Lite, uma solução leve para executar modelos de aprendizado de máquina em dispositivos móveis, incorporados e IoT, suporta a conversão de TF SavedModels para o formato TensorFlow Lite. Isto permite-te implementar os teus modelos numa vasta gama de dispositivos, desde smartphones e tablets a microcontroladores e dispositivos de ponta.

  • TensorFlow Tempo de execução: TensorFlow O tempo de execução (tfrt) é um tempo de execução de alto desempenho para a execução de gráficos TensorFlow . Fornece APIs de nível inferior para carregar e executar TF SavedModels em ambientes C++. TensorFlow O tempo de execução oferece melhor desempenho em comparação com o tempo de execução padrão do TensorFlow . É adequado para cenários de implantação que requerem inferência de baixa latência e integração estreita com bases de código C++ existentes.

Exportação de modelos YOLOv8 para TF SavedModel

Ao exportar os modelos YOLOv8 para o formato TF SavedModel , melhora a sua adaptabilidade e facilidade de implementação em várias plataformas.

Instalação

Para instalar o pacote necessário, executa:

Instalação

# Install the required package for YOLOv8
pip install ultralytics

Para obter instruções detalhadas e melhores práticas relacionadas com o processo de instalação, consulta o nosso guia de instalaçãoUltralytics . Durante a instalação dos pacotes necessários para YOLOv8, se tiveres alguma dificuldade, consulta o nosso guia de Problemas comuns para obteres soluções e sugestões.

Utilização

Antes de seguir as instruções de utilização, é importante notar que, embora todos os modelosUltralytics YOLOv8 estejam disponíveis para exportação, podes garantir que o modelo que seleccionaste suporta a funcionalidade de exportação aqui.

Utilização

from ultralytics import YOLO

# Load the YOLOv8 model
model = YOLO('yolov8n.pt')

# Export the model to TF SavedModel format
model.export(format='saved_model')  # creates '/yolov8n_saved_model'

# Load the exported TF SavedModel model
tf_savedmodel_model = YOLO('./yolov8n_saved_model')

# Run inference
results = tf_savedmodel_model('https://ultralytics.com/images/bus.jpg')
# Export a YOLOv8n PyTorch model to TF SavedModel format
yolo export model=yolov8n.pt format=saved_model  # creates '/yolov8n_saved_model'

# Run inference with the exported model
yolo predict model='./yolov8n_saved_model' source='https://ultralytics.com/images/bus.jpg'

Para obter mais detalhes sobre as opções de exportação suportadas, visita a página de documentaçãoUltralytics sobre opções de implementação.

Implantação de modelos exportados YOLOv8 TF SavedModel

Agora que exportaste o modelo YOLOv8 para o formato TF SavedModel , a próxima etapa é implantá-lo. A primeira etapa principal e recomendada para executar um modelo TF GraphDef é usar o método YOLO("./yolov8n_saved_model"), como mostrado anteriormente no trecho de código de uso.

No entanto, para obter instruções detalhadas sobre a implementação dos modelos TF SavedModel , consulta os seguintes recursos:

  • TensorFlow Servir: Aqui está a documentação do programador sobre como implementar os teus modelos TF SavedModel utilizando TensorFlow Serving.

  • Executa um TensorFlow SavedModel em Node.js: Uma postagem no blog TensorFlow sobre como executar um TensorFlow SavedModel no Node.js diretamente sem conversão.

  • Implementação na nuvem: Uma publicação no blogue TensorFlow sobre a implementação de um modelo TensorFlow SavedModel na Cloud AI Platform.

Resumo

Neste guia, exploramos como exportar modelos Ultralytics YOLOv8 para o formato TF SavedModel . Ao exportar para TF SavedModel , ganha a flexibilidade de otimizar, implantar e dimensionar seus modelos YOLOv8 em uma ampla variedade de plataformas.

Para mais informações sobre a utilização, visita a documentação oficialTF SavedModel .

Para obter mais informações sobre a integração do Ultralytics YOLOv8 com outras plataformas e estruturas, não te esqueças de consultar a nossa página de guia de integração. Ela está repleta de ótimos recursos para ajudá-lo a aproveitar ao máximo o YOLOv8 em seus projetos.



Criado em 2024-03-23, Atualizado em 2024-04-02
Autores: Burhan-Q (1), abirami-vina (1)

Comentários