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 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
undOpenVino
. - Der flavor-Parameter gibt das Format des exportierenden Modells an: Zulässige Werte sind
Linux
,Windows
,ONNX10
,ONNX12
,ARM
,TensorFlowNormal
undTensorFlowLite
. - 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:
- Verwenden Ihres Tensorflow-Modells mit Python
- Verwenden Ihres ONNX-Modells mit Windows Machine Learning
- Weitere Informationen finden Sie im Beispiel für das Core ML-Modell in einer iOS-Anwendung für die Bildklassifizierung in Echtzeit mit Swift.
- Weitere Informationen finden Sie im Beispiel für das Tensorflow-Modell in einer Android-Anwendung für die Bildklassifizierung in Echtzeit unter Android.
- Weitere Informationen finden Sie im Beispiel für das Core ML-Modell mit Xamarin für die Bildklassifizierung in Echtzeit in einer Xamarin-iOS-App.
- Weitere Informationen finden zur Verwendung des exportierten Modells (VAIDK/OpenVino) finden Sie im Beispiel.