Share via


Een model programmatisch exporteren

Alle exportopties die beschikbaar zijn op de Custom Vision-website zijn ook programmatisch beschikbaar via de clientbibliotheken. U kunt clientbibliotheken gebruiken, zodat u het proces voor het opnieuw trainen en bijwerken van de modeliteratie die u op een lokaal apparaat gebruikt, volledig kunt automatiseren.

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

Een trainingsclient maken

U moet een CustomVisionTrainingClient-object hebben om een modeliteratie te exporteren. Maak variabelen voor uw Custom Vision-trainingsresources voor Azure-eindpunten en -sleutels en gebruik deze om het clientobject te maken.

ENDPOINT = "PASTE_YOUR_CUSTOM_VISION_TRAINING_ENDPOINT_HERE"
training_key = "PASTE_YOUR_CUSTOM_VISION_TRAINING_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 beveiligingsartikel over Azure AI-services voor meer informatie.

De exportmethode aanroepen

Roep de methode export_iteration aan.

  • Geef de project-id, iteratie-id op van het model dat u wilt exporteren.
  • De platformparameter specificeert het platform dat moet worden geëxporteerd naar: toegestane waarden zijn CoreML, , TensorFlowDockerFile, ONNX, , VAIDKen OpenVino.
  • De smaakparameter geeft de indeling van het geëxporteerde model aan: toegestane waarden zijn Linux, , WindowsONNX10, ONNX12, ARM, , en TensorFlowNormal.TensorFlowLite
  • De onbewerkte parameter biedt u de optie 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 voor meer informatie.

Belangrijk

Als u al een bepaalde iteratie hebt geëxporteerd, kunt u de methode export_iteration niet opnieuw aanroepen. Ga in plaats daarvan verder naar de get_exports methode-aanroep om een koppeling naar uw bestaande geëxporteerde model op te halen.

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 pollen totdat de bewerking is voltooid. Wanneer dit is voltooid, kunt u de URI ophalen waar u de modeliteratie 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 voor 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: