Programmgesteuertes Exportieren eines Modells

Alle Exportoptionen, die auf der Custom Vision-Website verfügbar sind, stehen auch programmgesteuert über die Clientbibliotheken zur Verfügung. Sie sollten möglicherweise die Clientbibliotheken verwenden, damit Sie das erneute Training und Aktualisieren der Modelliteration, die Sie auf einem lokalen Gerät verwenden, vollständig automatisieren können.

In diesem Leitfaden erfahren Sie, wie Sie Ihr Modell mit dem Python SDK in eine ONNX-Datei exportieren.

Erstellen eines Trainingsclients

Sie benötigen ein CustomVisionTrainingClient-Objekt, um eine Modelliteration zu exportieren. Erstellen Sie Variablen für Ihre Custom Vision-Trainingsressourcen, Azure-Endpunkt und Schlüssel, und verwenden Sie sie, um das Clientobjekt zu erstellen.

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)

Wichtig

Denken Sie daran, die Schlüssel aus Ihrem Code zu entfernen, wenn Sie fertig sind, und machen Sie sie niemals öffentlich zugänglich. In der Produktionsumgebung sollten Sie eine sichere Methode zum Speichern Ihrer Anmeldeinformationen sowie zum Zugriff darauf verwenden. Weitere Informationen finden Sie im Artikel zur Sicherheit von Azure KI Services.

Aufrufen der Exportmethode

Rufen Sie die Methode export_iteration auf.

  • Geben Sie die Projekt-ID und die Iterations-ID des Modells an, das Sie exportieren möchten.
  • Der platform-Parameter gibt die zu exportierende Plattform an: Zulässige Werte sind CoreML, TensorFlow, DockerFile, ONNX, VAIDK und OpenVino.
  • Der flavor-Parameter gibt das Format des exportierenden Modells an: Zulässige Werte sind Linux, Windows, ONNX10, ONNX12, ARM, TensorFlowNormal und TensorFlowLite.
  • Der raw-Parameter bietet Ihnen die Möglichkeit, die unformatierte JSON-Antwort zusammen mit der Objektmodellantwort abzurufen.
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)

Weitere Informationen finden Sie im Abschnitt zur Methode export_iteration .

Wichtig

Wenn Sie bereits eine bestimmte Iteration exportiert haben, können Sie die export_iteration-Methode nicht erneut aufrufen. Fahren Sie stattdessen mit dem get_exports-Methodenaufruf fort, um einen Link zu Ihrem vorhandenen exportierten Modell abzurufen.

Herunterladen des exportierten Modells

Als Nächstes rufen Sie die get_exports-Methode auf, um den Status des Exportvorgangs zu überprüfen. Der Vorgang wird asynchron ausgeführt, daher sollten Sie diese Methode abfragen, bis der Vorgang abgeschlossen ist. Nach Abschluss des Vorgangs können Sie den URI abrufen, mit dem Sie die Modelliteration auf Ihr Gerät herunterladen können.

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)

Weitere Informationen finden Sie im Abschnitt zur Methode get_exports .

Anschließend können Sie das exportierte Modell programmgesteuert an einen Speicherort auf Ihrem Gerät herunterladen.

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ächste Schritte

Integrieren Sie Ihr exportiertes Modell in eine Anwendung, indem Sie einen der folgenden Artikel oder eines der Beispiele untersuchen: