Condividi tramite


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 e OpenVino.
  • Il parametro versione specifica il formato del modello esportato: i valori consentiti sono Linux, Windows, ONNX10, ONNX12, ARM, TensorFlowNormal e TensorFlowLite.
  • 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: