Esportare un modello a livello di codice
Tutte le opzioni di esportazione disponibili nel sito Web di Visione personalizzata sono anche disponibili programmaticamente tramite le librerie client. È possibile utilizzare librerie client per automatizzare completamente il processo di ripetizione del training e aggiornamento dell'iterazione del modello usato in un dispositivo locale.
Questa guida illustra come esportare il modello in un file ONNX con Python SDK.
Creare un client di training
È necessario disporre di un oggetto CustomVisionTrainingClient per esportare un'iterazione del modello. Creare variabili per l'endpoint e le chiavi di Azure delle risorse di training di Visione personalizzata e usarle per creare l'oggetto client.
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)
Importante
Al termine, ricordarsi di rimuovere le chiavi dal codice e di non renderle mai pubbliche. Per la produzione, è consigliabile usare un modo sicuro per archiviare e accedere alle credenziali, Per altre informazioni, vedere l'articolo Sicurezza di Servizi di Azure AI.
Chiamare il metodo di esportazione
Chiamare il metodo export_iteration.
- Specificare l'ID progetto, l'ID di iterazione del modello da esportare.
- Il parametro piattaforma specifica la piattaforma da esportare in: i valori consentiti sono
CoreML
,TensorFlow
,DockerFile
,ONNX
,VAIDK
eOpenVino
. - Il parametro versione specifica il formato del modello esportato: i valori consentiti sono
Linux
,Windows
,ONNX10
,ONNX12
,ARM
,TensorFlowNormal
eTensorFlowLite
. - Il parametro non elaborato consente di recuperare la risposta JSON non elaborata insieme alla risposta del modello a oggetti.
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)
Per altre informazioni, vedere il metodo export_iteration.
Importante
Se è già stata esportata una particolare iterazione, non è possibile chiamare di nuovo il metodo export_iteration. Passare invece alla chiamata del metodo get_exports per ottenere un collegamento al modello esportato esistente.
Scaricare il modello esportato
Verrà quindi chiamato il metodo get_exports per verificare lo stato dell'operazione di esportazione. L'operazione viene eseguita in modo asincrono, pertanto è consigliabile eseguire il polling di questo metodo fino al completamento dell'operazione. Al termine, è possibile recuperare l'URI da cui è possibile scaricare l'iterazione del modello nel dispositivo.
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)
Per altre informazioni, vedere il metodo get_exports.
È quindi possibile scaricare programmaticamente il modello esportato in un percorso del dispositivo.
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)
Passaggi successivi
Integrare il modello esportato in un'applicazione prendendo in visione uno degli articoli o degli esempi seguenti:
- Usare il modello Tensorflow con Python
- Usare il modello ONNX con Windows Machine Learning
- Vedere l'esempio per l'applicazione del modello CoreML in un'applicazione iOS per la classificazione di immagini in tempo reale con Swift.
- Vedere l'esempio per l'applicazione del modello Tensorflow in un'applicazione Android per la classificazione di immagini in tempo reale su Android.
- Vedere l'esempio per il modello CoreML con Xamarin per la classificazione delle immagini in tempo reale in un'app Xamarin iOS.
- Vedere l'esempio relativo all'uso del modello esportato (VAIDK/OpenVino)