以程式設計方式導出模型
自訂視覺 網站上所有可用的導出選項也可透過用戶端連結庫以程式設計方式取得。 您可能想要使用用戶端連結庫,以便完全自動化重新定型和更新您在本機裝置上使用的模型反覆項目程式。
本指南說明如何使用 Python SDK 將模型匯出至 ONNX 檔案。
建立定型用戶端
您需要有 CustomVisionTrainingClient 物件才能匯出模型反覆專案。 為您的 自訂視覺 定型資源建立變數 Azure 端點和密鑰,並使用它們來建立客戶端物件。
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)
重要
請記得在程式代碼完成時從程式碼中移除金鑰,且絕對不要公開發佈密鑰。 針對生產環境,請考慮使用安全的方式來儲存和存取您的認證。 如需詳細資訊,請參閱 Azure AI 服務安全性一文。
呼叫匯出方法
呼叫 export_iteration 方法。
- 提供您要匯出之模型的項目標識碼、反覆專案識別碼。
- platform 參數會指定要匯出至的平台:允許的值為
CoreML
、、TensorFlow
、DockerFile
、ONNX
、VAIDK
和OpenVino
。 - flavor 參數會指定匯出模型的格式:允許的值為
Linux
、Windows
、ONNX10
、、ONNX12
、、ARM
TensorFlowNormal
和TensorFlowLite
。 - 原始參數可讓您選擇擷取原始 JSON 回應以及物件模型回應。
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)
如需詳細資訊,請參閱 export_iteration 方法。
重要
如果您已經匯出特定的反覆專案,就無法再次呼叫 export_iteration 方法。 相反地,請跳到 get_exports 方法呼叫,以取得現有導出模型的連結。
下載導出的模型
接下來,您將呼叫 get_exports 方法來檢查匯出作業的狀態。 作業會以異步方式執行,因此您應該輪詢此方法,直到作業完成為止。 完成時,您可以擷取 URI,您可以在其中將模型反覆項目下載到您的裝置。
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)
如需詳細資訊,請參閱 get_exports 方法。
然後,您可以透過程序設計方式將導出的模型下載到裝置上的位置。
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)
下一步
藉由探索下列其中一篇文章或範例,將導出的模型整合至應用程式:
- 搭配 Python 使用 Tensorflow 模型
- 搭配 Windows 機器學習 使用您的 ONNX 模型
- 如需使用 Swift 進行即時影像分類,請參閱 iOS 應用程式中 CoreML 模型的範例。
- 如需 Android 上的即時影像分類,請參閱 Android 應用程式中 Tensorflow 模型的範例。
- 如需 Xamarin iOS 應用程式中的即時影像分類,請參閱搭配 Xamarin 的 CoreML 模型範例。
- 請參閱範例以瞭解如何使用導出的模型 (VAIDK/OpenVino)