다음을 통해 공유


프로그래밍 방식으로 모델 내보내기

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, VAIDKOpenVino입니다.
  • flavor 매개 변수는 내보낼 모델의 형식을 지정합니다. 허용된 값은 Linux, Windows, ONNX10, ONNX12, ARM, TensorFlowNormalTensorFlowLite입니다.
  • 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)

다음 단계

다음 문서 또는 샘플 중 하나를 탐색하여 내보낸 모델을 애플리케이션에 통합합니다.