Exportera en modell programmatiskt

Alla exportalternativ som är tillgängliga på Custom Vision webbplats kan även göras programmatiskt via klientbiblioteken. Du kanske vill göra detta så att du kan automatisera omträningsprocessen och uppdatera modell iterationen som du använder på en lokal enhet.

Den här guiden visar hur du exporterar din modell till en ONNX-fil med Python SDK.

Skapa en träningsklient

Du måste ha ett CustomVisionTrainingClient-objekt för att exportera en modell iteration. Skapa variabler för dina Custom Vision azure-slutpunkt och prenumerationsnycklar och använd dem för att skapa klientobjektet.

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)

Viktigt

Kom ihåg att ta bort nycklarna från koden när du är klar och aldrig publicera dem offentligt. Överväg att använda ett säkert sätt att lagra och komma åt dina autentiseringsuppgifter för produktion. Mer information finns i artikeln Cognitive Services säkerhet.

Anropa exportmetoden

Anropa export_iteration metod.

  • Ange projekt-ID, iterations-ID för den modell som du vill exportera.
  • Plattformsparametern anger vilken plattform som ska exporteras till: tillåtna värden är , , , , och CoreML TensorFlow DockerFile ONNX VAIDK OpenVino .
  • Parametern flavor anger formatet för den exporterade modellen: tillåtna värden är Linux , , , , , och Windows ONNX10 ONNX12 ARM TensorFlowNormal TensorFlowLite .
  • Parametern raw ger dig möjlighet att hämta JSON-råsvaret tillsammans med objektmodellsvaret.
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)

Mer information finns i export_iteration metod.

Ladda ned den exporterade modellen

Därefter anropar du get_exports för att kontrollera statusen för exportåtgärden. Åtgärden körs asynkront, så du bör avssöka den här metoden tills åtgärden har slutförts. När det är klart kan du hämta URI:en där du kan ladda ned modell iterationen till din enhet.

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)

Mer information finns i get_exports metod.

Sedan kan du programmatiskt ladda ned den exporterade modellen till en plats på enheten.

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)

Nästa steg

Integrera din exporterade modell i ett program genom att utforska någon av följande artiklar eller exempel: