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
, ,TensorFlow
DockerFile
,ONNX
, ,VAIDK
enOpenVino
. - De smaakparameter geeft de indeling van het geëxporteerde model aan: toegestane waarden zijn
Linux
, ,Windows
ONNX10
,ONNX12
,ARM
, , enTensorFlowNormal
.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:
- Uw Tensorflow-model gebruiken met Python
- Uw ONNX-model gebruiken met Windows Machine Learning
- Zie het voorbeeld voor CoreML-model in een iOS-toepassing voor realtime afbeeldingsclassificatie met Swift.
- Bekijk het voorbeeld voor het Tensorflow-model in een Android-toepassing voor realtime afbeeldingsclassificatie op Android.
- Zie het voorbeeld voor het CoreML-model met Xamarin voor realtime afbeeldingsclassificatie in een Xamarin iOS-app.
- Zie het voorbeeld voor het gebruik van het geëxporteerde model (VAIDK/OpenVino)