Exporta modelos de AutoML Edge

En esta página, se describe cómo usar Vertex AI para exportar tus modelos de AutoML Edge de imágenes y videos a Cloud Storage.

Para obtener información sobre la exportación de modelos tabulares, consulta Exporta un modelo tabular de AutoML.

Introducción

Después de entrenar un modelo de AutoML Edge, puedes exportar el modelo en diferentes formatos en función de cómo deseas usarlo. Los archivos del modelo exportado se guardan en un bucket de Cloud Storage y se pueden usar para la predicción en el entorno que elijas.

No puedes usar un modelo de Edge en Vertex AI para entregar predicciones. Debes implementar el modelo de Edge en un dispositivo externo para obtener predicciones.

Exporta un modelo

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

Imagen

A continuación, selecciona la pestaña para tu objetivo:

Clasificación

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

  • TF Lite: Exporta tu modelo como paquete de TF Lite para ejecutarlo en dispositivos perimetrales o móviles.
  • Edge TPU TF Lite: Exporta tu modelo como paquete de TF Lite para ejecutarlo en dispositivos de Edge TPU.
  • Contenedor: Exporta tu modelo como un modelo de TF guardado para ejecutarlo en un contenedor de 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 ejecutar tu modelo en el navegador y en Node.js.

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

Console

  1. En la sección Vertex AI de la consola de Google Cloud, 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 quieres exportar para abrir su página de detalles.
  3. Haga clic en Exportar.
  4. En la ventana lateral Exportar modelo, especifica la ubicación en Cloud Storage para almacenar el resultado de exportación del modelo de Edge.
  5. Haga clic en Exportar.
  6. Haz clic en Listo para cerrar la ventana lateral Exportar modelo.

REST

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • LOCATION: La ubicación de tu proyecto
  • PROJECT: El ID del proyecto.
  • MODEL_ID: El número de ID del modelo entrenado de AutoML Edge que estás exportando.
  • EXPORT_FORMAT: El tipo de modelo de Edge que estás exportando. Para este objetivo, las opciones son las siguientes:
    • tflite (TF Lite): Exporta tu modelo como paquete de TF Lite para ejecutarlo en dispositivos perimetrales o móviles.
    • edgetpu-tflite (Edge TPU TF Lite): Exporta tu modelo como paquete de TF Lite para ejecutar el modelo en dispositivos de Edge TPU.
    • tf-saved-model (Contenedor): Exporta tu modelo como un modelo de TF guardado para ejecutarlo en un contenedor de 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 ejecutar tu modelo en el navegador y en Node.js.
  • OUTPUT_BUCKET: La ruta de acceso al directorio del bucket de Cloud Storage en el que deseas 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 y los OPERATION_ID.

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

Java

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

Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para 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 instrucciones de configuración para Node.js incluidas en la guía de inicio rápido de Vertex AI sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de Vertex AI Node.js.

Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para 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

Si deseas obtener información para instalar o actualizar el SDK de Python, consulta Instala el SDK de Vertex AI para Python. Si deseas obtener más información, consulta la documentación de referencia de la API de 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:

  • TF Lite: Exporta tu modelo como paquete de TF Lite para ejecutarlo en dispositivos perimetrales o móviles.
  • Edge TPU TF Lite: Exporta tu modelo como paquete de TF Lite para ejecutarlo en dispositivos de Edge TPU.
  • Contenedor: Exporta tu modelo como un modelo de TF guardado para ejecutarlo en un contenedor de 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 ejecutar tu modelo en el navegador y en Node.js.

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

Console

  1. En la sección Vertex AI de la consola de Google Cloud, 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 quieres exportar para abrir su página de detalles.
  3. Haga clic en Exportar.
  4. En la ventana lateral Exportar modelo, especifica la ubicación en Cloud Storage para almacenar el resultado de exportación del modelo de Edge.
  5. Haga clic en Exportar.
  6. Haz clic en Listo para cerrar la ventana lateral Exportar modelo.

REST

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • LOCATION: La ubicación de tu proyecto
  • PROJECT: El ID del proyecto.
  • MODEL_ID: El número de ID del modelo entrenado de AutoML Edge que estás exportando.
  • EXPORT_FORMAT: El tipo de modelo de Edge que estás exportando. Para este objetivo, las opciones son las siguientes:
    • tflite (TF Lite): Exporta tu modelo como paquete de TF Lite para ejecutarlo en dispositivos perimetrales o móviles.
    • edgetpu-tflite (Edge TPU TF Lite): Exporta tu modelo como paquete de TF Lite para ejecutar el modelo en dispositivos de Edge TPU.
    • tf-saved-model (Contenedor): Exporta tu modelo como un modelo de TF guardado para ejecutarlo en un contenedor de 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 ejecutar tu modelo en el navegador y en Node.js.
  • OUTPUT_BUCKET: La ruta de acceso al directorio del bucket de Cloud Storage en el que deseas 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 y los OPERATION_ID.

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

Java

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

Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para 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 instrucciones de configuración para Node.js incluidas en la guía de inicio rápido de Vertex AI sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de Vertex AI Node.js.

Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para 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

Si deseas obtener información para instalar o actualizar el SDK de Python, consulta Instala el SDK de Vertex AI para Python. Si deseas obtener más información, consulta la documentación de referencia de la API de 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 de imagen entrenados de AutoML Edge se pueden exportar en los siguientes formatos:

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

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

Console

  1. En la sección Vertex AI de la consola de Google Cloud, 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 quieres exportar para abrir su página de detalles.
  3. Selecciona la pestaña Implementar y probar para ver los formatos de exportación disponibles.
  4. Selecciona el formato de modelo de exportación que prefieras en la sección Usa tu modelo optimizado de Edge.
  5. En la ventana lateral Exportar modelo, especifica la ubicación en Cloud Storage para almacenar el resultado de exportación del modelo de Edge.
  6. Haga clic en Exportar.
  7. Haz clic en Listo para cerrar la ventana lateral Exportar modelo.

REST

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • LOCATION: La ubicación de tu proyecto
  • PROJECT: El ID del proyecto.
  • MODEL_ID: El número de ID del modelo entrenado de AutoML Edge que estás exportando.
  • EXPORT_FORMAT: El tipo de modelo de Edge que estás exportando. Para este objetivo, las opciones son las siguientes:
    • tflite (TF Lite): Exporta tu modelo como paquete de TF Lite para ejecutarlo en dispositivos perimetrales o móviles.
    • tf-saved-model (Contenedor): Exporta tu modelo como un modelo de TF guardado para ejecutarlo en un contenedor de Docker.
    • tf-js (Tensorflow.js): Exporta tu modelo como un paquete de TensorFlow.js para ejecutar tu modelo en el navegador y en Node.js.
  • OUTPUT_BUCKET: La ruta de acceso al directorio del bucket de Cloud Storage en el que deseas 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 y los OPERATION_ID.

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

Java

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

Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para 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 instrucciones de configuración para Node.js incluidas en la guía de inicio rápido de Vertex AI sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de Vertex AI Node.js.

Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para 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

Si deseas obtener información para instalar o actualizar el SDK de Python, consulta Instala el SDK de Vertex AI para Python. Si deseas obtener más información, consulta la documentación de referencia de la API de 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)

Video

A continuación, selecciona la pestaña para tu objetivo:

Reconocimiento de acciones

Los modelos de reconocimiento de acciones de video entrenados de AutoML Edge se pueden exportar en el formato de modelo guardado.

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

Console

  1. En la sección Vertex AI de la consola de Google Cloud, 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 quieres exportar para abrir su página de detalles.
  3. Haga clic en Exportar.
  4. En la ventana lateral Exportar modelo, especifica la ubicación en Cloud Storage para almacenar el resultado de exportación del modelo de Edge.
  5. Haga clic en Exportar.
  6. Haz clic en Listo para cerrar la ventana lateral Exportar modelo.

REST

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • LOCATION: Región en la que se almacena el modelo. Por ejemplo, us-central1.
  • MODEL_ID: El número de ID del modelo entrenado de AutoML Edge que estás exportando.
  • EXPORT_FORMAT: El tipo de modelo de Edge que estás exportando. Para el reconocimiento de acciones de video, la opción del modelo es la siguiente:
    • tf-saved-model (Contenedor): Exporta tu modelo como un modelo de TF guardado para ejecutarlo en un contenedor de Docker.
  • OUTPUT_BUCKET: La ruta de acceso al directorio del bucket de Cloud Storage en el que deseas almacenar los archivos del modelo de Edge.
  • PROJECT_NUMBER: El número de proyecto de tu proyecto generado de forma automática.

HTTP method and 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 y los OPERATION_ID.

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

Java

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

Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para 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

Si deseas obtener información para instalar o actualizar el SDK de Python, consulta Instala el SDK de Vertex AI para Python. Si deseas obtener más información, consulta la documentación de referencia de la API de 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 videos entrenados de AutoML Edge solo se pueden exportar en el formato del modelo guardado.

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

Console

  1. En la sección Vertex AI de la consola de Google Cloud, 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 quieres exportar para abrir su página de detalles.
  3. Haga clic en Exportar.
  4. En la ventana lateral Exportar modelo, especifica la ubicación en Cloud Storage para almacenar el resultado de exportación del modelo de Edge.
  5. Haga clic en Exportar.
  6. Haz clic en Listo para cerrar la ventana lateral Exportar modelo.

REST

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • LOCATION: Región en la que se almacena el modelo. Por ejemplo, us-central1.
  • MODEL_ID: El número de ID del modelo entrenado de AutoML Edge que estás exportando.
  • EXPORT_FORMAT: El tipo de modelo de Edge que estás exportando. Para la clasificación de videos, la opción de modelo es la siguiente:
    • tf-saved-model (Contenedor): Exporta tu modelo como un modelo de TF guardado para ejecutarlo en un contenedor de Docker.
  • OUTPUT_BUCKET: La ruta de acceso al directorio del bucket de Cloud Storage en el que deseas almacenar los archivos del modelo de Edge.
  • PROJECT_NUMBER: El número de proyecto de tu proyecto generado de forma automática.

HTTP method and 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 y los 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 obtener el estado de la operación de exportación para ver cuándo finaliza.

Seguimiento de objetos

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

  • TF Lite: Exporta tu modelo como paquete de TensorFlow Lite para ejecutarlo en dispositivos periféricos o dispositivos móviles.
  • Contenedor: Exporta tu modelo como un modelo guardado de TensorFlow para ejecutarlo en un contenedor de Docker.

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

Console

  1. En la sección Vertex AI de la consola de Google Cloud, 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 quieres exportar para abrir su página de detalles.
  3. Haga clic en Exportar.
  4. En la ventana lateral Exportar modelo, especifica la ubicación en Cloud Storage para almacenar el resultado de exportación del modelo de Edge.
  5. Haga clic en Exportar.
  6. Haz clic en Listo para cerrar la ventana lateral Exportar modelo.

REST

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • LOCATION: Región en la que se almacena el modelo. Por ejemplo, us-central1.
  • MODEL_ID: El número de ID del modelo entrenado de AutoML Edge que estás exportando.
  • EXPORT_FORMAT: El tipo de modelo de Edge que estás exportando. Para los modelos de seguimiento de objetos de video, las opciones son las siguientes:
    • tflite (TF Lite): Exporta tu modelo como paquete de TF Lite para ejecutarlo en dispositivos perimetrales o móviles.
    • edgetpu-tflite (Edge TPU TF Lite): Exporta tu modelo como paquete de TF Lite para ejecutar el modelo en dispositivos de Edge TPU.
    • tf-saved-model (Contenedor): Exporta tu modelo como un modelo de TF guardado para ejecutarlo en un contenedor de Docker.
  • OUTPUT_BUCKET: La ruta de acceso al directorio del bucket de Cloud Storage en el que deseas almacenar los archivos del modelo de Edge.
  • PROJECT_NUMBER: El número de proyecto de tu proyecto generado de forma automática.

HTTP method and 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 y los 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 obtener el estado de la operación de exportación para ver cuándo finaliza.

Obtén 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 cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • LOCATION: La ubicación de tu proyecto
  • PROJECT: El ID del proyecto.
  • OPERATION_ID: El ID de la operación de destino. Por lo general, este ID está 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 siguiente comando:

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 siguiente comando:

$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 ver un resultado similar al siguiente para 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"
  }
}

Video

REST

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_NUMBER: El número de proyecto de tu proyecto generado de forma automática.
  • 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 siguiente comando:

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 siguiente comando:

$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 que se muestra a continuación:

Archivos de salida

Imagen

Selecciona la pestaña a continuación para el formato de tu modelo:

TF Lite

El OUTPUT_BUCKET que especificaste 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 tiene el siguiente formato:

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

Archivos:

  1. model.tflite: Un archivo que contiene una versión del modelo que está listo para usarse con TensorFlow Lite.

Edge TPU

El OUTPUT_BUCKET que especificaste 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 tiene el siguiente formato:

  • 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 pasa por el compilador de Edge TPU para que sea compatible con Edge TPU.

Contenedor

El OUTPUT_BUCKET que especificaste 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 tiene el siguiente formato:

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

Archivos:

  1. saved_model.pb: Un archivo de búfer de protocolo que contiene la definición del grafo y los pesos del modelo.

Core ML

El OUTPUT_BUCKET que especificaste 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 tiene el siguiente formato:

  • 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 que muestra el modelo, en el mismo orden en que se solicitaron.

    Muestra 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 especificaste 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 tiene el siguiente formato:

  • 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 que muestra el modelo, en el mismo orden en que se solicitaron.

    Muestra 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: Una representación de archivo JSON de un modelo.

    Muestra model.json (abreviado para que sea más claro)

    {
      "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"
            }
          ]
        }
      ]
    }

Video

Selecciona la pestaña a continuación para el formato de tu modelo:

TF Lite

El OUTPUT_BUCKET que especificaste 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 tiene el siguiente formato:

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

Archivos:

  1. model.tflite: Un archivo que contiene una versión del modelo que está listo para usarse con TensorFlow Lite.
  2. frozen_inference_graph.pb: Un archivo de búfer de protocolo serializado que contiene la definición del grafo 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 de número entero.

Edge TPU

El OUTPUT_BUCKET que especificaste 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 tiene el siguiente formato:

  • 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 pasa 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 de número entero.

Contenedor

El OUTPUT_BUCKET que especificaste 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 tiene el siguiente formato:

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

Archivos:

  1. frozen_inference_graph.pb: Un archivo de búfer de protocolo serializado que contiene la definición del grafo 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 de número entero.
  3. saved_model/saved_model.pb: El archivo almacena el programa o el modelo de TensorFlow, y un conjunto de firmas con nombre, cada uno de los cuales identifica una función que acepta entradas de tensor y produce salidas de tensor.
  4. saved_model/variables/: El directorio de variables contiene un punto de control de entrenamiento estándar.