Udostępnij przez


Programowe eksportowanie modelu

Wszystkie opcje eksportu dostępne w witrynie internetowej usługi Custom Vision są również dostępne programowo za pośrednictwem bibliotek klienckich. Możesz użyć bibliotek klienckich, aby w pełni zautomatyzować proces ponownego trenowania i aktualizowania iteracji modelu używanej na urządzeniu lokalnym.

W tym przewodniku pokazano, jak wyeksportować model do pliku ONNX przy użyciu zestawu SDK języka Python.

Tworzenie klienta szkoleniowego

Aby wyeksportować iterację modelu, musisz mieć obiekt CustomVisionTrainingClient . Utwórz zmienne dla punktu końcowego i kluczy zasobów szkoleniowych usługi Custom Vision w Azure i użyj ich do utworzenia obiektu klienta.

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)

Ważne

Pamiętaj, aby usunąć klucze z kodu po zakończeniu i nigdy nie publikować ich publicznie. W przypadku środowiska produkcyjnego rozważ użycie bezpiecznego sposobu przechowywania i uzyskiwania dostępu do poświadczeń. Aby uzyskać więcej informacji, zobacz artykuł Zabezpieczenia narzędzi Foundry Tools.

Wywoływanie metody eksportu

Wywołaj metodę export_iteration .

  • Podaj identyfikator projektu, identyfikator iteracji modelu, który chcesz wyeksportować.
  • Parametr platformy określa platformę do eksportowania do: dozwolone wartości to CoreML, , TensorFlow, DockerFileONNX, , VAIDKi OpenVino.
  • Parametr flavor określa format wyeksportowanego modelu: dozwolone wartości to Linux, , Windows, ONNX10ONNX12ARM, TensorFlowNormali .TensorFlowLite
  • Parametr raw daje możliwość pobrania nieprzetworzonej odpowiedzi JSON wraz z odpowiedzią w postaci modelu obiektu.
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)

Aby uzyskać więcej informacji, zobacz metodę export_iteration .

Ważne

Jeśli określona iteracja została już wyeksportowana, nie można ponownie wywołać metody export_iteration . Zamiast tego przejdź do wywołania metody get_exports, aby uzyskać link do istniejącego wyeksportowanego modelu.

Pobieranie wyeksportowanego modelu

Następnie wywołasz metodę get_exports , aby sprawdzić stan operacji eksportowania. Operacja jest uruchamiana asynchronicznie, dlatego należy sprawdzać tę metodę do jej zakończenia. Po zakończeniu możesz pobrać URI, gdzie możesz pobrać iterację modelu na urządzenie.

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)

Aby uzyskać więcej informacji, zobacz metodę get_exports .

Następnie można programowo pobrać wyeksportowany model do lokalizacji na urządzeniu.

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)

Zintegruj wyeksportowany model z aplikacją, eksplorując jeden z następujących artykułów lub przykładów: