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
CoreMLTensorFlowDockerFileONNXVAIDKOpenVino. - Parametern flavor anger formatet för den exporterade modellen: tillåtna värden är
Linux, , , , , ochWindowsONNX10ONNX12ARMTensorFlowNormalTensorFlowLite. - 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:
- Använda din Tensorflow-modell med Python
- Använda din ONNX-modell med Windows Machine Learning
- Se exemplet för CoreML-modellen i ett iOS-program för bildklassificering i realtid med Swift.
- Se exemplet för Tensorflow-modellen i ett Android-program för bildklassificering i realtid på Android.
- Se exemplet för CoreML-modell med Xamarin för bildklassificering i realtid i en Xamarin iOS-app.