모델 관리

준비된 데이터세트로 학습시켜서 커스텀 모델을 만듭니다. AutoML Video Intelligence는 데이터세트의 항목을 사용하여 모델을 학습시키고, 테스트하고, 성능을 평가합니다. 결과를 검토하고 필요하면 학습 데이터세트를 조정하며 향상된 데이터세트를 사용하여 새 모델을 학습시킵니다.

모델 학습이 완료되기까지 몇 시간 정도 걸릴 수 있습니다. AutoML API를 사용하면 학습의 상태를 확인할 수 있습니다.

학습을 시작할 때마다 AutoML Video Intelligence가 새 모델을 생성하므로 프로젝트에 수많은 모델이 포함됩니다. 프로젝트에 포함된 모델의 목록을 가져오고 더 이상 필요 없는 모델을 삭제할 수 있습니다.

커스텀 모델의 최대 수명은 2년입니다. 이 기간이 지난 후에도 콘텐츠 분류를 계속하려면 새 모델을 만들고 학습시켜야 합니다.

curl 사용

이 항목의 curl 샘플을 더 편리하게 실행하려면 다음 환경 변수를 설정합니다. project-id를 GCP 프로젝트의 이름으로 바꿉니다.

export PROJECT_ID="project-id"

모델 학습

라벨이 지정된 견고한 학습 항목 세트를 포함한 데이터세트가 있다면 이미 커스텀 모델을 만들고 학습할 준비가 되었습니다.

웹 UI

  1. AutoML Video Intelligence UI를 열고 데이터세트 페이지로 이동합니다.

    Google Cloud Console의 데이터세트 페이지
  2. 커스텀 모델을 학습시키는 데 사용할 데이터세트를 선택합니다.

    선택한 데이터세트의 이름이 제목 표시줄에 나타나고 페이지에는 데이터세트에 있는 개별 항목이 라벨과 함께 나열됩니다.

    두 개의 동영상이 표시된 동영상 탭
  3. 데이터세트 검토가 끝났으면 제목 표시줄 바로 아래에 있는 학습하기 탭을 클릭합니다.

    학습 페이지에는 데이터세트에 대한 기본 분석이 제공되며 데이터세트가 학습에 적합한지 여부를 알려 줍니다. AutoML Video Intelligence에서 변경을 제안하면 동영상 페이지로 돌아가서 항목이나 라벨을 추가하는 것이 좋습니다.

  4. 데이터세트가 준비되면 학습 시작을 클릭하여 새 모델을 만들거나 새 모델 학습을 클릭하여 추가 모델을 만듭니다.

명령줄

  • dataset-id를 데이터세트의 ID로 바꿉니다. ID는 데이터세트 이름의 마지막 요소입니다. 예를 들어 데이터세트의 이름이 projects/434039606874/locations/us-central1/datasets/3104518874390609379이면 데이터세트의 ID는 3104518874390609379입니다.
curl -X POST \
  -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
  -H "Content-Type: application/json" \
  https://automl.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/us-central1/models \
  -d '{
    "displayName": "test_model",
    "dataset_id": "dataset-id",
    "videoClassificationModelMetadata": {},
  }'

이 서비스는 다음과 비슷한 응답을 반환합니다.

{
  "name": "projects/434039606874/locations/us-central1/operations/1979469554520652445",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.automl.v1beta1.OperationMetadata",
    "createTime": "2018-04-27T01:28:41.338120Z",
    "updateTime": "2018-04-27T01:28:41.338120Z",
  }
}

작업을 시작할 때 작업 ID를 사용하여 응답에서 장기 실행 작업(항목을 데이터세트로 가져오기)의 상태를 확인할 수 있습니다.

AutoML API를 사용해 작업 상태만 확인할 수 있습니다.

아래 명령에서 작업 이름을 작업의 전체 이름으로 바꿉니다. 전체 이름의 형식은 다음과 같습니다. projects/{project-id}/locations/us-central1/operations/{operation-id}

curl -X GET \
  -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
  -H "Content-Type: application/json" \
  https://automl.googleapis.com/v1beta1/operation-id

가져오기 작업의 경우 다음과 비슷한 출력이 표시됩니다.

{
  "name": "projects/434039606874/locations/us-central1/operations/2116326435840390257",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.automl.v1beta1.OperationMetadata",
    "progressPercentage": 100,
    "partialFailures": [
      {
        "code": 7,
        "message": "Duplicated files detected gs://my-project-lcm/training-data/astros.txt
        and gs://my-project-lcm/training-data/cubs.txt have the same content"
      },
    ],
    "createTime": "2018-04-27T01:39:59.821460Z",
    "updateTime": "2018-04-27T01:43:09.564770Z"
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.protobuf.Empty"
  }
}

모델 만들기 작업의 경우 다음과 비슷한 출력이 표시됩니다.

{
  "name": "projects/434039606874/locations/us-central1/operations/2126599795587061786",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.automl.v1beta1.OperationMetadata",
    "progressPercentage": 100,
    "createTime": "2018-04-27T01:56:28.395640Z",
    "updateTime": "2018-04-27T02:04:12.336070Z"
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.automl.v1beta1.Model",
    "name": "projects/434039606874/locations/us-central1/models/3745331181667467569",
    "createTime": "2018-04-27T02:00:22.329970Z",
    "videoClassificationModelMetadata": {
      "trainBudget": "1",
      "trainCost": "1",
      "stopReason": "BUDGET_REACHED"
    },
    "displayName": "a_98487760535e48319dd204e6394670"
  }
}

Python

이 코드 예제를 실행하려면 우선 Python 클라이언트 라이브러리를 설치해야 합니다.
## To do: Uncomment and set the following variables
# project_id = '[PROJECT_ID]'
# compute_region = '[COMPUTE_REGION]'
# dataset_id = '[DATASET_ID]'
# model_name = '[MODEL_NAME]'

from google.cloud import automl_v1beta1 as automl

client = automl.AutoMlClient()

# A resource that represents Google Cloud Platform location.
project_location = client.location_path(project_id, compute_region)

# Set model name and model metadata for the image dataset.
my_model = {
    "display_name": model_name,
    "dataset_id": dataset_id,
    "video_classification_model_metadata": {}
}

# Create a model with the model metadata in the region.
response = client.create_model(project_location, my_model)

print("Training operation name: {}".format(response.operation.name))
print("Training started...")

모델 정보 가져오기

학습이 완료되면 새로 생성된 모델에 대한 정보를 얻을 수 있습니다.

이 섹션의 예시에서는 모델에 대한 기본 메타데이터를 반환합니다. 모델의 정확성 및 준비상태에 대한 자세한 내용은 모델 평가를 참조하세요.

웹 UI

  1. AutoML Video Intelligence UI에서 모델 페이지로 이동합니다.

    하나의 모델이 표시된 모델 페이지
  2. 보려는 모델의 이름을 클릭합니다.

명령줄

*모델을 만들 때 응답에서 모델 이름을 모델의 전체 이름으로 바꿉니다. 전체 이름의 형식은 다음과 같습니다. projects/{project-id}/locations/us-central1/models/{model-id}
curl -X GET \
  -H "Authorization: Bearer $(gcloud auth application-default print-access-token)"
  -H "Content-Type: application/json" \
  https://automl.googleapis.com/v1beta1/model-name

다음과 비슷한 출력이 표시됩니다.

{
  "name": "projects/915378992997/locations/us-central1/models/VCN2004101834179870720",
  "displayName": "my_model_01",
  "datasetId": "VCN3940649673949184000",
  "createTime": "2018-10-19T17:18:45.320701Z",
  "updateTime": "2018-10-19T17:18:45.320701Z",
  "videoClassificationModelMetadata": {}
}

Python

이 코드 예제를 실행하려면 우선 Python 클라이언트 라이브러리를 설치해야 합니다.
## To do: Uncomment and set the following variables
# project_id = '[PROJECT_ID]'
# compute_region = '[COMPUTE_REGION]'
# model_id = '[MODEL_ID]'

from google.cloud import automl_v1beta1 as automl
from google.cloud.automl_v1beta1 import enums

client = automl.AutoMlClient()

# Get the full path of the model.
model_full_id = client.model_path(project_id, compute_region, model_id)

# Get complete detail of the model.
model = client.get_model(model_full_id)

# Retrieve deployment state.
if model.deployment_state == enums.Model.DeploymentState.DEPLOYED:
    deployment_state = "deployed"
else:
    deployment_state = "undeployed"

# Display the model information.
print("Model name: {}".format(model.name))
print("Model id: {}".format(model.name.split("/")[-1]))
print("Model display name: {}".format(model.display_name))
print("Model create time:")
print("\tseconds: {}".format(model.create_time.seconds))
print("\tnanos: {}".format(model.create_time.nanos))
print("Model deployment state: {}".format(deployment_state))

모델 나열

프로젝트는 수많은 모델을 포함할 수 있습니다. 이 섹션에서는 프로젝트에 사용할 수 있는 모델 목록을 검색하는 방법에 대해 설명합니다.

웹 UI

AutoML Video Intelligence UI모델 페이지로 이동하여 프로젝트의 모델을 봅니다.

하나의 모델이 목록에 있는 모델 페이지

다른 프로젝트의 모델을 보려면 제목 표시줄 오른쪽 위에 있는 드롭다운 목록에서 프로젝트를 선택하세요.

명령줄

curl -X GET \
  -H "Authorization: Bearer $(gcloud auth application-default  \
print-access-token)" \
  -H "Content-Type: application/json" \
https://automl.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/us-central1/models

다음과 비슷한 출력이 표시됩니다.

{
  "model": [
    {
      "name": "projects/915378992997/locations/us-central1/models/VCN2004101834179870720",
      "displayName": "my_model_01",
      "datasetId": "VCN3940649673949184000",
      "createTime": "2018-10-19T17:18:45.320701Z",
      "updateTime": "2018-10-19T17:18:45.320701Z",
      "videoClassificationModelMetadata": {}
    }
  ]
}

Python

이 코드 예제를 실행하려면 우선 Python 클라이언트 라이브러리를 설치해야 합니다.
## To do: Uncomment and set the following variables
# project_id = '[PROJECT_ID]'
# compute_region = '[COMPUTE_REGION]'
# filter_ = ''

from google.cloud import automl_v1beta1 as automl
from google.cloud.automl_v1beta1 import enums

client = automl.AutoMlClient()

# A resource that represents Google Cloud Platform location.
project_location = client.location_path(project_id, compute_region)

# List all the models available in the region by applying filter.
response = client.list_models(project_location, filter_)

print("List of models:")
for model in response:
    # Retrieve deployment state.
    if model.deployment_state == enums.Model.DeploymentState.DEPLOYED:
        deployment_state = "deployed"
    else:
        deployment_state = "undeployed"

    # Display the model information.
    print("Model name: {}".format(model.name))
    print("Model id: {}".format(model.name.split("/")[-1]))
    print("Model display name: {}".format(model.display_name))
    print("Model create time:")
    print("\tseconds: {}".format(model.create_time.seconds))
    print("\tnanos: {}".format(model.create_time.nanos))
    print("Model deployment state: {}".format(deployment_state))

모델 삭제

다음 예제에서는 모델을 삭제합니다.

웹 UI

  1. AutoML Video Intelligence UI에서 모델 페이지로 이동합니다.

    하나의 모델이 표시된 모델 페이지
  2. 삭제하려는 행 맨 오른쪽에 있는 점 3개로 된 메뉴를 클릭하고 삭제를 클릭합니다.
  3. 확인 대화상자에서 확인을 클릭합니다.

명령줄

  • 모델을 만들 때 응답에서 model-name을 모델의 전체 이름으로 바꿉니다. 전체 이름의 형식은 다음과 같습니다. projects/{project-id}/locations/us-central1/models/{model-id}
curl -X DELETE \
  -H "Authorization: Bearer $(gcloud auth application-default  \
print-access-token)" \
  -H "Content-Type: application/json" \
https://automl.googleapis.com/v1beta1/model-name

다음과 비슷한 출력이 표시됩니다. 작업 ID를 사용하여 삭제 작업의 상태를 가져올 수 있습니다. 예를 들어 모델 학습을 참조하세요.

{
  "name": "projects/674030654376/locations/us-central1/operations/VCN2519201041560371200",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.automl.v1beta1.OperationMetadata",
    "createTime": "2018-10-25T01:50:41.551853Z",
    "updateTime": "2018-10-25T01:50:41.551853Z",
    "deleteDetails": {}
  }
}

Python

이 코드 예제를 실행하려면 우선 Python 클라이언트 라이브러리를 설치해야 합니다.
## To do: Uncomment and set the following variables
# project_id = '[PROJECT_ID]'
# compute_region = '[COMPUTE_REGION]'
# model_id = '[MODEL_ID]'

from google.cloud import automl_v1beta1 as automl

client = automl.AutoMlClient()

# Get the full path of the model.
model_full_id = client.model_path(project_id, compute_region, model_id)

# Delete a model.
response = client.delete_model(model_full_id)

# synchronous check of operation status.
print("Model deleted. {}".format(response.result()))