프로그래밍 방식으로 모델 내보내기
Custom Vision 웹 사이트에서 사용할 수 있는 모든 내보내기 옵션도 클라이언트 라이브러리를 통해 프로그래밍 방식으로 사용할 수 있습니다. 로컬 디바이스에서 사용하는 모델 반복을 재학습 및 업데이트하는 프로세스를 완전히 자동화할 수 있도록 클라이언트 라이브러리를 사용할 수 있습니다.
이 가이드에서는 Python SDK를 사용하여 모델을 ONNX 파일로 내보내는 방법을 보여 줍니다.
학습 클라이언트 만들기
모델 반복을 내보낼 CustomVisionTrainingClient 개체가 있어야 합니다. Custom Vision 학습 리소스 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)
Important
완료되면 코드에서 키를 제거하고 공개적으로 게시하지 마세요. 프로덕션의 경우 자격 증명을 안전하게 저장하고 액세스하는 방법을 사용하는 것이 좋습니다. 자세한 내용은 Azure AI 서비스 보안 문서를 참조하세요.
내보내기 메서드 호출
export_iteration 메서드를 호출합니다.
- 내보낼 모델의 프로젝트 ID, 반복 ID를 제공합니다.
- 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 메서드를 참조하세요.
Important
특정 반복을 이미 내보낸 경우에는 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 모델 사용
- Swift를 사용한 실시간 이미지 분류를 위한 iOS 애플리케이션 내 CoreML 모델 샘플을 참조하세요.
- Android에서 실시간 이미지 분류를 위한 Android 애플리케이션 내 Tensorflow 모델 샘플을 참조하세요.
- Xamarin iOS 앱에서 실시간 이미지 분류를 위한 Xamarin을 사용하는 CoreML 모델 샘플을 참조하세요.
- 내보낸 모델(VAIDK/OpenVino)을 사용하는 방법에 대한 샘플을 참조하세요.