以程式設計方式匯出模型
所有可在自訂視覺網站上取得的匯出選項,也都可以透過用戶端程式庫以程式設計方式取得。 您可能想要使用用戶端程式庫,以便可在過程中完全自動重新定型和更新您在本機裝置上使用的模型反覆運算。
此指南會說明如何使用 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
。 - raw參數會提供您擷取原始 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 Machine Learning 運用 ONNX 模型
- 請參閱 iOS 應用程式中的 CoreML 模型 (英文) 範例,以 Swift 進行即時影像分類。
- 請參閱 Android 應用程式中的 TensorFlow 模型 (英文) 範例,在 Android 上進行即時影像分類。
- 請參閱 CoreML 模型與 Xamarin 的範例,其可在 Xamarin iOS 應用程式中進行即時影像分類。
- 請參閱如何使用所匯出模型的範例 (VAIDK/OpenVino)