Overslaan naar inhoud

YOLOv8 Model exporteren naar TorchScript voor snelle implementatie

Het inzetten van computervisiemodellen in verschillende omgevingen, waaronder embedded systemen, webbrowsers of platforms met beperkte ondersteuning voor Python , vereist een flexibele en draagbare oplossing. TorchScript richt zich op draagbaarheid en de mogelijkheid om modellen uit te voeren in omgevingen waar het volledige Python framework niet beschikbaar is. Dit maakt het ideaal voor scenario's waarbij je computervisie mogelijkheden moet inzetten op verschillende apparaten of platformen.

Exporteer naar Torchscript om je Ultralytics YOLOv8 modellen te serialiseren voor cross-platform compatibiliteit en gestroomlijnde implementatie. In deze handleiding laten we je zien hoe je je YOLOv8 modellen kunt exporteren naar het TorchScript formaat, zodat je ze gemakkelijker kunt gebruiken in een groter aantal toepassingen.

Waarom zou je exporteren naar TorchScript?

Torchscript Overzicht

Ontwikkeld door de makers van PyTorch, is TorchScript een krachtig hulpmiddel voor het optimaliseren en inzetten van PyTorch modellen op verschillende platforms. Het exporteren van YOLOv8 modellen naar TorchScript is cruciaal voor de overgang van onderzoek naar echte toepassingen. TorchScript, onderdeel van het PyTorch framework, helpt deze overgang soepeler te laten verlopen door PyTorch modellen te laten gebruiken in omgevingen die Python niet ondersteunen.

Het proces bestaat uit twee technieken: tracing en scripting. Tracing registreert bewerkingen tijdens het uitvoeren van modellen, terwijl scripting het mogelijk maakt om modellen te definiƫren met behulp van een subset van Python. Deze technieken zorgen ervoor dat modellen zoals YOLOv8 ook buiten hun gebruikelijke Python omgeving hun magie kunnen blijven doen.

TorchScript Script en traceren

TorchScript Modellen kunnen ook worden geoptimaliseerd door technieken zoals operator fusie en verfijningen in geheugengebruik, waardoor een efficiĆ«nte uitvoering wordt gegarandeerd. Een ander voordeel van exporteren naar TorchScript is de mogelijkheid om de uitvoering van modellen op verschillende hardwareplatforms te versnellen. Het creĆ«ert een standalone, productieklare representatie van je PyTorch model dat kan worden geĆÆntegreerd in C++ omgevingen, embedded systemen of ingezet in web- of mobiele applicaties.

Belangrijkste kenmerken van TorchScript modellen

TorchScript, een belangrijk onderdeel van het PyTorch ecosysteem, biedt krachtige functies voor het optimaliseren en inzetten van deep learning modellen.

TorchScript Kenmerken

Hier zijn de belangrijkste functies die TorchScript tot een waardevol hulpmiddel voor ontwikkelaars maken:

  • Statische grafiekuitvoering: TorchScript gebruikt een statische grafiekrepresentatie van de modelberekening, die verschilt van PyTorch's dynamische grafiekuitvoering. Bij statische grafische uitvoering wordt de computationele grafiek Ć©Ć©n keer gedefinieerd en gecompileerd voor de daadwerkelijke uitvoering, wat leidt tot betere prestaties tijdens de inferentie.

  • Modelserialisatie: TorchScript stelt je in staat om PyTorch modellen te serialiseren in een platformonafhankelijk formaat. Geserialiseerde modellen kunnen worden geladen zonder dat de originele Python code nodig is, waardoor implementatie in verschillende runtime-omgevingen mogelijk is.

  • JIT Compilatie: TorchScript gebruikt Just-In-Time (JIT) compilatie om PyTorch modellen om te zetten in een geoptimaliseerde tussenrepresentatie. JIT compileert de computationele grafiek van het model, waardoor efficiĆ«nte uitvoering op doelapparaten mogelijk is.

  • Integratie met andere talen: Met TorchScript kun je PyTorch modellen exporteren naar andere talen zoals C++, Java en JavaScript. Dit maakt het eenvoudiger om PyTorch modellen te integreren in bestaande softwaresystemen die in andere talen zijn geschreven.

  • Geleidelijke conversie: TorchScript biedt een geleidelijke conversie aanpak, waardoor je stapsgewijs delen van je PyTorch model kunt converteren naar TorchScript. Deze flexibiliteit is vooral handig bij complexe modellen of wanneer je specifieke delen van de code wilt optimaliseren.

Inzetmogelijkheden in TorchScript

Voordat we kijken naar de code voor het exporteren van YOLOv8 modellen naar het TorchScript formaat, moeten we eerst begrijpen waar TorchScript modellen normaal gesproken worden gebruikt.

TorchScript biedt verschillende inzetmogelijkheden voor modellen voor machinaal leren, zoals:

  • C++ API: De meest gebruikte toepassing voor TorchScript is de C++ API, waarmee je geoptimaliseerde TorchScript modellen direct kunt laden en uitvoeren binnen C++ toepassingen. Dit is ideaal voor productieomgevingen waar Python mogelijk niet geschikt of beschikbaar is. De C++ API biedt een low-overhead en efficiĆ«nte uitvoering van TorchScript modellen, waardoor het prestatiepotentieel wordt gemaximaliseerd.

  • Mobile Deployment: TorchScript biedt tools voor het converteren van modellen naar formaten die gemakkelijk kunnen worden ingezet op mobiele apparaten. PyTorch Mobile biedt een runtime om deze modellen uit te voeren binnen iOS en Android apps. Dit maakt offline inferentie met lage latentie mogelijk, wat de gebruikerservaring en gegevensprivacy verbetert.

  • Cloud Deployment: TorchScript modellen kunnen worden ingezet op cloud-gebaseerde servers met oplossingen zoals TorchServe. Het biedt functies zoals modelversie, batching en metriekmonitoring voor schaalbare inzet in productieomgevingen. Cloud implementatie met TorchScript kan je modellen toegankelijk maken via API's of andere webservices.

Exporteren naar TorchScript: Je model YOLOv8 converteren

Door YOLOv8 modellen te exporteren naar TorchScript wordt het eenvoudiger om ze op verschillende plaatsen te gebruiken en kunnen ze sneller en efficiƫnter worden uitgevoerd. Dit is geweldig voor iedereen die deep learning modellen effectiever wil gebruiken in echte toepassingen.

Installatie

Voer het volgende uit om het vereiste pakket te installeren:

Installatie

# Install the required package for YOLOv8
pip install ultralytics

Bekijk voor gedetailleerde instructies en best practices met betrekking tot het installatieproces onze Ultralytics Installatiegids. Als je tijdens de installatie van de vereiste pakketten voor YOLOv8 problemen tegenkomt, raadpleeg dan onze gids Veelgestelde problemen voor oplossingen en tips.

Gebruik

Voordat je in de gebruiksinstructies duikt, is het belangrijk om op te merken dat alle Ultralytics YOLOv8 modellen beschikbaar zijn voor exporteren, maar dat je hier kunt controleren of het model dat je kiest de exportfunctionaliteit ondersteunt.

Gebruik

from ultralytics import YOLO

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

# Export the model to TorchScript format
model.export(format='torchscript')  # creates 'yolov8n.torchscript'

# Load the exported TorchScript model
torchscript_model = YOLO('yolov8n.torchscript')

# Run inference
results = torchscript_model('https://ultralytics.com/images/bus.jpg')
# Export a YOLOv8n PyTorch model to TorchScript format
yolo export model=yolov8n.pt format=torchscript  # creates 'yolov8n.torchscript'

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

Ga voor meer informatie over het exportproces naar de Ultralytics documentatiepagina over exporteren.

Geƫxporteerde YOLOv8 TorchScript modellen inzetten

Na het succesvol exporteren van je Ultralytics YOLOv8 modellen naar TorchScript formaat, kun je ze nu implementeren. De primaire en aanbevolen eerste stap voor het uitvoeren van een TorchScript model is het gebruik van de YOLO("model.torchscript") methode, zoals beschreven in het vorige codefragment. Voor diepgaande instructies over het uitrollen van je TorchScript modellen in verschillende andere instellingen, kun je een kijkje nemen in de volgende bronnen:

  • Verken mobiele inzet: De PyTorch Mobile Documentation biedt uitgebreide richtlijnen voor het implementeren van modellen op mobiele apparaten, zodat je applicaties efficiĆ«nt en responsief zijn.

  • Master Server-kant implementatie: Leer hoe je modellen server-side kunt implementeren met TorchServe, met een stap-voor-stap handleiding voor schaalbare, efficiĆ«nte modelserving.

  • C++ implementeren: Duik in de tutorial over het laden van een TorchScript model in C++. Dit vergemakkelijkt de integratie van uw TorchScript modellen in C++ toepassingen voor verbeterde prestaties en veelzijdigheid.

Samenvatting

In deze handleiding hebben we het proces van het exporteren van Ultralytics YOLOv8 modellen naar het TorchScript formaat onderzocht. Door de gegeven instructies te volgen, kun je YOLOv8 modellen optimaliseren voor prestaties en de flexibiliteit krijgen om ze in te zetten op verschillende platforms en omgevingen.

Ga voor meer informatie over het gebruik naar TorchScript's officiƫle documentatie.

Als je meer wilt weten over andere Ultralytics YOLOv8 integraties, bezoek dan onze integratiegids pagina. Daar vind je veel nuttige bronnen en inzichten.



Aangemaakt 2024-03-01, Bijgewerkt 2024-03-03
Auteurs: glenn-jocher (1), abirami-vina (2)

Reacties