Como exportar modelos do Edge

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 seguintes formatos:

Exportar para dispositivos

Modelos do TensorFlow Lite

IU da Web

  1. Abra Vision Dashboard 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.

  2. Clique na linha do modelo que você quer usar para rotular suas imagens.

  3. Clique na guia Testar e usar logo abaixo da barra de título.

  4. Na seção Use seu modelo, selecione a opção TF Lite. Depois de selecionar a opção TF Lite e especificar o local de exportação no Cloud Storage na janela lateral, selecione Exportar para exportar o modelo Edge TF Lite.

    opção atualizada de exportação do modelo do TF Lite opção atualizada de exportação do modelo do TF Lite

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
  • 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/icn/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/icn/MODEL_TYPE-DATASET_NAME-YYYY-MM-DDThh:mm:ss.sssZ

Exemplo:

  • CLOUD_STORAGE_BUCKET/model-export/icn/tf-saved-model-DATASET_NAME-2019-07-22T21:25:35.135Z
  • CLOUD_STORAGE_BUCKET/model-export/icn/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).

Principais modelos de ML

IU da Web

  1. Abra Vision Dashboard 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.

  2. Clique na linha do modelo que você quer usar para rotular suas imagens.

  3. Clique na guia Testar e usar logo abaixo da barra de título.

  4. Na seção Usar seu modelo, selecione a opção ML principal. Depois de selecionar a opção ML principal e especificar o local de exportação no Cloud Storage na janela lateral, clique em Exportar para exportar o modelo Edge.

    opção de exportação de modelo de ML principal opção de exportação de modelo de ML principal

REST

No campo "modelFormat", especifique "core_ml".

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
  • 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": "core_ml",
    "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-11-12T22:53:55.290584Z",
    "updateTime": "2019-11-12T22:53:55.290584Z",
    "exportModelDetails": {
      "outputInfo": {
        "gcsOutputDirectory": "OUTPUT_STORAGE_BUCKET/model-export/icn/core_ml-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/icn/MODEL_TYPE-DATASET_NAME-YYYY-MM-DDThh:mm:ss.sssZ

Exemplo:

  • CLOUD_STORAGE_BUCKET/model-export/icn/tf-saved-model-DATASET_NAME-2019-07-22T21:25:35.135Z
  • CLOUD_STORAGE_BUCKET/model-export/icn/tflite-DATASET_NAME-2019-07-22T21:23:18.861Z

A pasta contém um modelo de ML principal chamado model.mlmodel e um arquivo dict.txt.

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 iOS.

Exportar para um contêiner

IU da Web

  1. Abra Vision Dashboard 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.

  2. Clique na linha do modelo que você quer usar para rotular suas imagens.

  3. Clique na guia Testar e usar logo abaixo da barra de título.

  4. Na seção Usar seu modelo, selecione a opção Contêiner. Depois de selecionar a opção Contêiner e especificar o local de exportação no Cloud Storage na janela lateral, clique em Exportar para exportar o modelo Edge.

    opção de exportação de contêiner opção de exportação de contêiner

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
  • 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/icn/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/icn/MODEL_TYPE-DATASET_NAME-YYYY-MM-DDThh:mm:ss.sssZ

Exemplo:

  • CLOUD_STORAGE_BUCKET/model-export/icn/tf-saved-model-DATASET_NAME-2019-07-22T21:25:35.135Z
  • CLOUD_STORAGE_BUCKET/model-export/icn/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 o Edge TPU

IU da Web

  1. Abra o Painel do Vision 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.

  2. Selecione a linha do modelo que você quer usar para rotular as imagens.

  3. Selecione a guia Testar e usar logo abaixo da barra de título.

  4. Na seção Usar seu modelo, selecione a opção Coral. Depois de selecionar a opção Coral e especificar o local de exportação no Cloud Storage na janela lateral, clique em Exportar para exportar o modelo Edge.

    opção de exportação de coral (edgetpu tflite) opção de exportação de coral (edgetpu tflite)

REST

No campo "modelFormat", especifique "edgetpu_tflite".

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
  • 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": "edgetpu_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-11-12T22:55:03.554806Z",
    "updateTime": "2019-11-12T22:55:03.554806Z",
    "exportModelDetails": {
      "outputInfo": {
        "gcsOutputDirectory": "OUTPUT_STORAGE_BUCKET/model-export/icn/edgetpu_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/icn/MODEL_TYPE-DATASET_NAME-YYYY-MM-DDThh:mm:ss.sssZ

Exemplo:

  • CLOUD_STORAGE_BUCKET/model-export/icn/tf-saved-model-DATASET_NAME-2019-07-22T21:25:35.135Z
  • CLOUD_STORAGE_BUCKET/model-export/icn/tflite-DATASET_NAME-2019-07-22T21:23:18.861Z

A pasta contém um modelo do TensorFlow Lite chamado edgetpu_model.tflite, um arquivo de rótulo chamado dict.txt e um arquivo tflite_metadata.json.

Como usar o modelo exportado

Para mais informações sobre como implantar no Edge TPU, veja a documentação oficial do Coral sobre como executar uma inferência no Edge TPU.

Exportar para a Web

IU da Web

  1. 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.

  2. Selecione a linha do modelo que você quer usar para rotular as imagens.

  3. Selecione a guia Testar e usar logo abaixo da barra de título.

  4. 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.

    opção de exportação do Tensorflow.js opção de exportação do Tensorflow.js

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
  • 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.

Exemplo de pasta Tensorflow.js