Exportera en modell programmatiskt
Alla exportalternativ som är tillgängliga på Custom Vision-webbplatsen är också tillgängliga programmatiskt via klientbiblioteken. Du kanske vill använda klientbibliotek så att du kan automatisera omträningsprocessen och uppdatera den modell-iteration 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-träningsresurser Azure-slutpunkt och nycklar och använd dem för att skapa klientobjektet.
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)
Viktigt!
Kom ihåg att ta bort nycklarna från koden när du är klar och publicera dem aldrig offentligt. För produktion bör du överväga att använda ett säkert sätt att lagra och komma åt dina autentiseringsuppgifter. Mer information finns i artikeln om Säkerhet för Azure AI-tjänster.
Anropa exportmetoden
Anropa metoden export_iteration .
- 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
CoreML
,TensorFlow
,DockerFile
,ONNX
,VAIDK
ochOpenVino
. - Parametern flavor anger formatet för den exporterade modellen: tillåtna värden är
Linux
,Windows
, ,ONNX10
ONNX12
,ARM
, ,TensorFlowNormal
ochTensorFlowLite
. - Med råparametern kan du hämta det råa JSON-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 metoden export_iteration .
Viktigt!
Om du redan har exporterat en viss iteration kan du inte anropa metoden export_iteration igen. Hoppa i stället vidare till get_exports-metodanropet för att hämta en länk till din befintliga exporterade modell.
Ladda ned den exporterade modellen
Därefter anropar du metoden get_exports för att kontrollera status för exportåtgärden. Åtgärden körs asynkront, så du bör avsöka den här metoden tills åtgärden har slutförts. När den är klar kan du hämta URI:n där du kan ladda ned modell-iterationen till enheten.
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 metoden get_exports .
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-modellen med Xamarin för bildklassificering i realtid i en Xamarin iOS-app.
- Se exemplet för hur du använder den exporterade modellen (VAIDK/OpenVino)