Depois de criar (treinar) um modelo personalizado, será possível exportá-lo.
Depois de exportar o modelo, será possível implantá-lo em um dispositivo.
É possível exportar um modelo de classificação de imagem nos formatos Tensorflow Lite genérico, TensorFlow geral ou TensorFlow.js para Web para um local do Google Cloud Storage usando a API ExportModel.
Exportar para dispositivos
Modelos do TensorFlow Lite
IU da Web
Abra a IU do AutoML Vision Object Detection e clique no ícone de lâmpada na barra de navegação à esquerda para exibir os modelos disponíveis.
Para ver os modelos de outro projeto, selecione o projeto na lista suspensa na parte superior direita da barra de título.
Selecione a linha do modelo que você quer usar para rotular as imagens.
Selecione a guia Testar e usar.
Na seção Use seu modelo, selecione o cartão TF Lite. A janela lateral Use o modelo em seu dispositivo será exibida.
Na janela lateral, especifique o local de saída do Google Cloud Storage. Depois de escolher o local de armazenamento para a saída do modelo, selecione Exportar para iniciar a operação de exportação do modelo.
Depois de exportar, selecione a opção Abrir no Google Cloud Storage na mesma janela para ir diretamente para o diretório de exportação no Google Cloud Storage.
REST
No campo "modelFormat"
, especifique "tflite"
(padrão).
Antes de usar os dados da solicitação abaixo, faça estas substituições:
- project-id: o ID do projeto do GCP.
- model-id: o ID do seu modelo, a partir da
resposta de quando você o criou. Ele é o último elemento no nome do modelo.
Por exemplo:
- Nome do modelo:
projects/project-id/locations/location-id/models/IOD4412217016962778756
- ID do modelo:
IOD4412217016962778756
- Nome do modelo:
- output-storage-bucket: um bucket/diretório do Google Cloud Storage
em que os arquivos de saída serão salvos, expressos no seguinte formato:
gs://bucket/directory/
. O usuário solicitante precisa ter permissão de gravação no bucket.
Método HTTP e URL:
POST https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/models/MODEL_ID:export
Corpo JSON da solicitação:
{ "outputConfig": { "modelFormat": "tflite", "gcsDestination": { "outputUriPrefix": "OUTPUT_STORAGE_BUCKET/" }, } }
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 "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/MODEL_ID:export"
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"; "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/MODEL_ID:export" | Select-Object -Expand Content
Você receberá uma resposta JSON semelhante a esta:
{ "name": "projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.automl.v1.OperationMetadata", "createTime": "2019-07-22T21:23:21.643041Z", "updateTime": "2019-07-22T21:23:21.643041Z", "exportModelDetails": { "outputInfo": { "gcsOutputDirectory": "OUTPUT_STORAGE_BUCKET/model-export/iod/tflite-DATASET_NAME-YYYY-MM-DDThh:mm:ss.sssZ" } } } }
Como resultado, você verá uma estrutura de pastas no diretório fornecido (CLOUD_STORAGE_BUCKET/[DIRECTORY]). A estrutura de pastas criada terá o seguinte formato geral (carimbo de data/hora no formato ISO-8601):
CLOUD_STORAGE_BUCKET/model-export/iod/MODEL_TYPE-DATASET_NAME-YYYY-MM-DDThh:mm:ss.sssZ
Exemplo:
CLOUD_STORAGE_BUCKET/model-export/iod/tf-saved-model-DATASET_NAME-2019-07-22T21:25:35.135Z
CLOUD_STORAGE_BUCKET/model-export/iod/tflite-DATASET_NAME-2019-07-22T21:23:18.861Z
A pasta contém um modelo do TensorFlow Lite chamado model.tflite
, um arquivo de rótulo
chamado dict.txt
e um arquivo tflite_metadata.json
.
Como usar o modelo exportado
Depois de exportar o modelo para um bucket do Google Cloud Storage, implante o modelo do AutoML Vision Edge em dispositivos Android, dispositivos iOS ou Raspberry Pi 3 (em inglês).
Exportar para um contêiner
IU da Web
Abra a IU do AutoML Vision Object Detection e clique no ícone de lâmpada na barra de navegação à esquerda para exibir os modelos disponíveis.
Para ver os modelos de outro projeto, selecione o projeto na lista suspensa na parte superior direita da barra de título.
Clique na linha do modelo que você quer usar para rotular suas imagens.
Selecione a guia Testar e usar.
Na seção Use seu modelo, selecione o cartão TF Lite. A janela lateral Use o modelo em seu dispositivo será exibida.
Na janela lateral, especifique o local de saída do Google Cloud Storage. Depois de escolher o local de armazenamento para a saída do modelo, selecione Exportar para iniciar a operação de exportação do modelo.
Depois de exportar, selecione a opção Abrir no Google Cloud Storage na mesma janela para ir diretamente para o diretório de exportação no Google Cloud Storage.
REST
No campo "modelFormat"
, especifique "tf-saved-model"
.
Antes de usar os dados da solicitação abaixo, faça estas substituições:
- project-id: o ID do projeto do GCP.
- model-id: o ID do seu modelo, a partir da
resposta de quando você o criou. Ele é o último elemento no nome do modelo.
Por exemplo:
- Nome do modelo:
projects/project-id/locations/location-id/models/IOD4412217016962778756
- ID do modelo:
IOD4412217016962778756
- Nome do modelo:
- output-storage-bucket: um bucket/diretório do Google Cloud Storage
em que os arquivos de saída serão salvos, expressos no seguinte formato:
gs://bucket/directory/
. O usuário solicitante precisa ter permissão de gravação no bucket.
Método HTTP e URL:
POST https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/models/MODEL_ID:export
Corpo JSON da solicitação:
{ "outputConfig": { "modelFormat": "tf-saved-model", "gcsDestination": { "outputUriPrefix": "OUTPUT_STORAGE_BUCKET/" }, } }
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 "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/MODEL_ID:export"
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"; "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/MODEL_ID:export" | Select-Object -Expand Content
Você receberá uma resposta JSON semelhante a esta:
{ "name": "projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.automl.v1.OperationMetadata", "createTime": "2019-07-22T21:23:21.643041Z", "updateTime": "2019-07-22T21:23:21.643041Z", "exportModelDetails": { "outputInfo": { "gcsOutputDirectory": "OUTPUT_STORAGE_BUCKET/model-export/iod/tf-saved-model-DATASET_NAME-YYYY-MM-DDThh:mm:ss.sssZ" } } } }
Como resultado, você verá uma estrutura de pastas no diretório fornecido (CLOUD_STORAGE_BUCKET/[DIRECTORY]). A estrutura de pastas criada terá o seguinte formato geral (carimbo de data/hora no formato ISO-8601):
CLOUD_STORAGE_BUCKET/model-export/iod/MODEL_TYPE-DATASET_NAME-YYYY-MM-DDThh:mm:ss.sssZ
Exemplo:
CLOUD_STORAGE_BUCKET/model-export/iod/tf-saved-model-DATASET_NAME-2019-07-22T21:25:35.135Z
CLOUD_STORAGE_BUCKET/model-export/iod/tflite-DATASET_NAME-2019-07-22T21:23:18.861Z
A pasta contém um modelo do TensorFlow chamado saved_model.pb
.
Como usar o modelo exportado
Depois de exportar o modelo para um bucket do Google Cloud Storage, use o modelo exportado para fazer previsões em uma imagem do Docker. Consulte o tutorial sobre contêineres para instruções sobre a implantação em um contêiner.
Exportar para a Web
IU da Web
-
Abra Vision Dashboard e selecione o ícone de lâmpada na barra de navegação lateral para exibir os modelos disponíveis.
Para ver os modelos de outro projeto, selecione o projeto na lista suspensa na parte superior direita da barra de título.
-
Selecione a linha do modelo que você quer usar para rotular as imagens.
-
Selecione a guia Testar e usar logo abaixo da barra de título.
-
Na seção Usar seu modelo, selecione a opção Tensorflow.js. Depois de selecionar a opção Tensorflow.js e especificar o local de exportação no Cloud Storage na janela lateral, selecione Exportar para exportar o modelo do TensorFlow.js pronto para a Web.
REST
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- project-id: o ID do projeto do GCP.
- model-id: o ID do seu modelo, a partir da
resposta de quando você o criou. Ele é o último elemento no nome do modelo.
Por exemplo:
- Nome do modelo:
projects/project-id/locations/location-id/models/IOD4412217016962778756
- ID do modelo:
IOD4412217016962778756
- Nome do modelo:
- output-storage-bucket: um bucket/diretório do Google Cloud Storage
em que os arquivos de saída serão salvos, expressos no seguinte formato:
gs://bucket/directory/
. O usuário solicitante precisa ter permissão de gravação no bucket.
Método HTTP e URL:
POST https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/models/MODEL_ID:export
Corpo JSON da solicitação:
{ "outputConfig": { "modelFormat": "tf_js", "gcsDestination": { "outputUriPrefix": "OUTPUT_STORAGE_BUCKET/" }, } }
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 "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/MODEL_ID:export"
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"; "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/MODEL_ID:export" | Select-Object -Expand Content
Você receberá uma resposta JSON semelhante a esta:
{ "name": "projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.automl.v1.OperationMetadata", "createTime": "2019-07-22T21:23:21.643041Z", "updateTime": "2019-07-22T21:23:21.643041Z", "exportModelDetails": { "outputInfo": { "gcsOutputDirectory": "OUTPUT_STORAGE_BUCKET/model-export/icn/tf_js-DATASET_NAME-YYYY-MM-DDThh:mm:ss.sssZ" } } } }
Como resultado, você vai ver uma pasta no diretório fornecido
(${USER_GCS_PATH}). A pasta criada será nomeada de acordo com o
carimbo de data/hora no formato
/model-export/icn/tf_js-DATASET_NAME-YYYY-MM-DDThh:mm:ss.sssZ
. Por exemplo,
tf_js-edge_model-2019-10-03T17:24:46.999Z
.
A pasta contém arquivos binários (.bin
), um arquivo de rótulo chamado
dict.txt
e um arquivo model.json
.