Nesta página, mostramos como treinar um modelo de detecção de objetos do AutoML com base em um conjunto de dados de imagem usando o Google Cloud console ou a API Agent Platform.
Treinar um modelo do AutoML
Google Cloud Console do
Noconsole, na seção "Agent Platform", acesse a página Conjuntos de dados. Google Cloud
Clique no nome do conjunto de dados que você quer usar para treinar seu modelo para abrir a página de detalhes.
Clique em Treinar novo modelo.
Para o método de treinamento, selecione AutoML.
Na seção Escolha onde usar o modelo, escolha o local do host do modelo: Cloud, Edge ou Agent Platform Vision.
Clique em Continuar.
Dê um nome para o modelo.
Se você quiser definir manualmente como os dados de treinamento são divididos, expanda as Opções avançadas e selecione uma opção de divisão de dados. Saiba mais.
Clique em Iniciar treinamento.
O treinamento do modelo pode levar muitas horas dependendo do tamanho e da complexidade dos dados, além do orçamento de treinamento, se você tiver especificado um. Você pode fechar essa guia e voltar a ela mais tarde. Você receberá um e-mail quando o treinamento do seu modelo for concluído.
API
Selecione a guia abaixo para seu idioma ou ambiente:
REST
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- LOCATION: região em que o conjunto de dados está localizado e o modelo é criado. Por exemplo,
us-central1. - PROJECT: seu [ID do projeto](/resource-manager/docs/creating-managing-projects#identifiers). .
- TRAININGPIPELINE_DISPLAYNAME: obrigatório. Um nome de exibição do trainingPipeline.
- DATASET_ID: o número do ID do conjunto de dados a ser usado para treinamento.
fractionSplit: opcional. Um dos vários modelos de ML possíveis pode usar opções de divisão para os dados. ParafractionSplit, os valores precisam somar 1. Por exemplo:-
{"trainingFraction": "0.7","validationFraction": "0.15","testFraction": "0.15"}
-
- MODEL_DISPLAYNAME*: um nome de exibição do modelo enviado (criado) pelo TrainingPipeline.
- MODEL_DESCRIPTION*: uma descrição para o modelo.
- modelToUpload.labels*: qualquer conjunto de pares de chave-valor para organizar seus modelos. Por exemplo:
- "env": "prod"
- "tier": "backend"
- MODELTYPE†: o tipo de modelo hospedado na nuvem a ser treinado. As opções
são:
CLOUD_1: um modelo mais adequado para ser usado no Google Cloud e que não pode ser exportado. Em comparação com os modelos CLOUD_HIGH_ACCURACY_1 e CLOUD_LOW_LATENCY_1 acima, a previsão é de qualidade de previsão mais alta e latência mais baixa.CLOUD_HIGH_ACCURACY_1: um modelo mais adequado para ser usado no Google Cloud e que não pode ser exportado. Espera-se que este modelo tenha uma latência maior, mas também tenha uma qualidade de previsão maior do que outros modelos de nuvem.CLOUD_LOW_LATENCY_1: um modelo mais adequado para ser usado no Google Cloud e que não pode ser exportado. Espera-se que este modelo tenha baixa latência, mas pode ter uma qualidade de previsão menor do que outros modelos de nuvem.
- NODE_HOUR_BUDGET†: o custo de treinamento real será igual ou menor que este valor. Para modelos de nuvem, o orçamento precisa ser de 20.000 a 900 mil horas de nó (inclusive). O valor padrão é 216.000, o que representa um dia em tempo decorrido, desde que nove nós sejam usados.
- PROJECT_NUMBER: o número do projeto gerado automaticamente
| * | A descrição do arquivo de esquema que você especifica em trainingTaskDefinition descreve o uso deste campo. |
| † | O arquivo de esquema especificado em trainingTaskDefinition declara e descreve esse campo. |
Método HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/trainingPipelines
Corpo JSON da solicitação:
{
"displayName": "TRAININGPIPELINE_DISPLAYNAME",
"inputDataConfig": {
"datasetId": "DATASET_ID",
"fractionSplit": {
"trainingFraction": "DECIMAL",
"validationFraction": "DECIMAL",
"testFraction": "DECIMAL"
}
},
"modelToUpload": {
"displayName": "MODEL_DISPLAYNAME",
"description": "MODEL_DESCRIPTION",
"labels": {
"KEY": "VALUE"
}
},
"trainingTaskDefinition": "gs://google-cloud-aiplatform/schema/trainingjob/definition/automl_image_object_detection_1.0.0.yaml",
"trainingTaskInputs": {
"modelType": ["MODELTYPE"],
"budgetMilliNodeHours": NODE_HOUR_BUDGET
}
}
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/trainingPipelines"
PowerShell
Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/trainingPipelines" | Select-Object -Expand Content
A resposta contém informações sobre especificações, bem como o TRAININGPIPELINE_ID.
Java
Antes de testar esta amostra, siga as instruções de configuração do Java no Guia de início rápido da Agent Platform: como usar bibliotecas de cliente.
Para autenticar na Agent Platform, configure o Application Default Credentials. Se quiser mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Antes de testar esta amostra, siga as instruções de configuração Node.js no Guia de início rápido da Agent Platform: como usar bibliotecas de cliente.
Para autenticar na Agent Platform, configure o Application Default Credentials. Se quiser mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para saber como instalar ou atualizar o SDK da Agent Platform para Python, consulte Instalar o SDK da Agent Platform para Python. Para mais informações, consulte a Python documentação de referência da API.
Controlar a divisão de dados usando REST
É possível controlar como os dados de treinamento são divididos entre os conjuntos de treinamento, validação e teste. Ao usar a API Agent Platform, use o
Split objeto para determinar
a divisão de dados. O objeto Split pode ser incluído no objeto InputConfig como um dos vários tipos de objeto, cada um fornecendo uma maneira diferente de dividir os dados de treinamento. É possível selecionar apenas um método.
-
FractionSplit:- TRAINING_FRACTION: a fração dos dados de treinamento a ser usada para o conjunto de treinamento.
- VALIDATION_FRACTION: a fração dos dados de treinamento a ser usada para o conjunto de validação. Não usada para dados de vídeo.
- TEST_FRACTION: a fração dos dados de treinamento a ser usada para o conjunto de teste.
Se alguma das frações for especificada, tudo deverá ser especificado. As frações precisam ser adicionadas a 1,0. Os valores padrão das frações variam de acordo com o tipo de dados. Saiba mais.
"fractionSplit": { "trainingFraction": TRAINING_FRACTION, "validationFraction": VALIDATION_FRACTION, "testFraction": TEST_FRACTION }, -
FilterSplit: - TRAINING_FILTER: itens de dados que correspondem a esse filtro são usados no conjunto de treinamento.
- VALIDATION_FILTER: os itens de dados que correspondem a esse filtro são usados no conjunto de validação. Precisa ser "-" para dados de vídeo.
- TEST_FILTER: os itens de dados que correspondem a esse filtro são usados no conjunto de teste.
Esses filtros podem ser usados com o rótulo ml_use
ou com qualquer rótulo aplicado aos seus dados. Saiba mais sobre como usar
o rótulo ml-use label
e outros rótulos
para filtrar os dados.
O exemplo a seguir mostra como usar o objeto
filterSplit com o rótulo ml_use, com o conjunto de validação
incluído:
"filterSplit": {
"trainingFilter": "labels.aiplatform.googleapis.com/ml_use=training",
"validationFilter": "labels.aiplatform.googleapis.com/ml_use=validation",
"testFilter": "labels.aiplatform.googleapis.com/ml_use=test"
}