Exportar modelos de AutoML Edge

En esta página se describe cómo usar Vertex AI para exportar tus modelos de AutoML Edge de imagen y vídeo a Cloud Storage.

Para obtener información sobre cómo exportar modelos tabulares, consulta el artículo Exportar un modelo tabular de AutoML.

Introducción

Una vez que hayas entrenado un modelo de AutoML Edge, en algunos casos podrás exportarlo en diferentes formatos, en función de cómo quieras usarlo. Los archivos del modelo exportado se guardan en un segmento de Cloud Storage y se pueden usar para hacer predicciones en el entorno que elijas.

No puedes usar un modelo Edge en Vertex AI para ofrecer predicciones. Debes desplegar el modelo Edge en un dispositivo externo para obtener predicciones.

Exportar un modelo

Usa los siguientes ejemplos de código para identificar un modelo de AutoML Edge, especificar una ubicación de almacenamiento de archivos de salida y, a continuación, enviar la solicitud de exportación del modelo.

Imagen

Seleccione la pestaña correspondiente a su objetivo:

Clasificación

Los modelos de clasificación de imágenes de AutoML Edge entrenados se pueden exportar en los siguientes formatos:

  • TensorFlow Lite: exporta tu modelo como un paquete de TensorFlow Lite para ejecutarlo en dispositivos perimetrales o móviles.
  • TensorFlow Lite de Edge TPU: exporta tu modelo como un paquete de TensorFlow Lite para ejecutarlo en dispositivos Edge TPU.
  • Contenedor: exporta tu modelo como un SavedModel de TensorFlow para ejecutarlo en un contenedor Docker.
  • Core ML: exporta un archivo .mlmodel para ejecutar tu modelo en dispositivos iOS y macOS.
  • Tensorflow.js exporta tu modelo como un paquete de TensorFlow.js para ejecutarlo en el navegador y en Node.js.

Selecciona la pestaña correspondiente a tu idioma o entorno:

Consola

  1. En la Google Cloud consola, en la sección Vertex AI, ve a la página Modelos.

    Ir a la página Modelos

  2. Haz clic en el número de versión del modelo de AutoML Edge que quieras exportar para abrir su página de detalles.
  3. Haz clic en Exportar.
  4. En la ventana lateral Exportar modelo, especifica la ubicación de Cloud Storage donde se almacenarán los resultados de la exportación del modelo de Edge.
  5. Haz clic en Exportar.
  6. Haz clic en Hecho para cerrar la ventana lateral Exportar modelo.

REST

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • LOCATION: la ubicación de tu proyecto.
  • PROJECT: tu ID de proyecto.
  • MODEL_ID: número de ID del modelo de AutoML Edge entrenado que vas a exportar.
  • EXPORT_FORMAT: el tipo de modelo de Edge que vas a exportar. Para este objetivo, las opciones son las siguientes:
    • tflite (TensorFlow Lite): exporta tu modelo como un paquete de TensorFlow Lite para ejecutarlo en dispositivos perimetrales o móviles.
    • edgetpu-tflite (TensorFlow Lite de Edge TPU): exporta tu modelo como un paquete de TensorFlow Lite para ejecutarlo en dispositivos Edge TPU.
    • tf-saved-model (Contenedor): exporta tu modelo como un SavedModel de TensorFlow para ejecutarlo en un contenedor Docker.
    • core-ml (Core ML): exporta un archivo .mlmodel para ejecutar tu modelo en dispositivos iOS y macOS.
    • tf-js (Tensorflow.js): exporta tu modelo como un paquete de TensorFlow.js para ejecutarlo en el navegador y en Node.js.
  • OUTPUT_BUCKET: ruta al directorio del segmento de Cloud Storage en el que quieres almacenar los archivos del modelo de Edge.
  • Método HTTP y URL:

    POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/models/MODEL_ID:export

    Cuerpo JSON de la solicitud:

    {
      "outputConfig": {
        "exportFormatId": "EXPORT_FORMAT",
        "artifactDestination": {
          "outputUriPrefix": "gs://OUTPUT_BUCKET/"
        }
      }
    }
    

    Para enviar tu solicitud, elige una de estas opciones:

    curl

    Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente comando:

    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/models/MODEL_ID:export"

    PowerShell

    Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente comando:

    $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/models/MODEL_ID:export" | Select-Object -Expand Content

    La respuesta contiene información sobre las especificaciones, así como el elemento OPERATION_ID.

    Puedes consultar el estado de la operación de exportación para ver cuándo finaliza.

Java

Antes de probar este ejemplo, sigue las Java instrucciones de configuración de la guía de inicio rápido de Vertex AI con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Java de Vertex AI.

Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.


import com.google.api.gax.longrunning.OperationFuture;
import com.google.cloud.aiplatform.v1.ExportModelOperationMetadata;
import com.google.cloud.aiplatform.v1.ExportModelRequest;
import com.google.cloud.aiplatform.v1.ExportModelResponse;
import com.google.cloud.aiplatform.v1.GcsDestination;
import com.google.cloud.aiplatform.v1.ModelName;
import com.google.cloud.aiplatform.v1.ModelServiceClient;
import com.google.cloud.aiplatform.v1.ModelServiceSettings;
import java.io.IOException;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;

public class ExportModelSample {

  public static void main(String[] args)
      throws IOException, InterruptedException, ExecutionException, TimeoutException {
    // TODO(developer): Replace these variables before running the sample.
    String project = "YOUR_PROJECT_ID";
    String modelId = "YOUR_MODEL_ID";
    String gcsDestinationOutputUriPrefix = "gs://YOUR_GCS_SOURCE_BUCKET/path_to_your_destination/";
    String exportFormat = "YOUR_EXPORT_FORMAT";
    exportModelSample(project, modelId, gcsDestinationOutputUriPrefix, exportFormat);
  }

  static void exportModelSample(
      String project, String modelId, String gcsDestinationOutputUriPrefix, String exportFormat)
      throws IOException, InterruptedException, ExecutionException, TimeoutException {
    ModelServiceSettings modelServiceSettings =
        ModelServiceSettings.newBuilder()
            .setEndpoint("us-central1-aiplatform.googleapis.com:443")
            .build();

    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests. After completing all of your requests, call
    // the "close" method on the client to safely clean up any remaining background resources.
    try (ModelServiceClient modelServiceClient = ModelServiceClient.create(modelServiceSettings)) {
      String location = "us-central1";
      GcsDestination.Builder gcsDestination = GcsDestination.newBuilder();
      gcsDestination.setOutputUriPrefix(gcsDestinationOutputUriPrefix);

      ModelName modelName = ModelName.of(project, location, modelId);
      ExportModelRequest.OutputConfig outputConfig =
          ExportModelRequest.OutputConfig.newBuilder()
              .setExportFormatId(exportFormat)
              .setArtifactDestination(gcsDestination)
              .build();

      OperationFuture<ExportModelResponse, ExportModelOperationMetadata> exportModelResponseFuture =
          modelServiceClient.exportModelAsync(modelName, outputConfig);
      System.out.format(
          "Operation name: %s\n", exportModelResponseFuture.getInitialFuture().get().getName());
      System.out.println("Waiting for operation to finish...");
      ExportModelResponse exportModelResponse =
          exportModelResponseFuture.get(300, TimeUnit.SECONDS);

      System.out.format("Export Model Response: %s\n", exportModelResponse);
    }
  }
}

Node.js

Antes de probar este ejemplo, sigue las Node.js instrucciones de configuración de la guía de inicio rápido de Vertex AI con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Node.js de Vertex AI.

Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.

/**
 * TODO(developer): Uncomment these variables before running the sample.\
   (Not necessary if passing values as arguments)
 */

// const modelId = 'YOUR_MODEL_ID';
// const gcsDestinationOutputUriPrefix ='YOUR_GCS_DEST_OUTPUT_URI_PREFIX';
//    eg. "gs://<your-gcs-bucket>/destination_path"
// const exportFormat = 'YOUR_EXPORT_FORMAT';
// const project = 'YOUR_PROJECT_ID';
// const location = 'YOUR_PROJECT_LOCATION';

// Imports the Google Cloud Model Service Client library
const {ModelServiceClient} = require('@google-cloud/aiplatform');

// Specifies the location of the api endpoint
const clientOptions = {
  apiEndpoint: 'us-central1-aiplatform.googleapis.com',
};

// Instantiates a client
const modelServiceClient = new ModelServiceClient(clientOptions);

async function exportModel() {
  // Configure the name resources
  const name = `projects/${project}/locations/${location}/models/${modelId}`;
  // Configure the outputConfig resources
  const outputConfig = {
    exportFormatId: exportFormat,
    gcsDestination: {
      outputUriPrefix: gcsDestinationOutputUriPrefix,
    },
  };
  const request = {
    name,
    outputConfig,
  };

  // Export Model request
  const [response] = await modelServiceClient.exportModel(request);
  console.log(`Long running operation : ${response.name}`);

  // Wait for operation to complete
  await response.promise();
  const result = response.result;

  console.log(`Export model response : ${JSON.stringify(result)}`);
}
exportModel();

Python

Para saber cómo instalar o actualizar el SDK de Vertex AI para Python, consulta Instalar el SDK de Vertex AI para Python. Para obtener más información, consulta la documentación de referencia de la API Python.

from google.cloud import aiplatform


def export_model_sample(
    project: str,
    model_id: str,
    gcs_destination_output_uri_prefix: str,
    location: str = "us-central1",
    api_endpoint: str = "us-central1-aiplatform.googleapis.com",
    timeout: int = 300,
):
    # The AI Platform services require regional API endpoints.
    client_options = {"api_endpoint": api_endpoint}
    # Initialize client that will be used to create and send requests.
    # This client only needs to be created once, and can be reused for multiple requests.
    client = aiplatform.gapic.ModelServiceClient(client_options=client_options)
    output_config = {
        "artifact_destination": {
            "output_uri_prefix": gcs_destination_output_uri_prefix
        },
        # For information about export formats: https://cloud.google.com/ai-platform-unified/docs/export/export-edge-model#aiplatform_export_model_sample-drest
        "export_format_id": "tf-saved-model",
    }
    name = client.model_path(project=project, location=location, model=model_id)
    response = client.export_model(name=name, output_config=output_config)
    print("Long running operation:", response.operation.name)
    print("output_info:", response.metadata.output_info)
    export_model_response = response.result(timeout=timeout)
    print("export_model_response:", export_model_response)

Clasificación

Los modelos de clasificación de imágenes de AutoML Edge entrenados se pueden exportar en los siguientes formatos:

  • TensorFlow Lite: exporta tu modelo como un paquete de TensorFlow Lite para ejecutarlo en dispositivos perimetrales o móviles.
  • TensorFlow Lite de Edge TPU: exporta tu modelo como un paquete de TensorFlow Lite para ejecutarlo en dispositivos Edge TPU.
  • Contenedor: exporta tu modelo como un SavedModel de TensorFlow para ejecutarlo en un contenedor Docker.
  • Core ML: exporta un archivo .mlmodel para ejecutar tu modelo en dispositivos iOS y macOS.
  • Tensorflow.js exporta tu modelo como un paquete de TensorFlow.js para ejecutarlo en el navegador y en Node.js.

Selecciona la pestaña correspondiente a tu idioma o entorno:

Consola

  1. En la Google Cloud consola, en la sección Vertex AI, ve a la página Modelos.

    Ir a la página Modelos

  2. Haz clic en el número de versión del modelo de AutoML Edge que quieras exportar para abrir su página de detalles.
  3. Haz clic en Exportar.
  4. En la ventana lateral Exportar modelo, especifica la ubicación de Cloud Storage donde se almacenarán los resultados de la exportación del modelo de Edge.
  5. Haz clic en Exportar.
  6. Haz clic en Hecho para cerrar la ventana lateral Exportar modelo.

REST

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • LOCATION: la ubicación de tu proyecto.
  • PROJECT: tu ID de proyecto.
  • MODEL_ID: número de ID del modelo de AutoML Edge entrenado que vas a exportar.
  • EXPORT_FORMAT: el tipo de modelo de Edge que vas a exportar. Para este objetivo, las opciones son las siguientes:
    • tflite (TensorFlow Lite): exporta tu modelo como un paquete de TensorFlow Lite para ejecutarlo en dispositivos perimetrales o móviles.
    • edgetpu-tflite (TensorFlow Lite de Edge TPU): exporta tu modelo como un paquete de TensorFlow Lite para ejecutarlo en dispositivos Edge TPU.
    • tf-saved-model (Contenedor): exporta tu modelo como un SavedModel de TensorFlow para ejecutarlo en un contenedor Docker.
    • core-ml (Core ML): exporta un archivo .mlmodel para ejecutar tu modelo en dispositivos iOS y macOS.
    • tf-js (Tensorflow.js): exporta tu modelo como un paquete de TensorFlow.js para ejecutarlo en el navegador y en Node.js.
  • OUTPUT_BUCKET: ruta al directorio del segmento de Cloud Storage en el que quieres almacenar los archivos del modelo de Edge.
  • Método HTTP y URL:

    POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/models/MODEL_ID:export

    Cuerpo JSON de la solicitud:

    {
      "outputConfig": {
        "exportFormatId": "EXPORT_FORMAT",
        "artifactDestination": {
          "outputUriPrefix": "gs://OUTPUT_BUCKET/"
        }
      }
    }
    

    Para enviar tu solicitud, elige una de estas opciones:

    curl

    Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente comando:

    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/models/MODEL_ID:export"

    PowerShell

    Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente comando:

    $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/models/MODEL_ID:export" | Select-Object -Expand Content

    La respuesta contiene información sobre las especificaciones, así como el elemento OPERATION_ID.

    Puedes consultar el estado de la operación de exportación para ver cuándo finaliza.

Java

Antes de probar este ejemplo, sigue las Java instrucciones de configuración de la guía de inicio rápido de Vertex AI con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Java de Vertex AI.

Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.


import com.google.api.gax.longrunning.OperationFuture;
import com.google.cloud.aiplatform.v1.ExportModelOperationMetadata;
import com.google.cloud.aiplatform.v1.ExportModelRequest;
import com.google.cloud.aiplatform.v1.ExportModelResponse;
import com.google.cloud.aiplatform.v1.GcsDestination;
import com.google.cloud.aiplatform.v1.ModelName;
import com.google.cloud.aiplatform.v1.ModelServiceClient;
import com.google.cloud.aiplatform.v1.ModelServiceSettings;
import java.io.IOException;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;

public class ExportModelSample {

  public static void main(String[] args)
      throws IOException, InterruptedException, ExecutionException, TimeoutException {
    // TODO(developer): Replace these variables before running the sample.
    String project = "YOUR_PROJECT_ID";
    String modelId = "YOUR_MODEL_ID";
    String gcsDestinationOutputUriPrefix = "gs://YOUR_GCS_SOURCE_BUCKET/path_to_your_destination/";
    String exportFormat = "YOUR_EXPORT_FORMAT";
    exportModelSample(project, modelId, gcsDestinationOutputUriPrefix, exportFormat);
  }

  static void exportModelSample(
      String project, String modelId, String gcsDestinationOutputUriPrefix, String exportFormat)
      throws IOException, InterruptedException, ExecutionException, TimeoutException {
    ModelServiceSettings modelServiceSettings =
        ModelServiceSettings.newBuilder()
            .setEndpoint("us-central1-aiplatform.googleapis.com:443")
            .build();

    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests. After completing all of your requests, call
    // the "close" method on the client to safely clean up any remaining background resources.
    try (ModelServiceClient modelServiceClient = ModelServiceClient.create(modelServiceSettings)) {
      String location = "us-central1";
      GcsDestination.Builder gcsDestination = GcsDestination.newBuilder();
      gcsDestination.setOutputUriPrefix(gcsDestinationOutputUriPrefix);

      ModelName modelName = ModelName.of(project, location, modelId);
      ExportModelRequest.OutputConfig outputConfig =
          ExportModelRequest.OutputConfig.newBuilder()
              .setExportFormatId(exportFormat)
              .setArtifactDestination(gcsDestination)
              .build();

      OperationFuture<ExportModelResponse, ExportModelOperationMetadata> exportModelResponseFuture =
          modelServiceClient.exportModelAsync(modelName, outputConfig);
      System.out.format(
          "Operation name: %s\n", exportModelResponseFuture.getInitialFuture().get().getName());
      System.out.println("Waiting for operation to finish...");
      ExportModelResponse exportModelResponse =
          exportModelResponseFuture.get(300, TimeUnit.SECONDS);

      System.out.format("Export Model Response: %s\n", exportModelResponse);
    }
  }
}

Node.js

Antes de probar este ejemplo, sigue las Node.js instrucciones de configuración de la guía de inicio rápido de Vertex AI con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Node.js de Vertex AI.

Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.

/**
 * TODO(developer): Uncomment these variables before running the sample.\
   (Not necessary if passing values as arguments)
 */

// const modelId = 'YOUR_MODEL_ID';
// const gcsDestinationOutputUriPrefix ='YOUR_GCS_DEST_OUTPUT_URI_PREFIX';
//    eg. "gs://<your-gcs-bucket>/destination_path"
// const exportFormat = 'YOUR_EXPORT_FORMAT';
// const project = 'YOUR_PROJECT_ID';
// const location = 'YOUR_PROJECT_LOCATION';

// Imports the Google Cloud Model Service Client library
const {ModelServiceClient} = require('@google-cloud/aiplatform');

// Specifies the location of the api endpoint
const clientOptions = {
  apiEndpoint: 'us-central1-aiplatform.googleapis.com',
};

// Instantiates a client
const modelServiceClient = new ModelServiceClient(clientOptions);

async function exportModel() {
  // Configure the name resources
  const name = `projects/${project}/locations/${location}/models/${modelId}`;
  // Configure the outputConfig resources
  const outputConfig = {
    exportFormatId: exportFormat,
    gcsDestination: {
      outputUriPrefix: gcsDestinationOutputUriPrefix,
    },
  };
  const request = {
    name,
    outputConfig,
  };

  // Export Model request
  const [response] = await modelServiceClient.exportModel(request);
  console.log(`Long running operation : ${response.name}`);

  // Wait for operation to complete
  await response.promise();
  const result = response.result;

  console.log(`Export model response : ${JSON.stringify(result)}`);
}
exportModel();

Python

Para saber cómo instalar o actualizar el SDK de Vertex AI para Python, consulta Instalar el SDK de Vertex AI para Python. Para obtener más información, consulta la documentación de referencia de la API Python.

from google.cloud import aiplatform


def export_model_sample(
    project: str,
    model_id: str,
    gcs_destination_output_uri_prefix: str,
    location: str = "us-central1",
    api_endpoint: str = "us-central1-aiplatform.googleapis.com",
    timeout: int = 300,
):
    # The AI Platform services require regional API endpoints.
    client_options = {"api_endpoint": api_endpoint}
    # Initialize client that will be used to create and send requests.
    # This client only needs to be created once, and can be reused for multiple requests.
    client = aiplatform.gapic.ModelServiceClient(client_options=client_options)
    output_config = {
        "artifact_destination": {
            "output_uri_prefix": gcs_destination_output_uri_prefix
        },
        # For information about export formats: https://cloud.google.com/ai-platform-unified/docs/export/export-edge-model#aiplatform_export_model_sample-drest
        "export_format_id": "tf-saved-model",
    }
    name = client.model_path(project=project, location=location, model=model_id)
    response = client.export_model(name=name, output_config=output_config)
    print("Long running operation:", response.operation.name)
    print("output_info:", response.metadata.output_info)
    export_model_response = response.result(timeout=timeout)
    print("export_model_response:", export_model_response)

Detección de objetos

Los modelos de detección de objetos en imágenes de AutoML Edge entrenados se pueden exportar en los siguientes formatos:

  • TensorFlow Lite: exporta tu modelo como un paquete de TensorFlow Lite para ejecutarlo en dispositivos perimetrales o móviles.
  • Contenedor: exporta tu modelo como un SavedModel de TensorFlow para ejecutarlo en un contenedor Docker.
  • Tensorflow.js exporta tu modelo como un paquete de TensorFlow.js para ejecutarlo en el navegador y en Node.js.

Selecciona la pestaña correspondiente a tu idioma o entorno:

Consola

  1. En la Google Cloud consola, en la sección Vertex AI, ve a la página Modelos.

    Ir a la página Modelos

  2. Haz clic en el número de versión del modelo de AutoML Edge que quieras exportar para abrir su página de detalles.
  3. Seleccione la pestaña Implementar y probar para ver los formatos de exportación disponibles.
  4. En la sección Usar tu modelo optimizado para el extremo, selecciona el formato del modelo de exportación que quieras.
  5. En la ventana lateral Exportar modelo, especifica la ubicación de Cloud Storage donde se almacenarán los resultados de la exportación del modelo de Edge.
  6. Haz clic en Exportar.
  7. Haz clic en Hecho para cerrar la ventana lateral Exportar modelo.

REST

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • LOCATION: la ubicación de tu proyecto.
  • PROJECT: .
  • MODEL_ID: número de ID del modelo de AutoML Edge entrenado que vas a exportar.
  • EXPORT_FORMAT: el tipo de modelo de Edge que vas a exportar. Para este objetivo, las opciones son las siguientes:
    • tflite (TensorFlow Lite): exporta tu modelo como un paquete de TensorFlow Lite para ejecutarlo en dispositivos perimetrales o móviles.
    • tf-saved-model (Contenedor): exporta tu modelo como un SavedModel de TensorFlow para ejecutarlo en un contenedor Docker.
    • tf-js (Tensorflow.js): exporta tu modelo como un paquete de TensorFlow.js para ejecutarlo en el navegador y en Node.js.
  • OUTPUT_BUCKET: ruta al directorio del segmento de Cloud Storage en el que quieres almacenar los archivos del modelo de Edge.
  • Método HTTP y URL:

    POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/models/MODEL_ID:export

    Cuerpo JSON de la solicitud:

    {
      "outputConfig": {
        "exportFormatId": "EXPORT_FORMAT",
        "artifactDestination": {
          "outputUriPrefix": "gs://OUTPUT_BUCKET/"
        }
      }
    }
    

    Para enviar tu solicitud, elige una de estas opciones:

    curl

    Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente comando:

    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/models/MODEL_ID:export"

    PowerShell

    Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente comando:

    $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/models/MODEL_ID:export" | Select-Object -Expand Content

    La respuesta contiene información sobre las especificaciones, así como el elemento OPERATION_ID.

    Puedes consultar el estado de la operación de exportación para ver cuándo finaliza.

Java

Antes de probar este ejemplo, sigue las Java instrucciones de configuración de la guía de inicio rápido de Vertex AI con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Java de Vertex AI.

Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.


import com.google.api.gax.longrunning.OperationFuture;
import com.google.cloud.aiplatform.v1.ExportModelOperationMetadata;
import com.google.cloud.aiplatform.v1.ExportModelRequest;
import com.google.cloud.aiplatform.v1.ExportModelResponse;
import com.google.cloud.aiplatform.v1.GcsDestination;
import com.google.cloud.aiplatform.v1.ModelName;
import com.google.cloud.aiplatform.v1.ModelServiceClient;
import com.google.cloud.aiplatform.v1.ModelServiceSettings;
import java.io.IOException;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;

public class ExportModelSample {

  public static void main(String[] args)
      throws IOException, InterruptedException, ExecutionException, TimeoutException {
    // TODO(developer): Replace these variables before running the sample.
    String project = "YOUR_PROJECT_ID";
    String modelId = "YOUR_MODEL_ID";
    String gcsDestinationOutputUriPrefix = "gs://YOUR_GCS_SOURCE_BUCKET/path_to_your_destination/";
    String exportFormat = "YOUR_EXPORT_FORMAT";
    exportModelSample(project, modelId, gcsDestinationOutputUriPrefix, exportFormat);
  }

  static void exportModelSample(
      String project, String modelId, String gcsDestinationOutputUriPrefix, String exportFormat)
      throws IOException, InterruptedException, ExecutionException, TimeoutException {
    ModelServiceSettings modelServiceSettings =
        ModelServiceSettings.newBuilder()
            .setEndpoint("us-central1-aiplatform.googleapis.com:443")
            .build();

    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests. After completing all of your requests, call
    // the "close" method on the client to safely clean up any remaining background resources.
    try (ModelServiceClient modelServiceClient = ModelServiceClient.create(modelServiceSettings)) {
      String location = "us-central1";
      GcsDestination.Builder gcsDestination = GcsDestination.newBuilder();
      gcsDestination.setOutputUriPrefix(gcsDestinationOutputUriPrefix);

      ModelName modelName = ModelName.of(project, location, modelId);
      ExportModelRequest.OutputConfig outputConfig =
          ExportModelRequest.OutputConfig.newBuilder()
              .setExportFormatId(exportFormat)
              .setArtifactDestination(gcsDestination)
              .build();

      OperationFuture<ExportModelResponse, ExportModelOperationMetadata> exportModelResponseFuture =
          modelServiceClient.exportModelAsync(modelName, outputConfig);
      System.out.format(
          "Operation name: %s\n", exportModelResponseFuture.getInitialFuture().get().getName());
      System.out.println("Waiting for operation to finish...");
      ExportModelResponse exportModelResponse =
          exportModelResponseFuture.get(300, TimeUnit.SECONDS);

      System.out.format("Export Model Response: %s\n", exportModelResponse);
    }
  }
}

Node.js

Antes de probar este ejemplo, sigue las Node.js instrucciones de configuración de la guía de inicio rápido de Vertex AI con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Node.js de Vertex AI.

Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.

/**
 * TODO(developer): Uncomment these variables before running the sample.\
   (Not necessary if passing values as arguments)
 */

// const modelId = 'YOUR_MODEL_ID';
// const gcsDestinationOutputUriPrefix ='YOUR_GCS_DEST_OUTPUT_URI_PREFIX';
//    eg. "gs://<your-gcs-bucket>/destination_path"
// const exportFormat = 'YOUR_EXPORT_FORMAT';
// const project = 'YOUR_PROJECT_ID';
// const location = 'YOUR_PROJECT_LOCATION';

// Imports the Google Cloud Model Service Client library
const {ModelServiceClient} = require('@google-cloud/aiplatform');

// Specifies the location of the api endpoint
const clientOptions = {
  apiEndpoint: 'us-central1-aiplatform.googleapis.com',
};

// Instantiates a client
const modelServiceClient = new ModelServiceClient(clientOptions);

async function exportModel() {
  // Configure the name resources
  const name = `projects/${project}/locations/${location}/models/${modelId}`;
  // Configure the outputConfig resources
  const outputConfig = {
    exportFormatId: exportFormat,
    gcsDestination: {
      outputUriPrefix: gcsDestinationOutputUriPrefix,
    },
  };
  const request = {
    name,
    outputConfig,
  };

  // Export Model request
  const [response] = await modelServiceClient.exportModel(request);
  console.log(`Long running operation : ${response.name}`);

  // Wait for operation to complete
  await response.promise();
  const result = response.result;

  console.log(`Export model response : ${JSON.stringify(result)}`);
}
exportModel();

Python

Para saber cómo instalar o actualizar el SDK de Vertex AI para Python, consulta Instalar el SDK de Vertex AI para Python. Para obtener más información, consulta la documentación de referencia de la API Python.

from google.cloud import aiplatform


def export_model_sample(
    project: str,
    model_id: str,
    gcs_destination_output_uri_prefix: str,
    location: str = "us-central1",
    api_endpoint: str = "us-central1-aiplatform.googleapis.com",
    timeout: int = 300,
):
    # The AI Platform services require regional API endpoints.
    client_options = {"api_endpoint": api_endpoint}
    # Initialize client that will be used to create and send requests.
    # This client only needs to be created once, and can be reused for multiple requests.
    client = aiplatform.gapic.ModelServiceClient(client_options=client_options)
    output_config = {
        "artifact_destination": {
            "output_uri_prefix": gcs_destination_output_uri_prefix
        },
        # For information about export formats: https://cloud.google.com/ai-platform-unified/docs/export/export-edge-model#aiplatform_export_model_sample-drest
        "export_format_id": "tf-saved-model",
    }
    name = client.model_path(project=project, location=location, model=model_id)
    response = client.export_model(name=name, output_config=output_config)
    print("Long running operation:", response.operation.name)
    print("output_info:", response.metadata.output_info)
    export_model_response = response.result(timeout=timeout)
    print("export_model_response:", export_model_response)

Vídeo

Seleccione la pestaña correspondiente a su objetivo:

Reconocimiento de acciones

Los modelos de reconocimiento de acciones en vídeos de AutoML Edge entrenados se pueden exportar en formato de modelo guardado.

Selecciona la pestaña correspondiente a tu idioma o entorno:

Consola

  1. En la Google Cloud consola, en la sección Vertex AI, ve a la página Modelos.

    Ir a la página Modelos

  2. Haz clic en el número de versión del modelo de AutoML Edge que quieras exportar para abrir su página de detalles.
  3. Haz clic en Exportar.
  4. En la ventana lateral Exportar modelo, especifica la ubicación de Cloud Storage donde se almacenarán los resultados de la exportación del modelo de Edge.
  5. Haz clic en Exportar.
  6. Haz clic en Hecho para cerrar la ventana lateral Exportar modelo.

REST

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • LOCATION: región en la que se almacena el modelo. Por ejemplo, us-central1.
  • MODEL_ID: número de ID del modelo de AutoML Edge entrenado que vas a exportar.
  • EXPORT_FORMAT: el tipo de modelo de Edge que vas a exportar. En el caso del reconocimiento de acciones en vídeos, la opción de modelo es:
    • tf-saved-model (Contenedor): exporta tu modelo como un SavedModel de TensorFlow para ejecutarlo en un contenedor Docker.
  • OUTPUT_BUCKET: ruta al directorio del segmento de Cloud Storage en el que quieres almacenar los archivos del modelo de Edge.
  • PROJECT_NUMBER: el número de proyecto que se genera automáticamente.

Método HTTP y URL:

POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION/models/MODEL_ID:export

Cuerpo JSON de la solicitud:

{
  "outputConfig": {
    "exportFormatId": "EXPORT_FORMAT",
    "artifactDestination": {
    "outputUriPrefix": "gs://OUTPUT_BUCKET/"
    }
  }
}

Para enviar tu solicitud, elige una de estas opciones:

curl

Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente comando:

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_NUMBER/locations/LOCATION/models/MODEL_ID:export"

PowerShell

Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente comando:

$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_NUMBER/locations/LOCATION/models/MODEL_ID:export" | Select-Object -Expand Content

La respuesta contiene información sobre las especificaciones, así como el elemento OPERATION_ID.

Puedes consultar el estado de la operación de exportación para ver cuándo finaliza.

Java

Antes de probar este ejemplo, sigue las Java instrucciones de configuración de la guía de inicio rápido de Vertex AI con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Java de Vertex AI.

Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.

import com.google.api.gax.longrunning.OperationFuture;
import com.google.cloud.aiplatform.v1.ExportModelOperationMetadata;
import com.google.cloud.aiplatform.v1.ExportModelRequest;
import com.google.cloud.aiplatform.v1.ExportModelResponse;
import com.google.cloud.aiplatform.v1.GcsDestination;
import com.google.cloud.aiplatform.v1.ModelName;
import com.google.cloud.aiplatform.v1.ModelServiceClient;
import com.google.cloud.aiplatform.v1.ModelServiceSettings;
import java.io.IOException;
import java.util.concurrent.ExecutionException;

public class ExportModelVideoActionRecognitionSample {

  public static void main(String[] args)
      throws IOException, ExecutionException, InterruptedException {
    // TODO(developer): Replace these variables before running the sample.
    String project = "PROJECT";
    String modelId = "MODEL_ID";
    String gcsDestinationOutputUriPrefix = "GCS_DESTINATION_OUTPUT_URI_PREFIX";
    String exportFormat = "EXPORT_FORMAT";
    exportModelVideoActionRecognitionSample(
        project, modelId, gcsDestinationOutputUriPrefix, exportFormat);
  }

  static void exportModelVideoActionRecognitionSample(
      String project, String modelId, String gcsDestinationOutputUriPrefix, String exportFormat)
      throws IOException, ExecutionException, InterruptedException {
    ModelServiceSettings settings =
        ModelServiceSettings.newBuilder()
            .setEndpoint("us-central1-aiplatform.googleapis.com:443")
            .build();
    String location = "us-central1";

    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests. After completing all of your requests, call
    // the "close" method on the client to safely clean up any remaining background resources.
    try (ModelServiceClient client = ModelServiceClient.create(settings)) {
      GcsDestination gcsDestination =
          GcsDestination.newBuilder().setOutputUriPrefix(gcsDestinationOutputUriPrefix).build();
      ExportModelRequest.OutputConfig outputConfig =
          ExportModelRequest.OutputConfig.newBuilder()
              .setArtifactDestination(gcsDestination)
              .setExportFormatId(exportFormat)
              .build();
      ModelName name = ModelName.of(project, location, modelId);
      OperationFuture<ExportModelResponse, ExportModelOperationMetadata> response =
          client.exportModelAsync(name, outputConfig);

      // You can use OperationFuture.getInitialFuture to get a future representing the initial
      // response to the request, which contains information while the operation is in progress.
      System.out.format("Operation name: %s\n", response.getInitialFuture().get().getName());

      // OperationFuture.get() will block until the operation is finished.
      ExportModelResponse exportModelResponse = response.get();
      System.out.format("exportModelResponse: %s\n", exportModelResponse);
    }
  }
}

Python

Para saber cómo instalar o actualizar el SDK de Vertex AI para Python, consulta Instalar el SDK de Vertex AI para Python. Para obtener más información, consulta la documentación de referencia de la API Python.

from google.cloud import aiplatform


def export_model_video_action_recognition_sample(
    project: str,
    model_id: str,
    gcs_destination_output_uri_prefix: str,
    export_format: str,
    location: str = "us-central1",
    api_endpoint: str = "us-central1-aiplatform.googleapis.com",
    timeout: int = 300,
):
    # The AI Platform services require regional API endpoints.
    client_options = {"api_endpoint": api_endpoint}
    # Initialize client that will be used to create and send requests.
    # This client only needs to be created once, and can be reused for multiple requests.
    client = aiplatform.gapic.ModelServiceClient(client_options=client_options)
    gcs_destination = {"output_uri_prefix": gcs_destination_output_uri_prefix}
    output_config = {
        "artifact_destination": gcs_destination,
        "export_format_id": export_format,
    }
    name = client.model_path(project=project, location=location, model=model_id)
    response = client.export_model(name=name, output_config=output_config)
    print("Long running operation:", response.operation.name)
    print("output_info:", response.metadata.output_info)
    export_model_response = response.result(timeout=timeout)
    print("export_model_response:", export_model_response)

Clasificación

Los modelos de clasificación de vídeo de AutoML Edge entrenados solo se pueden exportar en formato de modelo guardado.

Selecciona la pestaña correspondiente a tu idioma o entorno:

Consola

  1. En la Google Cloud consola, en la sección Vertex AI, ve a la página Modelos.

    Ir a la página Modelos

  2. Haz clic en el número de versión del modelo de AutoML Edge que quieras exportar para abrir su página de detalles.
  3. Haz clic en Exportar.
  4. En la ventana lateral Exportar modelo, especifica la ubicación de Cloud Storage donde se almacenarán los resultados de la exportación del modelo de Edge.
  5. Haz clic en Exportar.
  6. Haz clic en Hecho para cerrar la ventana lateral Exportar modelo.

REST

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • LOCATION: región en la que se almacena el modelo. Por ejemplo, us-central1.
  • MODEL_ID: número de ID del modelo de AutoML Edge entrenado que vas a exportar.
  • EXPORT_FORMAT: el tipo de modelo de Edge que vas a exportar. En el caso de la clasificación de vídeos, la opción de modelo es:
    • tf-saved-model (Contenedor): exporta tu modelo como un SavedModel de TensorFlow para ejecutarlo en un contenedor Docker.
  • OUTPUT_BUCKET: ruta al directorio del segmento de Cloud Storage en el que quieres almacenar los archivos del modelo de Edge.
  • PROJECT_NUMBER: el número de proyecto que se genera automáticamente.

Método HTTP y URL:

POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION/models/MODEL_ID:export

Cuerpo JSON de la solicitud:

{
  "outputConfig": {
    "exportFormatId": "EXPORT_FORMAT",
    "artifactDestination": {
    "outputUriPrefix": "gs://OUTPUT_BUCKET/"
    }
  }
}

Para enviar tu solicitud, elige una de estas opciones:

curl

Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente comando:

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_NUMBER/locations/LOCATION/models/MODEL_ID:export"

PowerShell

Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente comando:

$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_NUMBER/locations/LOCATION/models/MODEL_ID:export" | Select-Object -Expand Content

La respuesta contiene información sobre las especificaciones, así como el elemento OPERATION_ID.

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION/models/MODEL_ID/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1.ExportModelOperationMetadata",
    "genericMetadata": {
      "createTime": "2020-10-12T20:53:40.130785Z",
      "updateTime": "2020-10-12T20:53:40.130785Z"
    },
    "outputInfo": {
      "artifactOutputUri": "gs://OUTPUT_BUCKET/model-MODEL_ID/EXPORT_FORMAT/YYYY-MM-DDThh:mm:ss.sssZ"
    }
  }
}

Puedes consultar el estado de la operación de exportación para ver cuándo finaliza.

Monitorización de objetos

Los modelos de seguimiento de objetos de vídeo de AutoML Edge entrenados se pueden exportar en los siguientes formatos:

  • TensorFlow Lite: exporta tu modelo como un paquete de TensorFlow Lite para ejecutarlo en dispositivos perimetrales o móviles.
  • Contenedor: exporta tu modelo como un SavedModel de TensorFlow para ejecutarlo en un contenedor Docker.

Selecciona la pestaña correspondiente a tu idioma o entorno:

Consola

  1. En la Google Cloud consola, en la sección Vertex AI, ve a la página Modelos.

    Ir a la página Modelos

  2. Haz clic en el número de versión del modelo de AutoML Edge que quieras exportar para abrir su página de detalles.
  3. Haz clic en Exportar.
  4. En la ventana lateral Exportar modelo, especifica la ubicación de Cloud Storage donde se almacenarán los resultados de la exportación del modelo de Edge.
  5. Haz clic en Exportar.
  6. Haz clic en Hecho para cerrar la ventana lateral Exportar modelo.

REST

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • LOCATION: región en la que se almacena el modelo. Por ejemplo, us-central1.
  • MODEL_ID: número de ID del modelo de AutoML Edge entrenado que vas a exportar.
  • EXPORT_FORMAT: el tipo de modelo de Edge que vas a exportar. En el caso de los modelos de monitorización de objetos de vídeo, las opciones son las siguientes:
    • tflite (TensorFlow Lite): exporta tu modelo como un paquete de TensorFlow Lite para ejecutarlo en dispositivos perimetrales o móviles.
    • edgetpu-tflite (TensorFlow Lite de Edge TPU): exporta tu modelo como un paquete de TensorFlow Lite para ejecutarlo en dispositivos Edge TPU.
    • tf-saved-model (Contenedor): exporta tu modelo como un SavedModel de TensorFlow para ejecutarlo en un contenedor Docker.
  • OUTPUT_BUCKET: ruta al directorio del segmento de Cloud Storage en el que quieres almacenar los archivos del modelo de Edge.
  • PROJECT_NUMBER: el número de proyecto que se genera automáticamente.

Método HTTP y URL:

POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION/models/MODEL_ID:export

Cuerpo JSON de la solicitud:

{
  "outputConfig": {
    "exportFormatId": "EXPORT_FORMAT",
    "artifactDestination": {
    "outputUriPrefix": "gs://OUTPUT_BUCKET/"
    }
  }
}

Para enviar tu solicitud, elige una de estas opciones:

curl

Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente comando:

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_NUMBER/locations/LOCATION/models/MODEL_ID:export"

PowerShell

Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente comando:

$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_NUMBER/locations/LOCATION/models/MODEL_ID:export" | Select-Object -Expand Content

La respuesta contiene información sobre las especificaciones, así como el elemento OPERATION_ID.

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION/models/MODEL_ID/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1.ExportModelOperationMetadata",
    "genericMetadata": {
      "createTime": "2020-10-12T20:53:40.130785Z",
      "updateTime": "2020-10-12T20:53:40.130785Z"
    },
    "outputInfo": {
      "artifactOutputUri": "gs://OUTPUT_BUCKET/model-MODEL_ID/EXPORT_FORMAT/YYYY-MM-DDThh:mm:ss.sssZ"
    }
  }
}

Puedes consultar el estado de la operación de exportación para ver cuándo finaliza.

Obtener el estado de la operación

Imagen

Usa el siguiente código para obtener el estado de la operación de exportación. Este código es el mismo para todos los objetivos:

REST

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • LOCATION: la ubicación de tu proyecto.
  • PROJECT: .
  • OPERATION_ID:ID de la operación de destino. Normalmente, este ID se incluye en la respuesta a la solicitud original.

Método HTTP y URL:

GET https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/operations/OPERATION_ID

Para enviar tu solicitud, elige una de estas opciones:

curl

Ejecuta el comando siguiente:

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/operations/OPERATION_ID"

PowerShell

Ejecuta el comando siguiente:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/operations/OPERATION_ID" | Select-Object -Expand Content
Debería ver un resultado similar al siguiente en una operación completada:
{
  "name": "projects/PROJECT/locations/LOCATION/models/MODEL_ID/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1.ExportModelOperationMetadata",
    "genericMetadata": {
      "createTime": "2020-10-12T20:53:40.130785Z",
      "updateTime": "2020-10-12T20:53:40.793983Z"
    },
    "outputInfo": {
      "artifactOutputUri": "gs://OUTPUT_BUCKET/model-MODEL_ID/EXPORT_FORMAT/YYYY-MM-DDThh:mm:ss.sssZ"
    }
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1.ExportModelResponse"
  }
}

Vídeo

REST

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • PROJECT_NUMBER: el número de proyecto que se genera automáticamente.
  • LOCATION: región en la que se almacena el modelo. Por ejemplo, us-central1.
  • OPERATION_ID: ID de tus operaciones.

Método HTTP y URL:

GET https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/operations/OPERATION_ID

Para enviar tu solicitud, elige una de estas opciones:

curl

Ejecuta el comando siguiente:

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/operations/OPERATION_ID"

PowerShell

Ejecuta el comando siguiente:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/operations/OPERATION_ID" | Select-Object -Expand Content

Deberías recibir una respuesta JSON similar a la siguiente:

Archivos de salida

Imagen

Selecciona la pestaña correspondiente al formato de tu modelo:

TF Lite

El OUTPUT_BUCKET que hayas especificado en la solicitud determina dónde se almacenan los archivos de salida. El formato del directorio en el que se almacenan los archivos de salida es el siguiente:

  • gs://OUTPUT_BUCKET/model-MODEL_ID/tflite/YYYY-MM-DDThh:mm:ss.sssZ/

Archivos:

  1. model.tflite: archivo que contiene una versión del modelo lista para usarse con TensorFlow Lite.

Edge TPU

El OUTPUT_BUCKET que hayas especificado en la solicitud determina dónde se almacenan los archivos de salida. El formato del directorio en el que se almacenan los archivos de salida es el siguiente:

  • gs://OUTPUT_BUCKET/model-MODEL_ID/edgetpu-tflite/YYYY-MM-DDThh:mm:ss.sssZ/

Archivos:

  1. edgetpu_model.tflite: un archivo que contiene una versión del modelo para TensorFlow Lite, que se ha pasado por el compilador de Edge TPU para que sea compatible con Edge TPU.

Container

El OUTPUT_BUCKET que hayas especificado en la solicitud determina dónde se almacenan los archivos de salida. El formato del directorio en el que se almacenan los archivos de salida es el siguiente:

  • gs://OUTPUT_BUCKET/model-MODEL_ID/tf-saved-model/YYYY-MM-DDThh:mm:ss.sssZ/

Archivos:

  1. saved_model.pb: archivo de búfer de protocolo que contiene la definición del gráfico y las ponderaciones del modelo.

Core ML

El OUTPUT_BUCKET que hayas especificado en la solicitud determina dónde se almacenan los archivos de salida. El formato del directorio en el que se almacenan los archivos de salida es el siguiente:

  • gs://OUTPUT_BUCKET/model-MODEL_ID/core-ml/YYYY-MM-DDThh:mm:ss.sssZ/

Archivos:

  1. dict.txt: un archivo de etiquetas. Cada línea del archivo de etiquetas dict.txt representa una etiqueta de las predicciones devueltas por el modelo, en el mismo orden en que se solicitaron.

    Ejemplo dict.txt

    roses
    daisy
    tulips
    dandelion
    sunflowers
    
  2. model.mlmodel: un archivo que especifica un modelo de Core ML.

Tensorflow.js

El OUTPUT_BUCKET que hayas especificado en la solicitud determina dónde se almacenan los archivos de salida. El formato del directorio en el que se almacenan los archivos de salida es el siguiente:

  • gs://OUTPUT_BUCKET/model-MODEL_ID/tf-js/YYYY-MM-DDThh:mm:ss.sssZ/

Archivos:

  1. dict.txt: un archivo de etiquetas. Cada línea del archivo de etiquetas dict.txt representa una etiqueta de las predicciones devueltas por el modelo, en el mismo orden en que se solicitaron.

    Ejemplo dict.txt

    roses
    daisy
    tulips
    dandelion
    sunflowers
    
  2. group1-shard1of3.bin: un archivo binario.
  3. group1-shard2of3.bin: un archivo binario.
  4. group1-shard3of3.bin: un archivo binario.
  5. model.json: representación de un modelo en un archivo JSON.

    Ejemplo model.json (se ha acortado para mayor claridad)

    {
      "format": "graph-model",
      "generatedBy": "2.4.0",
      "convertedBy": "TensorFlow.js Converter v1.7.0",
      "userDefinedMetadata": {
        "signature": {
          "inputs": {
            "image:0": {
              "name": "image:0",
              "dtype": "DT_FLOAT",
              "tensorShape": {
                "dim": [
                  {
                    "size": "1"
                  },
                  {
                    "size": "224"
                  },
                  {
                    "size": "224"
                  },
                  {
                    "size": "3"
                  }
                ]
              }
            }
          },
          "outputs": {
            "scores:0": {
              "name": "scores:0",
              "dtype": "DT_FLOAT",
              "tensorShape": {
                "dim": [
                  {
                    "size": "1"
                  },
                  {
                    "size": "5"
                  }
                ]
              }
            }
          }
        }
      },
      "modelTopology": {
        "node": [
          {
            "name": "image",
            "op": "Placeholder",
            "attr": {
              "dtype": {
                "type": "DT_FLOAT"
              },
              "shape": {
                "shape": {
                  "dim": [
                    {
                      "size": "1"
                    },
                    {
                      "size": "224"
                    },
                    {
                      "size": "224"
                    },
                    {
                      "size": "3"
                    }
                  ]
                }
              }
            }
          },
          {
            "name": "mnas_v4_a_1/feature_network/feature_extractor/Mean/reduction_indices",
            "op": "Const",
            "attr": {
              "value": {
                "tensor": {
                  "dtype": "DT_INT32",
                  "tensorShape": {
                    "dim": [
                      {
                        "size": "2"
                      }
                    ]
                  }
                }
              },
              "dtype": {
                "type": "DT_INT32"
              }
            }
          },
          ...
          {
            "name": "scores",
            "op": "Identity",
            "input": [
              "Softmax"
            ],
            "attr": {
              "T": {
                "type": "DT_FLOAT"
              }
            }
          }
        ],
        "library": {},
        "versions": {}
      },
      "weightsManifest": [
        {
          "paths": [
            "group1-shard1of3.bin",
            "group1-shard2of3.bin",
            "group1-shard3of3.bin"
          ],
          "weights": [
            {
              "name": "mnas_v4_a_1/feature_network/feature_extractor/Mean/reduction_indices",
              "shape": [
                2
              ],
              "dtype": "int32"
            },
            {
              "name": "mnas_v4_a/output/fc/tf_layer/kernel",
              "shape": [
                1280,
                5
              ],
              "dtype": "float32"
            },
            ...
            {
              "name": "mnas_v4_a_1/feature_network/lead_cell_17/op_0/conv2d_0/Conv2D_weights",
              "shape": [
                1,
                1,
                320,
                1280
              ],
              "dtype": "float32"
            },
            {
              "name": "mnas_v4_a_1/feature_network/cell_14/op_0/expand_0/Conv2D_bn_offset",
              "shape": [
                1152
              ],
              "dtype": "float32"
            }
          ]
        }
      ]
    }

Vídeo

Selecciona la pestaña correspondiente al formato de tu modelo:

TF Lite

El OUTPUT_BUCKET que hayas especificado en la solicitud determina dónde se almacenan los archivos de salida. El formato del directorio en el que se almacenan los archivos de salida es el siguiente:

  • gs://OUTPUT_BUCKET/model-MODEL_ID/tflite/YYYY-MM-DDThh:mm:ss.sssZ/

Archivos:

  1. model.tflite: archivo que contiene una versión del modelo lista para usarse con TensorFlow Lite.
  2. frozen_inference_graph.pb: archivo de búfer de protocolo serializado que contiene la definición del gráfico y las ponderaciones del modelo.
  3. label_map.pbtxt : un archivo de mapa de etiquetas que asigna cada una de las etiquetas usadas a un valor entero.

Edge TPU

El OUTPUT_BUCKET que hayas especificado en la solicitud determina dónde se almacenan los archivos de salida. El formato del directorio en el que se almacenan los archivos de salida es el siguiente:

  • gs://OUTPUT_BUCKET/model-MODEL_ID/edgetpu-tflite/YYYY-MM-DDThh:mm:ss.sssZ/

Archivos:

  1. edgetpu_model.tflite: un archivo que contiene una versión del modelo para TensorFlow Lite, que se ha pasado por el compilador de Edge TPU para que sea compatible con Edge TPU.
  2. label_map.pbtxt: un archivo de mapa de etiquetas que asigna cada una de las etiquetas usadas a un valor entero.

Container

El OUTPUT_BUCKET que hayas especificado en la solicitud determina dónde se almacenan los archivos de salida. El formato del directorio en el que se almacenan los archivos de salida es el siguiente:

  • gs://OUTPUT_BUCKET/model-MODEL_ID/tf-saved-model/YYYY-MM-DDThh:mm:ss.sssZ/

Archivos:

  1. frozen_inference_graph.pb: archivo de búfer de protocolo serializado que contiene la definición del gráfico y las ponderaciones del modelo.
  2. label_map.pbtxt: un archivo de mapa de etiquetas que asigna cada una de las etiquetas usadas a un valor entero.
  3. saved_model/saved_model.pb: el archivo almacena el programa de TensorFlow o el modelo propiamente dicho, así como un conjunto de firmas con nombre. Cada una de ellas identifica una función que acepta entradas de tensor y genera salidas de tensor.
  4. saved_model/variables/: el directorio de variables contiene un punto de control de entrenamiento estándar.