준비된 데이터 세트로 학습시켜 커스텀 모델을 만듭니다. AutoML API는 데이터 세트의 항목을 이용해 모델을 학습시키고, 테스트하고, 모델의 성능을 평가합니다. 결과를 검토하고 필요하면 학습 데이터세트를 조정하며 향상된 데이터세트를 사용하여 새 모델을 학습시킵니다.
모델 학습이 완료되기까지 몇 시간 정도 걸릴 수 있습니다. AutoML API를 사용하면 학습의 상태를 확인할 수 있습니다.
학습을 시작할 때마다 AutoML Vision이 새 모델을 생성하므로 프로젝트에 수많은 모델이 포함될 수 있습니다. 프로젝트에 포함된 모델의 목록을 가져오고 더 이상 필요 없는 모델을 삭제할 수 있습니다. 또는 Cloud AutoML Vision UI를 사용해서 AutoML API를 통해 생성된 모델을 나열하고 더 이상 필요하지 않은 모델을 삭제할 수 있습니다.
모델은 Google의 최첨단 연구를 기반으로 합니다. 모델은 TF Lite 패키지로 제공됩니다. TensorFlow Lite SDK를 사용하여 TensorFlow Lite 모델을 통합하는 방법에 대한 자세한 내용은 다음의 iOS 및 Android 링크를 참조하세요.
Edge 모델 학습
라벨이 지정된 학습 항목이 다수 포함된 데이터 세트가 있으면 커스텀 Edge 모델을 만들고 학습시킬 준비가 된 것입니다.
TensorFlow Serving 및 TF Lite 모델
Edge 모델을 학습시킬 때 모델에 무엇이 필요한지에 따라 modelType
필드에서 세 가지 값을 지정할 수 있습니다.
- 짧은 지연 시간의 경우
mobile-low-latency-1
- 일반 용도의 경우
mobile-versatile-1
- 예측 품질 개선의 경우
mobile-high-accuracy-1
모델 유형은 API 요청 응답에도 표시됩니다.
웹 UI
-
AutoML Vision Object Detection UI을 엽니다.
데이터 세트 페이지에는 현재 프로젝트에 사용 가능한 데이터 세트가 표시됩니다.
- 커스텀 모델 학습에 사용할 데이터 세트를 선택합니다.
-
데이터세트가 준비되면 학습 탭과 새 모델 학습 버튼을 선택합니다.
그러면 학습 옵션이 포함된 '새 모델 학습' 측면 창이 열립니다.
- 학습의 모델 정의 섹션에서 모델 이름을 변경하고(또는 기본값 사용), 모델 유형으로 radio_button_checked Edge를 선택합니다. Edge 모델을 학습하도록 선택한 후 계속을 선택합니다.
-
다음 모델 최적화 세션에서 원하는 최적화 기준(radio_button_checked 더 높은 정확성, 최적의 절충, 더 빠른 예측)을 선택합니다. 최적화 사양을 선택한 후 계속을 선택합니다.
-
다음 노드 시간 예산 설정 섹션에서 권장 노드 시간 예산을 사용하거나 다른 값을 지정합니다.
기본적으로 대부분의 데이터세트는 24 노드 시간이면 모델을 학습하는 데 충분합니다. 이 권장 값은 모델을 완전히 수렴하기 위한 예상 값입니다. 하지만 다른 값을 선택할 수도 있습니다. 이미지 분류에 대한 노드 시간의 최솟값은 8입니다. 객체 감지의 경우에는 최솟값이 20입니다.
-
학습 시작을 선택하여 모델 학습을 시작합니다.
모델 학습이 완료되기까지 몇 시간 정도 걸릴 수 있습니다. 모델 학습이 끝나면 Google Cloud Platform 프로젝트에 사용된 이메일 주소로 메시지가 수신됩니다.
REST
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- project-id: GCP 프로젝트 ID입니다.
- dataset-id: 데이터 세트의 ID입니다. ID는 데이터 세트 이름의 마지막 요소입니다. 예를 들면 다음과 같습니다.
- 데이터 세트 이름:
projects/project-id/locations/location-id/datasets/3104518874390609379
- 데이터 세트 ID:
3104518874390609379
- 데이터 세트 이름:
- display-name: 선택한 문자열 표시 이름입니다.
특정 필드 고려사항:
imageObjectDetectionModelMetadata.trainBudgetMilliNodeHours
- 이 모델을 만들기 위한 학습 예산으로, 밀리 노드 시간으로 표현됩니다. 이 필드에서 1,000 값은 1 노드 시간을 의미합니다. 실제trainCostMilliNodeHours
는 이 값보다 작거나 같습니다. 추가적인 모델 학습이 더 이상 모델을 향상시키지 못하는 경우, 전체 예산을 사용하지 않고 중지되며stopReason
은MODEL_CONVERGED
가 됩니다.참고: node_hour = actual_hour * number_of_nodes_involved.
모델 유형
mobile-low-latency-1
,mobile-versatile-1
,mobile-high-accuracy-1
의 경우에는 학습 예산이 1,000에서 100,000 밀리 노드 시간 사이여야 합니다(1,000과 100,000 포함). 기본값은 실제 경과 시간으로 1일을 나타내는 24,000입니다.
HTTP 메서드 및 URL:
POST https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/models
JSON 요청 본문:
{ "displayName": "DISPLAY_NAME", "datasetId": "DATASET_ID", "imageObjectDetectionModelMetadata": { "modelType": "mobile-low-latency-1", "trainBudgetMilliNodeHours": "24000" } }
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
curl
요청 본문을 request.json
파일에 저장하고 다음 명령어를 실행합니다.
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: project-id" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/models"
PowerShell
요청 본문을 request.json
파일에 저장하고 다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "project-id" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/models" | Select-Object -Expand Content
다음과 비슷한 출력이 표시됩니다. 작업 ID(이 경우 IOD2106290444865378475
)를 사용하여 작업 상태를 가져올 수 있습니다. 예시를 보려면 장기 실행 작업 다루기를 참조하세요.
{ "name": "projects/PROJECT_ID/locations/us-central1/operations/IOD2106290444865378475", "metadata": { "@type": "type.googleapis.com/google.cloud.automl.v1.OperationMetadata", "createTime": "2019-07-29T17:16:34.476787Z", "updateTime": "2019-07-29T17:16:34.476787Z", "createModelDetails": {} } }
Go
이 샘플을 사용해 보기 전에 클라이언트 라이브러리 페이지에서 언어 설정 안내를 따르세요.
Java
이 샘플을 사용해 보기 전에 클라이언트 라이브러리 페이지에서 언어 설정 안내를 따르세요.
Node.js
이 샘플을 사용해 보기 전에 클라이언트 라이브러리 페이지에서 언어 설정 안내를 따르세요.
Python
이 샘플을 사용해 보기 전에 클라이언트 라이브러리 페이지에서 언어 설정 안내를 따르세요.
작업 상태 나열
다음 코드 샘플을 사용하여 프로젝트의 작업을 나열하고 결과를 필터링합니다.
REST
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- project-id: GCP 프로젝트 ID입니다.
HTTP 메서드 및 URL:
GET https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/operations
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
curl
다음 명령어를 실행합니다.
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: project-id" \
"https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/operations"
PowerShell
다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "project-id" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/operations" | Select-Object -Expand Content
표시되는 결과는 요청한 작업에 따라 다릅니다.
선택한 쿼리 매개변수(operationId
, done
, worksOn
)를 사용하여 반환되는 작업을 필터링할 수도 있습니다. 예를 들어 실행이 완료된 작업 목록을 반환하려면 다음과 같이 URL을 수정하세요.
GET https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/operations?filter="done=true"
Go
이 샘플을 사용해 보기 전에 API 및 참조 > 클라이언트 라이브러리 페이지에서 언어 설정 안내를 따르세요.
Java
이 샘플을 사용해 보기 전에 API 및 참조 > 클라이언트 라이브러리 페이지에서 언어 설정 안내를 따르세요.
Node.js
이 샘플을 사용해 보기 전에 API 및 참조 > 클라이언트 라이브러리 페이지에서 언어 설정 안내를 따르세요.
Python
이 샘플을 사용해 보기 전에 API 및 참조 > 클라이언트 라이브러리 페이지에서 언어 설정 안내를 따르세요.
추가 언어
C#: 클라이언트 라이브러리 페이지의 C# 설정 안내를 따른 다음 .NET용 AutoML Vision 객체 감지 참조 문서를 참조하세요.
PHP: 클라이언트 라이브러리 페이지의 PHP 설정 안내를 따른 다음 PHP용 AutoML Vision 객체 감지 참조 문서를 참조하세요.
Ruby: 클라이언트 라이브러리 페이지의 Ruby 설정 안내를 따른 다음 Ruby용 AutoML Vision 객체 감지 참조 문서를 참조하세요.
작업 상태 가져오기
REST
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- project-id: GCP 프로젝트 ID입니다.
- operation-id: 작업의 ID입니다. ID는 작업 이름의 마지막 요소입니다. 예를 들면 다음과 같습니다.
- 작업 이름:
projects/project-id/locations/location-id/operations/IOD5281059901324392598
- 작업 ID:
IOD5281059901324392598
- 작업 이름:
HTTP 메서드 및 URL:
GET https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
curl
다음 명령어를 실행합니다.
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: project-id" \
"https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID"
PowerShell
다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "project-id" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID" | Select-Object -Expand Content
{ "name": "projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.automl.v1.OperationMetadata", "createTime": "2018-10-29T15:56:29.176485Z", "updateTime": "2018-10-29T16:10:41.326614Z", "importDataDetails": {} }, "done": true, "response": { "@type": "type.googleapis.com/google.protobuf.Empty" } }
모델 만들기 작업이 완료되면 다음과 유사한 출력이 표시됩니다.
{ "name": "projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.automl.v1.OperationMetadata", "createTime": "2019-07-22T18:35:06.881193Z", "updateTime": "2019-07-22T19:58:44.972235Z", "createModelDetails": {} }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.automl.v1.Model", "name": "projects/PROJECT_ID/locations/us-central1/models/MODEL_ID" } }
Go
이 샘플을 사용해 보기 전에 클라이언트 라이브러리 페이지에서 언어 설정 안내를 따르세요.
Java
이 샘플을 사용해 보기 전에 클라이언트 라이브러리 페이지에서 언어 설정 안내를 따르세요.
Node.js
이 샘플을 사용해 보기 전에 클라이언트 라이브러리 페이지에서 언어 설정 안내를 따르세요.
Python
이 샘플을 사용해 보기 전에 클라이언트 라이브러리 페이지에서 언어 설정 안내를 따르세요.
추가 언어
C#: 클라이언트 라이브러리 페이지의 C# 설정 안내를 따른 다음 .NET용 AutoML Vision 객체 감지 참조 문서를 참조하세요.
PHP: 클라이언트 라이브러리 페이지의 PHP 설정 안내를 따른 다음 PHP용 AutoML Vision 객체 감지 참조 문서를 참조하세요.
Ruby: 클라이언트 라이브러리 페이지의 Ruby 설정 안내를 따른 다음 Ruby용 AutoML Vision 객체 감지 참조 문서를 참조하세요.
작업 취소
작업 ID를 사용해 가져오기 또는 학습 작업을 취소할 수 있습니다.
REST
이 샘플을 사용해 보기 전에 클라이언트 라이브러리 페이지에서 언어 설정 안내를 따르세요.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- project-id: GCP 프로젝트 ID입니다.
- operation-id: 작업의 ID입니다. ID는 작업 이름의 마지막 요소입니다. 예를 들면 다음과 같습니다.
- 작업 이름:
projects/project-id/locations/location-id/operations/IOD5281059901324392598
- 작업 ID:
IOD5281059901324392598
- 작업 이름:
HTTP 메서드 및 URL:
POST https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID:cancel
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
curl
다음 명령어를 실행합니다.
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: project-id" \
-H "Content-Type: application/json; charset=utf-8" \
-d "" \
"https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID:cancel"
PowerShell
다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "project-id" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-Uri "https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID:cancel" | Select-Object -Expand Content
{}
모델 정보 가져오기
다음 코드 샘플을 사용하여 특정 학습된 모델에 대한 정보를 가져옵니다. 이 요청에서 반환된 정보를 사용하여 모드를 수정하거나 예측 요청을 보낼 수 있습니다.
REST
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- project-id: GCP 프로젝트 ID입니다.
- model-id: 모델을 만들 때의 응답에서 모델의 ID입니다. ID는 모델 이름의 마지막 요소입니다.
예를 들면 다음과 같습니다.
- 모델 이름:
projects/project-id/locations/location-id/models/IOD4412217016962778756
- 모델 ID:
IOD4412217016962778756
- 모델 이름:
HTTP 메서드 및 URL:
GET https://automl.googleapis.com/v1/projects/project-id/locations/us-central1/models/model-id
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
curl
다음 명령어를 실행합니다.
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: project-id" \
"https://automl.googleapis.com/v1/projects/project-id/locations/us-central1/models/model-id"
PowerShell
다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "project-id" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://automl.googleapis.com/v1/projects/project-id/locations/us-central1/models/model-id" | Select-Object -Expand Content
다음과 비슷한 JSON 응답이 표시됩니다.
{ "name": "projects/project-id/locations/us-central1/models/model-id", "displayName": "display-name", "datasetId": "dataset-id", "createTime": "2019-07-29T17:16:34.476787Z", "deploymentState": "UNDEPLOYED", "updateTime": "2019-07-29T18:30:13.601461Z", "imageObjectDetectionModelMetadata": { "modelType": "mobile-low-latency-1", "nodeQps": -1, "stopReason": "MODEL_CONVERGED", "trainBudgetMilliNodeHours": "24000", "trainCostMilliNodeHours": "861" } }
Go
이 샘플을 사용해 보기 전에 클라이언트 라이브러리 페이지에서 언어 설정 안내를 따르세요.
Java
이 샘플을 사용해 보기 전에 클라이언트 라이브러리 페이지에서 언어 설정 안내를 따르세요.
Node.js
이 샘플을 사용해 보기 전에 클라이언트 라이브러리 페이지에서 언어 설정 안내를 따르세요.
Python
이 샘플을 사용해 보기 전에 클라이언트 라이브러리 페이지에서 언어 설정 안내를 따르세요.
추가 언어
C#: 클라이언트 라이브러리 페이지의 C# 설정 안내를 따른 다음 .NET용 AutoML Vision 객체 감지 참조 문서를 참조하세요.
PHP: 클라이언트 라이브러리 페이지의 PHP 설정 안내를 따른 다음 PHP용 AutoML Vision 객체 감지 참조 문서를 참조하세요.
Ruby: 클라이언트 라이브러리 페이지의 Ruby 설정 안내를 따른 다음 Ruby용 AutoML Vision 객체 감지 참조 문서를 참조하세요.