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 zasobów szkoleniowych usługi Custom Vision dla punktu końcowego i kluczy platformy Azure oraz 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 pracy 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ł Azure AI Services security (Zabezpieczenia usług Azure AI).

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, ONNXDockerFile, , VAIDKi OpenVino.
  • Parametr flavor określa format wyeksportowanego modelu: dozwolone wartości to Linux, , Windows, ONNX10ARMONNX12, TensorFlowNormali .TensorFlowLite
  • Nieprzetworzone parametry umożliwiają pobranie nieprzetworzonej odpowiedzi JSON wraz z odpowiedzią modelu obiektów.
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 sondować tę metodę do momentu zakończenia operacji. Po zakończeniu możesz pobrać identyfikator URI, w którym można 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)

Następne kroki

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