Programové exportování modelu

Všechny možnosti exportu, které jsou k dispozici na Custom Vision webu, je možné provést také programově prostřednictvím klientských knihoven. Můžete to udělat tak, abyste mohli plně automatizovat proces opětovného trénování a aktualizace iterace modelu, kterou používáte na místním zařízení.

Tato příručka ukazuje, jak exportovat model do souboru ONNX pomocí sady Python SDK.

Vytvoření trénovacího klienta

K exportu iterace modelu potřebujete objekt CustomVisionTrainingClient. Vytvořte proměnné pro váš Custom Vision trénovací prostředky Azure koncový bod a klíče předplatného a použijte je k vytvoření objektu klienta.

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)

Důležité

Nezapomeňte klíče z kódu odebrat, až to bude hotové, a nikdy je ne zveřejníte. V produkčním prostředí zvažte použití zabezpečeného způsobu ukládání přihlašovacích údajů a přístupu k těmto přihlašovacím údajům. Další informace najdete v článku Cognitive Services zabezpečení.

Volání metody exportu

Zavolejte export_iteration.

  • Zadejte ID projektu a ID iterace modelu, který chcete exportovat.
  • Parametr platformy určuje platformu, do které se má exportovat: povolené hodnoty jsou CoreML , , , , a TensorFlow DockerFile ONNX VAIDK OpenVino .
  • Parametr flavor určuje formát exportovaného modelu: povolené hodnoty jsou Linux , , , , , a Windows ONNX10 ONNX12 ARM TensorFlowNormal TensorFlowLite .
  • Parametr raw poskytuje možnost načíst nezpracovanou odpověď JSON spolu s odpovědí na objektový model.
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)

Další informace najdete v export_iteration.

Stažení vyexportovaného modelu

Dále zavoláte metodu get_exports a zkontrolujete stav operace exportu. Operace se spouští asynchronně, takže byste měli tuto metodu dotazovat, dokud se operace nedokoní. Po dokončení můžete načíst identifikátor URI, kam si můžete stáhnout iteraci modelu do zařízení.

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)

Další informace najdete v get_exports.

Exportovaný model pak můžete stáhnout prostřednictvím kódu programu do umístění na zařízení.

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)

Další kroky

Exportovaný model můžete integrovat do aplikace prozkoumáváním jednoho z následujících článků nebo ukázek: