Gestione dei modelli

Poiché AutoML Vision Object Detection crea un nuovo modello ogni volta che inizi l'addestramento, il progetto potrebbe includere numerosi modelli. Puoi trovare un elenco dei modelli nel tuo progetto, ottenere un modello specifico, aggiornare il numero di nodo di un modello o eliminare i modelli non più necessari.

Elenco dei modelli

Un progetto può includere numerosi modelli. Questa sezione descrive come recuperare un elenco dei modelli disponibili per un progetto.

UI web

Per visualizzare un elenco dei modelli disponibili utilizzando l'interfaccia utente di rilevamento oggetti Vision automatico, fai clic sul link Modelli in alto nel menu di navigazione a sinistra.

Immagine dei modelli di schede

Per vedere i modelli di un altro progetto, seleziona il progetto dall'elenco a discesa nella parte superiore destra della barra del titolo.

REST &CMD LINE

Prima di utilizzare uno qualsiasi dei dati della richiesta, effettua le seguenti sostituzioni:

  • project-id: ID progetto GCP.

Metodo HTTP e URL:

GET https://automl.googleapis.com/v1/projects/project-id/locations/us-central1/models

Per inviare la richiesta, scegli una delle seguenti opzioni:

Curling

Esegui questo comando:

curl -X GET \
-H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
"https://automl.googleapis.com/v1/projects/project-id/locations/us-central1/models"

PowerShell

Esegui questo comando:

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

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://automl.googleapis.com/v1/projects/project-id/locations/us-central1/models" | Select-Object -Expand Content

Dovresti ricevere una risposta JSON simile all'esempio seguente. Questa risposta mostra informazioni su due modelli ospitati su Cloud.

{
  "model": [
    {
      "name": "projects/PROJECT_ID/locations/us-central1/models/MODEL_ID_1",
      "displayName": "DISPLAY_NAME_1",
      "datasetId": "DATASET_ID",
      "createTime": "2019-07-26T21:10:18.338846Z",
      "deploymentState": "UNDEPLOYED",
      "updateTime": "2019-08-07T22:24:07.720068Z",
      "imageObjectDetectionModelMetadata": {
        "modelType": "cloud-low-latency-1",
        "nodeQps": 1.2987012987012987,
        "stopReason": "MODEL_CONVERGED",
        "trainBudgetMilliNodeHours": "216000",
        "trainCostMilliNodeHours": "8230"
      }
    },
    {
      "name": "projects/PROJECT_ID/locations/us-central1/models/MODEL_ID_2",
      "displayName": "DISPLAY_NAME_2",
      "datasetId": "DATASET_ID",
      "createTime": "2019-07-22T18:35:06.881193Z",
      "deploymentState": "UNDEPLOYED",
      "updateTime": "2019-07-22T19:58:44.980357Z",
      "imageObjectDetectionModelMetadata": {
        "modelType": "mobile-versatile-1",
        "nodeQps": -1,
        "stopReason": "MODEL_CONVERGED",
        "trainBudgetMilliNodeHours": "24000",
        "trainCostMilliNodeHours": "9367"
      }
    },
    {
      "name": "projects/PROJECT_ID/locations/us-central1/models/MODEL_ID_3",
      "displayName": "DISPLAY_NAME_3",
      "datasetId": "DATASET_ID",
      "createTime": "2019-03-31T22:56:51.348238Z",
      "deploymentState": "UNDEPLOYED",
      "updateTime": "2019-07-22T18:42:44.594876Z",
      "imageObjectDetectionModelMetadata": {
        "modelType": "cloud-high-accuracy-1",
        "nodeQps": 0.6872852233676976
      }
    }
  ]
}

Go

Prima di provare questo esempio, segui le istruzioni di configurazione per questa lingua nella pagina Librerie client.

import (
	"context"
	"fmt"
	"io"

	automl "cloud.google.com/go/automl/apiv1"
	"google.golang.org/api/iterator"
	automlpb "google.golang.org/genproto/googleapis/cloud/automl/v1"
)

// listModels lists existing models.
func listModels(w io.Writer, projectID string, location string) error {
	// projectID := "my-project-id"
	// location := "us-central1"

	ctx := context.Background()
	client, err := automl.NewClient(ctx)
	if err != nil {
		return fmt.Errorf("NewClient: %v", err)
	}
	defer client.Close()

	req := &automlpb.ListModelsRequest{
		Parent: fmt.Sprintf("projects/%s/locations/%s", projectID, location),
	}

	it := client.ListModels(ctx, req)

	// Iterate over all results
	for {
		model, err := it.Next()
		if err == iterator.Done {
			break
		}
		if err != nil {
			return fmt.Errorf("ListModels.Next: %v", err)
		}

		// Retrieve deployment state.
		deploymentState := "undeployed"
		if model.GetDeploymentState() == automlpb.Model_DEPLOYED {
			deploymentState = "deployed"
		}

		// Display the model information.
		fmt.Fprintf(w, "Model name: %v\n", model.GetName())
		fmt.Fprintf(w, "Model display name: %v\n", model.GetDisplayName())
		fmt.Fprintf(w, "Model create time:\n")
		fmt.Fprintf(w, "\tseconds: %v\n", model.GetCreateTime().GetSeconds())
		fmt.Fprintf(w, "\tnanos: %v\n", model.GetCreateTime().GetNanos())
		fmt.Fprintf(w, "Model deployment state: %v\n", deploymentState)
	}

	return nil
}

Java

Prima di provare questo esempio, segui le istruzioni di configurazione per questa lingua nella pagina Librerie client.

import com.google.cloud.automl.v1.AutoMlClient;
import com.google.cloud.automl.v1.ListModelsRequest;
import com.google.cloud.automl.v1.LocationName;
import com.google.cloud.automl.v1.Model;
import java.io.IOException;

class ListModels {

  static void listModels() throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String projectId = "YOUR_PROJECT_ID";
    listModels(projectId);
  }

  // List the models available in the specified location
  static void listModels(String projectId) throws IOException {
    // 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 (AutoMlClient client = AutoMlClient.create()) {
      // A resource that represents Google Cloud Platform location.
      LocationName projectLocation = LocationName.of(projectId, "us-central1");

      // Create list models request.
      ListModelsRequest listModelsRequest =
          ListModelsRequest.newBuilder()
              .setParent(projectLocation.toString())
              .setFilter("")
              .build();

      // List all the models available in the region by applying filter.
      System.out.println("List of models:");
      for (Model model : client.listModels(listModelsRequest).iterateAll()) {
        // Display the model information.
        System.out.format("Model name: %s\n", model.getName());
        // To get the model id, you have to parse it out of the `name` field. As models Ids are
        // required for other methods.
        // Name Format: `projects/{project_id}/locations/{location_id}/models/{model_id}`
        String[] names = model.getName().split("/");
        String retrievedModelId = names[names.length - 1];
        System.out.format("Model id: %s\n", retrievedModelId);
        System.out.format("Model display name: %s\n", model.getDisplayName());
        System.out.println("Model create time:");
        System.out.format("\tseconds: %s\n", model.getCreateTime().getSeconds());
        System.out.format("\tnanos: %s\n", model.getCreateTime().getNanos());
        System.out.format("Model deployment state: %s\n", model.getDeploymentState());
      }
    }
  }
}

Node.js

Prima di provare questo esempio, segui le istruzioni di configurazione per questa lingua nella pagina Librerie client.

/**
 * TODO(developer): Uncomment these variables before running the sample.
 */
// const projectId = 'YOUR_PROJECT_ID';
// const location = 'us-central1';

// Imports the Google Cloud AutoML library
const {AutoMlClient} = require('@google-cloud/automl').v1;

// Instantiates a client
const client = new AutoMlClient();

async function listModels() {
  // Construct request
  const request = {
    parent: client.locationPath(projectId, location),
    filter: 'translation_model_metadata:*',
  };

  const [response] = await client.listModels(request);

  console.log('List of models:');
  for (const model of response) {
    console.log(`Model name: ${model.name}`);
    console.log(`
      Model id: ${model.name.split('/')[model.name.split('/').length - 1]}`);
    console.log(`Model display name: ${model.displayName}`);
    console.log('Model create time');
    console.log(`\tseconds ${model.createTime.seconds}`);
    console.log(`\tnanos ${model.createTime.nanos / 1e9}`);
    console.log(`Model deployment state: ${model.deploymentState}`);
  }
}

listModels();

Python

Prima di provare questo esempio, segui le istruzioni di configurazione per questa lingua nella pagina Librerie client.

from google.cloud import automl

# TODO(developer): Uncomment and set the following variables
# project_id = "YOUR_PROJECT_ID"

client = automl.AutoMlClient()
# A resource that represents Google Cloud Platform location.
project_location = f"projects/{project_id}/locations/us-central1"

request = automl.ListModelsRequest(parent=project_location, filter="")
response = client.list_models(request=request)

print("List of models:")
for model in response:
    # Display the model information.
    if model.deployment_state == automl.Model.DeploymentState.DEPLOYED:
        deployment_state = "deployed"
    else:
        deployment_state = "undeployed"

    print("Model name: {}".format(model.name))
    print("Model id: {}".format(model.name.split("/")[-1]))
    print("Model display name: {}".format(model.display_name))
    print("Model create time: {}".format(model.create_time))
    print("Model deployment state: {}".format(deployment_state))

Lingue aggiuntive

C#: segui le istruzioni per la configurazione di C# nella pagina delle librerie client e consulta la documentazione di riferimento di AutoML Vision Object Detection per .NET.

PHP: segui le istruzioni per la configurazione di PHP nella pagina delle librerie client e consulta la documentazione di riferimento di AutoML Vision Object Detection per PHP.

Ruby: segui le istruzioni di configurazione di Rubby nella pagina delle librerie client e consulta la documentazione di riferimento di Rilevamento di oggetti AutoML ML Vision per Ruby.

Recupero di un modello

Puoi ottenere un modello specifico addestrato da modificare o per la previsione.

UI web

Per visualizzare un elenco dei modelli disponibili utilizzando l'interfaccia utente di rilevamento oggetti Vision automatico, fai clic sul link Modelli in alto nel menu di navigazione a sinistra.

Immagine dei modelli di schede

Per vedere i modelli di un altro progetto, seleziona il progetto dall'elenco a discesa nella parte superiore destra della barra del titolo.

REST &CMD LINE

Prima di utilizzare uno qualsiasi dei dati della richiesta, effettua le seguenti sostituzioni:

  • project-id: ID progetto GCP.
  • model-id: l'ID del modello, dalla risposta durante la creazione del modello. L'ID è l'ultimo elemento del nome del modello. Ad esempio:
    • nome modello: projects/project-id/locations/location-id/models/IOD4412217016962778756
    • ID modello: IOD4412217016962778756

Metodo HTTP e URL:

GET https://automl.googleapis.com/v1/projects/project-id/locations/us-central1/models/model-id

Per inviare la richiesta, scegli una delle seguenti opzioni:

Curling

Esegui questo comando:

curl -X GET \
-H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
"https://automl.googleapis.com/v1/projects/project-id/locations/us-central1/models/model-id"

PowerShell

Esegui questo comando:

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

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://automl.googleapis.com/v1/projects/project-id/locations/us-central1/models/model-id" | Select-Object -Expand Content

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "name": "projects/PROJECT_ID/locations/us-central1/models/MODEL_ID",
  "displayName": "DISPLAY_NAME",
  "datasetId": "DATASET_ID",
  "createTime": "2019-07-26T21:10:18.338846Z",
  "deploymentState": "UNDEPLOYED",
  "updateTime": "2019-07-26T22:28:57.464076Z",
  "imageObjectDetectionModelMetadata": {
    "modelType": "cloud-low-latency-1",
    "nodeQps": 1.2987012987012987,
    "stopReason": "MODEL_CONVERGED",
    "trainBudgetMilliNodeHours": "216000",
    "trainCostMilliNodeHours": "8230"
  }
}

Java

Prima di provare questo esempio, segui le istruzioni di configurazione per questa lingua nella pagina Librerie client.

import com.google.cloud.automl.v1.AutoMlClient;
import com.google.cloud.automl.v1.Model;
import com.google.cloud.automl.v1.ModelName;
import java.io.IOException;

class GetModel {

  static void getModel() throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String projectId = "YOUR_PROJECT_ID";
    String modelId = "YOUR_MODEL_ID";
    getModel(projectId, modelId);
  }

  // Get a model
  static void getModel(String projectId, String modelId) throws IOException {
    // 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 (AutoMlClient client = AutoMlClient.create()) {
      // Get the full path of the model.
      ModelName modelFullId = ModelName.of(projectId, "us-central1", modelId);
      Model model = client.getModel(modelFullId);

      // Display the model information.
      System.out.format("Model name: %s\n", model.getName());
      // To get the model id, you have to parse it out of the `name` field. As models Ids are
      // required for other methods.
      // Name Format: `projects/{project_id}/locations/{location_id}/models/{model_id}`
      String[] names = model.getName().split("/");
      String retrievedModelId = names[names.length - 1];
      System.out.format("Model id: %s\n", retrievedModelId);
      System.out.format("Model display name: %s\n", model.getDisplayName());
      System.out.println("Model create time:");
      System.out.format("\tseconds: %s\n", model.getCreateTime().getSeconds());
      System.out.format("\tnanos: %s\n", model.getCreateTime().getNanos());
      System.out.format("Model deployment state: %s\n", model.getDeploymentState());
    }
  }
}

Node.js

Prima di provare questo esempio, segui le istruzioni di configurazione per questa lingua nella pagina Librerie client.

/**
 * TODO(developer): Uncomment these variables before running the sample.
 */
// const projectId = 'YOUR_PROJECT_ID';
// const location = 'us-central1';
// const modelId = 'YOUR_MODEL_ID';

// Imports the Google Cloud AutoML library
const {AutoMlClient} = require('@google-cloud/automl').v1;

// Instantiates a client
const client = new AutoMlClient();

async function getModel() {
  // Construct request
  const request = {
    name: client.modelPath(projectId, location, modelId),
  };

  const [response] = await client.getModel(request);

  console.log(`Model name: ${response.name}`);
  console.log(
    `Model id: ${
      response.name.split('/')[response.name.split('/').length - 1]
    }`
  );
  console.log(`Model display name: ${response.displayName}`);
  console.log('Model create time');
  console.log(`\tseconds ${response.createTime.seconds}`);
  console.log(`\tnanos ${response.createTime.nanos / 1e9}`);
  console.log(`Model deployment state: ${response.deploymentState}`);
}

getModel();

Python

Prima di provare questo esempio, segui le istruzioni di configurazione per questa lingua nella pagina Librerie client.

from google.cloud import automl

# TODO(developer): Uncomment and set the following variables
# project_id = "YOUR_PROJECT_ID"
# model_id = "YOUR_MODEL_ID"

client = automl.AutoMlClient()
# Get the full path of the model.
model_full_id = client.model_path(project_id, "us-central1", model_id)
model = client.get_model(name=model_full_id)

# Retrieve deployment state.
if model.deployment_state == automl.Model.DeploymentState.DEPLOYED:
    deployment_state = "deployed"
else:
    deployment_state = "undeployed"

# Display the model information.
print("Model name: {}".format(model.name))
print("Model id: {}".format(model.name.split("/")[-1]))
print("Model display name: {}".format(model.display_name))
print("Model create time: {}".format(model.create_time))
print("Model deployment state: {}".format(deployment_state))

Lingue aggiuntive

C#: segui le istruzioni per la configurazione di C# nella pagina delle librerie client e consulta la documentazione di riferimento di AutoML Vision Object Detection per .NET.

PHP: segui le istruzioni per la configurazione di PHP nella pagina delle librerie client e consulta la documentazione di riferimento di AutoML Vision Object Detection per PHP.

Ruby: segui le istruzioni di configurazione di Rubby nella pagina delle librerie client e consulta la documentazione di riferimento di Rilevamento di oggetti AutoML ML Vision per Ruby.

Aggiornamento del numero di nodi di un modello

Dopo aver eseguito il deployment di un modello sottoposto a deployment, puoi aggiornare il numero di nodi su cui viene eseguito il deployment del modello per rispondere alla quantità specifica di traffico. Ad esempio, se riscontri un numero di query al secondo (QPS) più elevato del previsto.

Puoi modificare questo numero di nodo senza dover prima annullare il deployment del modello. L'aggiornamento del deployment modificherà il numero di nodo senza interrompere il traffico di previsione pubblicato.

UI web

  1. Nella AutoML Vision Object Detection UI, seleziona la scheda Modelli (con l'icona a forma di lampadina) nella barra di navigazione a sinistra per visualizzare i modelli disponibili.

    Per visualizzare i modelli di un altro progetto, seleziona il progetto nell'elenco a discesa in alto a destra nella barra del titolo.

  2. Seleziona il modello addestrato di cui hai eseguito il deployment.
  3. Seleziona la scheda Testa e utilizza subito sotto la barra del titolo.
  4. Viene visualizzato un messaggio in una casella nella parte superiore della pagina che riporta "Il deployment del tuo modello è stato eseguito ed è disponibile per le richieste di previsione online". Seleziona l'opzione Aggiorna deployment a lato del testo.

    immagine del pulsante di deployment Deployment
  5. Nella finestra Aggiorna deployment visualizzata, seleziona il nuovo numero di nodo in cui eseguire il deployment del modello dall'elenco. I numeri dei nodi mostrano le query di previsione stimate al secondo (QPS). immagine della finestra popup di aggiornamento del deployment
  6. Dopo aver selezionato un nuovo numero di nodo dall'elenco, seleziona Update deployment (Aggiorna deployment) per aggiornare il numero di nodo in cui viene eseguito il deployment del modello.

    aggiorna la finestra di deployment dopo aver selezionato un nuovo numero di nodo
  7. Tornerai alla finestra Testa e utilizza dove vedrai la casella di testo in cui è visualizzato "Modello di deployment...". deployment del modello
  8. Una volta eseguito il deployment del modello sul nuovo numero di nodo, riceverai un'email all'indirizzo associato al progetto.

REST &CMD LINE

Lo stesso metodo utilizzato per il deployment iniziale di un modello viene utilizzato per cambiare il numero di nodo del modello sottoposto a deployment.

Prima di utilizzare uno qualsiasi dei dati della richiesta, effettua le seguenti sostituzioni:

  • project-id: ID progetto GCP.
  • model-id: l'ID del modello, dalla risposta durante la creazione del modello. L'ID è l'ultimo elemento del nome del modello. Ad esempio:
    • nome modello: projects/project-id/locations/location-id/models/IOD4412217016962778756
    • ID modello: IOD4412217016962778756

Considerazioni sul campo:

  • nodeCount: il numero di nodi in cui eseguire il deployment del modello. Il valore deve essere compreso tra 1 e 100, inclusi su entrambe le estremità. Un nodo è un'astrazione di una risorsa macchina, in grado di gestire le query di previsione online al secondo (QPS), come specificato nel criterio qps_per_node di modello.

Metodo HTTP e URL:

POST https://automl.googleapis.com/v1/projects/project-id/locations/us-central1/models/model-id:deploy

Corpo JSON richiesta:

{
  "imageObjectDetectionModelDeploymentMetadata": {
    "nodeCount": 2
  }
}

Per inviare la richiesta, scegli una delle seguenti opzioni:

Curling

Salva il corpo della richiesta in un file denominato request.json ed esegui il seguente comando:

curl -X POST \
-H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://automl.googleapis.com/v1/projects/project-id/locations/us-central1/models/model-id:deploy"

PowerShell

Salva il corpo della richiesta in un file denominato request.json ed esegui il seguente comando:

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

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://automl.googleapis.com/v1/projects/project-id/locations/us-central1/models/model-id:deploy" | Select-Object -Expand Content

Dovresti vedere un output simile al seguente. Puoi utilizzare l'ID operazione per visualizzare lo stato dell'attività. Per un esempio, vedi Utilizzo delle operazioni a lunga esecuzione.

{
  "name": "projects/project-id/locations/us-central1/operations/operation-id",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.automl.v1.OperationMetadata",
    "createTime": "2019-08-07T22:00:20.692109Z",
    "updateTime": "2019-08-07T22:00:20.692109Z",
    "deployModelDetails": {}
  }
}

Go

Prima di provare questo esempio, segui le istruzioni di configurazione per questa lingua nella pagina Librerie client.

import (
	"context"
	"fmt"
	"io"

	automl "cloud.google.com/go/automl/apiv1"
	automlpb "google.golang.org/genproto/googleapis/cloud/automl/v1"
)

// visionObjectDetectionDeployModelWithNodeCount deploys a model with node count.
func visionObjectDetectionDeployModelWithNodeCount(w io.Writer, projectID string, location string, modelID string) error {
	// projectID := "my-project-id"
	// location := "us-central1"
	// modelID := "IOD123456789..."

	ctx := context.Background()
	client, err := automl.NewClient(ctx)
	if err != nil {
		return fmt.Errorf("NewClient: %v", err)
	}
	defer client.Close()

	req := &automlpb.DeployModelRequest{
		Name: fmt.Sprintf("projects/%s/locations/%s/models/%s", projectID, location, modelID),
		ModelDeploymentMetadata: &automlpb.DeployModelRequest_ImageObjectDetectionModelDeploymentMetadata{
			ImageObjectDetectionModelDeploymentMetadata: &automlpb.ImageObjectDetectionModelDeploymentMetadata{
				NodeCount: 2,
			},
		},
	}

	op, err := client.DeployModel(ctx, req)
	if err != nil {
		return fmt.Errorf("DeployModel: %v", err)
	}
	fmt.Fprintf(w, "Processing operation name: %q\n", op.Name())

	if err := op.Wait(ctx); err != nil {
		return fmt.Errorf("Wait: %v", err)
	}

	fmt.Fprintf(w, "Model deployed.\n")

	return nil
}

Java

Prima di provare questo esempio, segui le istruzioni di configurazione per questa lingua nella pagina Librerie client.

import com.google.api.gax.longrunning.OperationFuture;
import com.google.cloud.automl.v1.AutoMlClient;
import com.google.cloud.automl.v1.DeployModelRequest;
import com.google.cloud.automl.v1.ImageObjectDetectionModelDeploymentMetadata;
import com.google.cloud.automl.v1.ModelName;
import com.google.cloud.automl.v1.OperationMetadata;
import com.google.protobuf.Empty;
import java.io.IOException;
import java.util.concurrent.ExecutionException;

class VisionObjectDetectionDeployModelNodeCount {

  static void visionObjectDetectionDeployModelNodeCount()
      throws InterruptedException, ExecutionException, IOException {
    // TODO(developer): Replace these variables before running the sample.
    String projectId = "YOUR_PROJECT_ID";
    String modelId = "YOUR_MODEL_ID";
    visionObjectDetectionDeployModelNodeCount(projectId, modelId);
  }

  // Deploy a model for prediction with a specified node count (can be used to redeploy a model)
  static void visionObjectDetectionDeployModelNodeCount(String projectId, String modelId)
      throws IOException, ExecutionException, InterruptedException {
    // 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 (AutoMlClient client = AutoMlClient.create()) {
      // Get the full path of the model.
      ModelName modelFullId = ModelName.of(projectId, "us-central1", modelId);
      ImageObjectDetectionModelDeploymentMetadata metadata =
          ImageObjectDetectionModelDeploymentMetadata.newBuilder().setNodeCount(2).build();
      DeployModelRequest request =
          DeployModelRequest.newBuilder()
              .setName(modelFullId.toString())
              .setImageObjectDetectionModelDeploymentMetadata(metadata)
              .build();
      OperationFuture<Empty, OperationMetadata> future = client.deployModelAsync(request);

      future.get();
      System.out.println("Model deployment finished");
    }
  }
}

Node.js

Prima di provare questo esempio, segui le istruzioni di configurazione per questa lingua nella pagina Librerie client.

/**
 * TODO(developer): Uncomment these variables before running the sample.
 */
// const projectId = 'YOUR_PROJECT_ID';
// const location = 'us-central1';
// const modelId = 'YOUR_MODEL_ID';

// Imports the Google Cloud AutoML library
const {AutoMlClient} = require('@google-cloud/automl').v1;

// Instantiates a client
const client = new AutoMlClient();

async function deployModelWithNodeCount() {
  // Construct request
  const request = {
    name: client.modelPath(projectId, location, modelId),
    imageObjectDetectionModelDeploymentMetadata: {
      nodeCount: 2,
    },
  };

  const [operation] = await client.deployModel(request);

  // Wait for operation to complete.
  const [response] = await operation.promise();
  console.log(`Model deployment finished. ${response}`);
}

deployModelWithNodeCount();

Python

Prima di provare questo esempio, segui le istruzioni di configurazione per questa lingua nella pagina Librerie client.

from google.cloud import automl

# TODO(developer): Uncomment and set the following variables
# project_id = "YOUR_PROJECT_ID"
# model_id = "YOUR_MODEL_ID"

client = automl.AutoMlClient()
# Get the full path of the model.
model_full_id = client.model_path(project_id, "us-central1", model_id)

# node count determines the number of nodes to deploy the model on.
# https://cloud.google.com/automl/docs/reference/rpc/google.cloud.automl.v1#imageobjectdetectionmodeldeploymentmetadata
metadata = automl.ImageObjectDetectionModelDeploymentMetadata(node_count=2)

request = automl.DeployModelRequest(
    name=model_full_id,
    image_object_detection_model_deployment_metadata=metadata,
)
response = client.deploy_model(request=request)

print("Model deployment finished. {}".format(response.result()))

Lingue aggiuntive

C#: segui le istruzioni per la configurazione di C# nella pagina delle librerie client e consulta la documentazione di riferimento di AutoML Vision Object Detection per .NET.

PHP: segui le istruzioni per la configurazione di PHP nella pagina delle librerie client e consulta la documentazione di riferimento di AutoML Vision Object Detection per PHP.

Ruby: segui le istruzioni di configurazione di Rubby nella pagina delle librerie client e consulta la documentazione di riferimento di Rilevamento di oggetti AutoML ML Vision per Ruby.

Eliminazione di un modello

Puoi eliminare la risorsa di un modello utilizzando l'ID modello.

UI web

  1. Nell'interfaccia utente di rilevamento oggetti Vision automatico, fai clic sull'icona a forma di lampadina nel menu di navigazione a sinistra per visualizzare l'elenco dei modelli disponibili.

  2. Fai clic sul menu con tre puntini all'estrema destra della riga che vuoi eliminare e seleziona Elimina modello.

  3. Fai clic su Elimina nella finestra di dialogo di conferma.

    Eliminazione di un'immagine modello

REST &CMD LINE

Prima di utilizzare uno qualsiasi dei dati della richiesta, effettua le seguenti sostituzioni:

  • project-id: ID progetto GCP.
  • model-id: l'ID del modello, dalla risposta durante la creazione del modello. L'ID è l'ultimo elemento del nome del modello. Ad esempio:
    • nome modello: projects/project-id/locations/location-id/models/IOD4412217016962778756
    • ID modello: IOD4412217016962778756

Metodo HTTP e URL:

DELETE https://automl.googleapis.com/v1/projects/project-id/locations/us-central1/models/model-id

Per inviare la richiesta, scegli una delle seguenti opzioni:

Curling

Esegui questo comando:

curl -X DELETE \
-H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
"https://automl.googleapis.com/v1/projects/project-id/locations/us-central1/models/model-id"

PowerShell

Esegui questo comando:

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

Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-Uri "https://automl.googleapis.com/v1/projects/project-id/locations/us-central1/models/model-id" | Select-Object -Expand Content

Dovresti vedere un output simile al seguente. Puoi utilizzare l'ID operazione per visualizzare lo stato dell'attività. Per un esempio, vedi Utilizzo delle operazioni a lunga esecuzione.

{
  "name": "projects/project-id/locations/us-central1/operations/operation-id",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.automl.v1.OperationMetadata",
    "createTime": "2018-11-01T15:59:36.196506Z",
    "updateTime": "2018-11-01T15:59:36.196506Z",
    "deleteDetails": {}
  }
}

Go

Prima di provare questo esempio, segui le istruzioni di configurazione per questa lingua nella pagina Librerie client.

import (
	"context"
	"fmt"
	"io"

	automl "cloud.google.com/go/automl/apiv1"
	automlpb "google.golang.org/genproto/googleapis/cloud/automl/v1"
)

// deleteModel deletes a model.
func deleteModel(w io.Writer, projectID string, location string, modelID string) error {
	// projectID := "my-project-id"
	// location := "us-central1"
	// modelID := "TRL123456789..."

	ctx := context.Background()
	client, err := automl.NewClient(ctx)
	if err != nil {
		return fmt.Errorf("NewClient: %v", err)
	}
	defer client.Close()

	req := &automlpb.DeleteModelRequest{
		Name: fmt.Sprintf("projects/%s/locations/%s/models/%s", projectID, location, modelID),
	}

	op, err := client.DeleteModel(ctx, req)
	if err != nil {
		return fmt.Errorf("DeleteModel: %v", err)
	}
	fmt.Fprintf(w, "Processing operation name: %q\n", op.Name())

	if err := op.Wait(ctx); err != nil {
		return fmt.Errorf("Wait: %v", err)
	}

	fmt.Fprintf(w, "Model deleted.\n")

	return nil
}

Java

Prima di provare questo esempio, segui le istruzioni di configurazione per questa lingua nella pagina Librerie client.

import com.google.cloud.automl.v1.AutoMlClient;
import com.google.cloud.automl.v1.ModelName;
import com.google.protobuf.Empty;
import java.io.IOException;
import java.util.concurrent.ExecutionException;

class DeleteModel {

  public static void main(String[] args)
      throws IOException, ExecutionException, InterruptedException {
    // TODO(developer): Replace these variables before running the sample.
    String projectId = "YOUR_PROJECT_ID";
    String modelId = "YOUR_MODEL_ID";
    deleteModel(projectId, modelId);
  }

  // Delete a model
  static void deleteModel(String projectId, String modelId)
      throws IOException, ExecutionException, InterruptedException {
    // 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 (AutoMlClient client = AutoMlClient.create()) {
      // Get the full path of the model.
      ModelName modelFullId = ModelName.of(projectId, "us-central1", modelId);

      // Delete a model.
      Empty response = client.deleteModelAsync(modelFullId).get();

      System.out.println("Model deletion started...");
      System.out.println(String.format("Model deleted. %s", response));
    }
  }
}

Node.js

Prima di provare questo esempio, segui le istruzioni di configurazione per questa lingua nella pagina Librerie client.

/**
 * TODO(developer): Uncomment these variables before running the sample.
 */
// const projectId = 'YOUR_PROJECT_ID';
// const location = 'us-central1';
// const modelId = 'YOUR_MODEL_ID';

// Imports the Google Cloud AutoML library
const {AutoMlClient} = require('@google-cloud/automl').v1;

// Instantiates a client
const client = new AutoMlClient();

async function deleteModel() {
  // Construct request
  const request = {
    name: client.modelPath(projectId, location, modelId),
  };

  const [response] = await client.deleteModel(request);
  console.log(`Model deleted: ${response}`);
}

deleteModel();

Python

Prima di provare questo esempio, segui le istruzioni di configurazione per questa lingua nella pagina Librerie client.

from google.cloud import automl

# TODO(developer): Uncomment and set the following variables
# project_id = "YOUR_PROJECT_ID"
# model_id = "YOUR_MODEL_ID"

client = automl.AutoMlClient()
# Get the full path of the model.
model_full_id = client.model_path(project_id, "us-central1", model_id)
response = client.delete_model(name=model_full_id)

print("Model deleted. {}".format(response.result()))

Lingue aggiuntive

C#: segui le istruzioni per la configurazione di C# nella pagina delle librerie client e consulta la documentazione di riferimento di AutoML Vision Object Detection per .NET.

PHP: segui le istruzioni per la configurazione di PHP nella pagina delle librerie client e consulta la documentazione di riferimento di AutoML Vision Object Detection per PHP.

Ruby: segui le istruzioni di configurazione di Rubby nella pagina delle librerie client e consulta la documentazione di riferimento di Rilevamento di oggetti AutoML ML Vision per Ruby.