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
,ONNX
DockerFile
, ,VAIDK
iOpenVino
. - Parametr flavor określa format wyeksportowanego modelu: dozwolone wartości to
Linux
, ,Windows
,ONNX10
ARM
ONNX12
,TensorFlowNormal
i .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:
- Używanie modelu Tensorflow z językiem Python
- Używanie modelu ONNX z usługą Windows Machine Learning
- Zobacz przykładowy model CoreML w aplikacji systemu iOS, aby uzyskać klasyfikację obrazów w czasie rzeczywistym za pomocą języka Swift.
- Zobacz przykładowy model Tensorflow w aplikacji systemu Android, aby uzyskać klasyfikację obrazów w czasie rzeczywistym w systemie Android.
- Zobacz przykładowy model CoreML z platformą Xamarin , aby uzyskać klasyfikację obrazów w czasie rzeczywistym w aplikacji platformy Xamarin dla systemu iOS.
- Zobacz przykład, aby dowiedzieć się, jak używać wyeksportowanego modelu (VAIDK/OpenVino)