Een model programmatisch exporteren

Alle exportopties die beschikbaar zijn op de Custom Vision website kunnen ook programmatisch worden uitgevoerd via de clientbibliotheken. U kunt dit doen zodat u het proces van opnieuw trainen en bijwerken van de model-iteratie die u op een lokaal apparaat gebruikt, volledig kunt automatiseren.

In deze handleiding wordt beschreven hoe u uw model exporteert naar een ONNX-bestand met de Python SDK.

Een trainingsclient maken

U hebt een CustomVisionTrainingClient-object nodig om een model iteratie te exporteren. Maak variabelen voor uw Custom Vision azure-eindpunt en abonnementssleutels en gebruik deze om het clientobject te maken.

ENDPOINT = "PASTE_YOUR_CUSTOM_VISION_TRAINING_ENDPOINT_HERE"
training_key = "PASTE_YOUR_CUSTOM_VISION_TRAINING_SUBSCRIPTION_KEY_HERE"

credentials = ApiKeyCredentials(in_headers={"Training-key": training_key})
trainer = CustomVisionTrainingClient(ENDPOINT, credentials)

Belangrijk

Vergeet niet om de sleutels uit uw code te verwijderen wanneer u klaar bent en deze nooit openbaar te plaatsen. Overweeg om voor productie een veilige manier te gebruiken voor het opslaan en openen van uw referenties. Zie het artikel over Cognitive Services beveiliging voor meer informatie.

De exportmethode aanroepen

Roep de export_iteration aan.

  • Geef de project-id en iteratie-id op van het model dat u wilt exporteren.
  • De platformparameter geeft het platform aan dat moet worden geëxporteerd: toegestane waarden CoreML zijn , , , , en TensorFlow DockerFile ONNX VAIDK OpenVino .
  • De parameter flavor geeft de indeling van het geëxporteerde model aan: toegestane waarden zijn , , , , , en Linux Windows ONNX10 ONNX12 ARM TensorFlowNormal TensorFlowLite .
  • De parameter raw biedt u de mogelijkheid om het onbewerkte JSON-antwoord samen met het antwoord van het objectmodel op te halen.
project_id = "PASTE_YOUR_PROJECT_ID"
iteration_id = "PASTE_YOUR_ITERATION_ID"
platform = "ONNX"
flavor = "ONNX10"
export = trainer.export_iteration(project_id, iteration_id, platform, flavor, raw=False)

Zie de methode export_iteration meer informatie.

Het geëxporteerde model downloaden

Vervolgens roept u de methode get_exports aan om de status van de exportbewerking te controleren. De bewerking wordt asynchroon uitgevoerd, dus u moet deze methode peilen totdat de bewerking is voltooid. Wanneer dit is voltooid, kunt u de URI ophalen waar u de model-iteratie naar uw apparaat kunt downloaden.

while (export.status == "Exporting"):
    print ("Waiting 10 seconds...")
    time.sleep(10)
    exports = trainer.get_exports(project_id, iteration_id)
    # Locate the export for this iteration and check its status  
    for e in exports:
        if e.platform == export.platform and e.flavor == export.flavor:
            export = e
            break
    print("Export status is: ", export.status)

Zie de methode get_exports meer informatie.

Vervolgens kunt u het geëxporteerde model programmatisch downloaden naar een locatie op uw apparaat.

if export.status == "Done":
    # Success, now we can download it
    export_file = requests.get(export.download_uri)
    with open("export.zip", "wb") as file:
        file.write(export_file.content)

Volgende stappen

Integreer uw geëxporteerde model in een toepassing door een van de volgende artikelen of voorbeelden te verkennen: