준비된 데이터 세트로 학습시켜 커스텀 모델을 만듭니다. AutoML API는 데이터 세트의 항목을 이용해 모델을 학습시키고, 테스트하고, 모델의 성능을 평가합니다. 결과를 검토하고 필요하면 학습 데이터세트를 조정하며 향상된 데이터세트를 사용하여 새 모델을 학습시킵니다.
모델 학습이 완료되기까지 몇 시간 정도 걸릴 수 있습니다. AutoML API를 사용하면 학습의 상태를 확인할 수 있습니다.
학습을 시작할 때마다 AutoML Vision이 새 모델을 생성하므로 프로젝트에 수많은 모델이 포함될 수 있습니다. 프로젝트에 포함된 모델의 목록을 가져오고 더 이상 필요 없는 모델을 삭제할 수 있습니다. 또는 Cloud AutoML Vision UI를 사용해서 AutoML API를 통해 생성된 모델을 나열하고 더 이상 필요하지 않은 모델을 삭제할 수 있습니다.
모델은 Google의 최첨단 연구를 기반으로 합니다. 모델은 TF Lite 패키지로 제공됩니다. TensorFlow Lite SDK를 사용하여 TensorFlow Lite 모델을 통합하는 방법에 대한 자세한 내용은 다음의 iOS 및 Android 링크를 참조하세요.
Edge 모델 학습
라벨이 지정된 학습 항목이 다수 포함된 데이터 세트가 있으면 커스텀 Edge 모델을 만들고 학습시킬 준비가 된 것입니다.
추가 언어
C#: 클라이언트 라이브러리 페이지의 C# 설정 안내를 따른 다음 .NET용 AutoML Vision 참고 문서를 참조하세요.
PHP: 클라이언트 라이브러리 페이지의 PHP 설정 안내를 따른 다음 PHP용 AutoML Vision 참고 문서를 참조하세요.
Ruby: 클라이언트 라이브러리 페이지의 Ruby 설정 안내를 따른 다음 Ruby용 AutoML Vision 참조 문서를 참조하세요.
TensorFlow Serving 및 TF Lite 모델
학습 시에는 특정 사용 사례에 따라 원하는 Edge 모델 유형을 선택할 수 있습니다.
- 짧은 지연 시간(
mobile-low-latency-1
) - 범용 용도(
mobile-versatile-1
) - 예측 품질 개선(
mobile-high-accuracy-1
)
웹 UI
-
Vision Dashboard을 엽니다.
데이터 세트 페이지에는 현재 프로젝트에 사용 가능한 데이터 세트가 표시됩니다.
- 커스텀 모델 학습에 사용할 데이터 세트를 선택합니다.
-
데이터세트가 준비되면 학습 탭과 새 모델 학습 버튼을 선택합니다.
그러면 학습 옵션이 포함된 '새 모델 학습' 측면 창이 열립니다.
- 학습의 모델 정의 섹션에서 모델 이름을 변경하고(또는 기본값 사용), 모델 유형으로 radio_button_checked Edge를 선택합니다. Edge 모델을 학습하도록 선택한 후 계속을 선택합니다.
-
다음 모델 최적화 세션에서 원하는 최적화 기준(radio_button_checked 더 높은 정확성, 최적의 절충, 더 빠른 예측)을 선택합니다. 최적화 사양을 선택한 후 계속을 선택합니다.
-
다음 노드 시간 예산 설정 섹션에서 권장 노드 시간 예산을 사용하거나 다른 값을 지정합니다.
기본적으로 대부분의 데이터세트는 24 노드 시간이면 모델을 학습하는 데 충분합니다. 이 권장 값은 모델을 완전히 수렴하기 위한 예상 값입니다. 하지만 다른 값을 선택할 수도 있습니다. 이미지 분류에 대한 노드 시간의 최솟값은 8입니다. 객체 감지의 경우에는 최솟값이 20입니다.
-
학습 시작을 선택하여 모델 학습을 시작합니다.
모델 학습이 완료되기까지 몇 시간 정도 걸릴 수 있습니다. 모델 학습이 끝나면 Google Cloud Platform 프로젝트에 사용된 이메일 주소로 메시지가 수신됩니다.
REST
Edge 모델을 학습시킬 때 모델에 무엇이 필요한지에 따라 modelType
필드에서 세 가지 값을 지정할 수 있습니다.
- 짧은 지연 시간의 경우
mobile-low-latency-1
- 범용 용도의 경우
mobile-versatile-1
- 예측 품질 개선의 경우
mobile-high-accuracy-1
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- project-id: GCP 프로젝트 ID입니다.
- display-name: 선택한 문자열 표시 이름입니다.
- dataset-id: 데이터 세트의 ID입니다. ID는 데이터 세트 이름의 마지막 요소입니다. 예를 들면 다음과 같습니다.
- 데이터 세트 이름:
projects/project-id/locations/location-id/datasets/3104518874390609379
- 데이터 세트 ID:
3104518874390609379
- 데이터 세트 이름:
HTTP 메서드 및 URL:
POST https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/models
JSON 요청 본문:
{ "displayName": "DISPLAY_NAME", "datasetId": "DATASET_ID", "imageClassificationModelMetadata": { "trainBudget": "1", "modelType": "mobile-low-latency-1" } }
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
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(이 경우 ICN2106290444865378475
)를 사용하여 작업 상태를 가져올 수 있습니다. 예시를 보려면 장기 실행 작업 다루기를 참조하세요.
{ "name": "projects/PROJECT_ID/locations/us-central1/operations/ICN2106290444865378475", "metadata": { "@type": "type.googleapis.com/google.cloud.automl.v1.OperationMetadata", "createTime": "2019-10-30T20:06:08.253243Z", "updateTime": "2019-10-30T20:06:08.253243Z", "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
이 샘플을 사용해 보기 전에 API 및 참조 > 클라이언트 라이브러리 페이지에서 언어 설정 안내를 따르세요.
Java
이 샘플을 사용해 보기 전에 API 및 참조 > 클라이언트 라이브러리 페이지에서 언어 설정 안내를 따르세요.
Node.js
이 샘플을 사용해 보기 전에 API 및 참조 > 클라이언트 라이브러리 페이지에서 언어 설정 안내를 따르세요.
Python
이 샘플을 사용해 보기 전에 API 및 참조 > 클라이언트 라이브러리 페이지에서 언어 설정 안내를 따르세요.
추가 언어
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-10-30T20:06:08.253243Z", "deploymentState": "UNDEPLOYED", "updateTime": "2019-10-30T20:54:50.472328Z", "imageClassificationModelMetadata": { "trainBudget": "1", "modelType": "mobile-low-latency-1", "nodeQps": 3.2 } }
Go
이 샘플을 사용해 보기 전에 클라이언트 라이브러리 페이지에서 언어 설정 안내를 따르세요.
Java
이 샘플을 사용해 보기 전에 클라이언트 라이브러리 페이지에서 언어 설정 안내를 따르세요.
Node.js
이 샘플을 사용해 보기 전에 클라이언트 라이브러리 페이지에서 언어 설정 안내를 따르세요.
Python
이 샘플을 사용해 보기 전에 클라이언트 라이브러리 페이지에서 언어 설정 안내를 따르세요.
추가 언어
C#: 클라이언트 라이브러리 페이지의 C# 설정 안내를 따른 다음 .NET용 AutoML Vision 객체 감지 참조 문서를 참조하세요.
PHP: 클라이언트 라이브러리 페이지의 PHP 설정 안내를 따른 다음 PHP용 AutoML Vision 객체 감지 참조 문서를 참조하세요.
Ruby: 클라이언트 라이브러리 페이지의 Ruby 설정 안내를 따른 다음 Ruby용 AutoML Vision 객체 감지 참조 문서를 참조하세요.
재개 가능 학습
이제 대규모 데이터세트(이미지 1,000개 이상 포함)의 경우 커스텀 모델 학습을 일시 중지하고 재개할 수 있습니다. 모델 학습 일시중지는 일시중지 버튼과 관련된 직접 조치가 아닙니다.
대신 사용자는 노드 시간 예산을 지정된 시간(예: 2시간)으로 설정합니다.
이 시간에 도달하면 모델 상태와 상관없이 학습이 자동으로 중지됩니다.
재개 가능한 학습은 다음과 같은 제한사항과 함께 제공됩니다.
- 기본 모델 시간 제한 - 지난 14일 이내에 학습한 모델에서만 학습을 재개할 수 있습니다. 요청 14일 전에 생성된 기본 모델은 재개 가능한 학습이 적용되지 않습니다.
- 라벨 수정 없음 - 기본 모델의 데이터 세트에서 라벨을 변경하면 재개 가능한 학습이 실패합니다.
- 성능 향상 보장 없음 - 모델에서 재개 가능한 학습을 사용하더라도 모델 성능 향상이 보장되지 않습니다.
웹 UI
이 샘플을 사용해 보기 전에 클라이언트 라이브러리 페이지에서 언어 설정 안내를 따르세요.
-
AutoML Vision UI을 엽니다.
데이터 세트 페이지에는 현재 프로젝트에 사용 가능한 데이터 세트가 표시됩니다.
커스텀 모델 학습에 사용할 데이터 세트를 선택합니다.
선택한 데이터세트의 표시 이름이 제목 표시줄에 나타나고 페이지에는 데이터세트에 있는 개별 항목이 라벨과 함께 나열됩니다.
데이터 세트 검토가 끝났으면 제목 표시줄 바로 아래에 있는 학습 탭을 클릭합니다.
이전에 학습한 모델은 이 탭의 목록에 나타납니다.
모델에 재개 가능한 학습이 있으면 전체 평가 보기 옵션 근처에 옵션으로 표시됩니다.
학습 재개를 선택하여 해당 모델의 학습을 재개합니다.
원래 모델을 학습시키는 것과 마찬가지로 학습 재개를 선택하면 '새 모델 학습' 측면 창이 열립니다. 모델 정의 섹션에서 새 모델의 이름을 변경할 수 있습니다. 이 모델을 학습시키는 데 사용되는 기본 모델의 이름도 표시됩니다.
모델을 정의한 후 계속을 선택하여 다음 섹션으로 이동합니다.
다음 노드 시간 예산 설정 섹션에서 노드 시간 예산을 지정합니다. 이 예산에는 초기 모델 학습과 유사한 가격 책정 구조 및 할당량 제한이 적용됩니다.
학습 예산을 지정한 후 학습 시작을 선택합니다. 재개 가능한 학습이 완료되면 이메일이 전송됩니다.
REST
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- base-model-id: 기본(기존) 모델의 ID입니다. 새 모델은 이 기본 모델을 기준으로 생성됩니다. 다음 새 모델 사양이 기본 모델과 일치해야 합니다.
- 프로젝트
- location
-
modelType
*
* 기본 및 새
modelType
은 이 필드가 새 모델 요청에서 생략된 경우에도 확인됩니다. - project-id: GCP 프로젝트 ID입니다.
- display-name: 선택한 문자열 표시 이름입니다.
- dataset-id: 데이터 세트의 ID입니다. ID는 데이터 세트 이름의 마지막 요소입니다. 예를 들면 다음과 같습니다.
- 데이터 세트 이름:
projects/project-id/locations/location-id/datasets/3104518874390609379
- 데이터 세트 ID:
3104518874390609379
- 데이터 세트 이름:
HTTP 메서드 및 URL:
POST https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/models
JSON 요청 본문:
{ "baseModelId": BASE_MODEL_ID, "displayName": "DISPLAY_NAME", "datasetId": "DATASET_ID", "imageClassificationModelMetadata": { "trainBudget": "1", "modelType": "mobile-low-latency-1" } }
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
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(이 경우 ICN2106290444865378475
)를 사용하여 작업 상태를 가져올 수 있습니다. 예시를 보려면 장기 실행 작업 다루기를 참조하세요.
{ "name": "projects/PROJECT_ID/locations/us-central1/operations/ICN2106290444865378475", "metadata": { "@type": "type.googleapis.com/google.cloud.automl.v1.OperationMetadata", "createTime": "2019-10-30T20:06:08.253243Z", "updateTime": "2019-10-30T20:06:08.253243Z", "createModelDetails": {} } }