Fare un'inferenza

Ora puoi utilizzare i dati di test in df_for_prediction per effettuare una richiesta di inferenza. La richiesta di inferenza richiama il modello per prevedere quale specie di pinguino è rappresentata dalle caratteristiche del pinguino in ogni riga di df_for_prediction.

Prepara i dati di test di inferenza

Prima di poter utilizzare i dati di test per creare inferenze, rimuovi la colonna species. Poiché la specie di pinguino è ciò che stai prevedendo, non può essere inclusa nei dati di test utilizzati per creare un'inferenza. Dopo aver rimosso la colonna species, converti i dati in un elenco Python perché è ciò che il metodo predict accetta come input. Esegui il seguente codice per convertire i dati in un elenco Python:

# Remove the species column
df_for_prediction.pop(LABEL_COLUMN)

# Convert data to a Python list
test_data_list = df_for_prediction.values.tolist()

(Facoltativo) Visualizzare i dati di test

Per aiutarti a comprendere i dati di test, puoi eseguire la seguente riga di codice per visualizzarli:

test_data_list

In ogni riga, i rispettivi valori in ciascuna delle sei colonne si riferiscono alle seguenti caratteristiche di un pinguino:

Colonna Caratteristica del pinguino
0 island: l'isola in cui si trova una specie di pinguini. La mappatura dei valori dell'isola è 0 per Dream, 1 per Biscoe e 2 per Torgersen.
1 culmen_length_mm: la lunghezza della cresta lungo la parte superiore del becco di un pinguino.
2 culmen_depth_mm: l'altezza del becco di un pinguino.
3 flipper_length_mm - La lunghezza dell'ala a forma di pinna di un pinguino.
4 body_mass_g: la massa del corpo di una penna.
5 sex: il sesso del pinguino. 0 è FEMALE e 1 è MALE.

Inviare la richiesta di inferenza

Per creare una richiesta di inferenza, trasmetti l'elenco Python dei dati di test che hai creato al metodo predict di endpoint.

Il metodo predict valuta le caratteristiche di ogni riga e le utilizza per prevedere il tipo di pinguino che rappresentano. Esegui il seguente codice per creare le tue inferenze. Le inferenze restituite contengono un elenco di righe, dove ogni riga ha tre colonne (Pinguino di Adelia (Pygoscelis adeliae) (colonna 1), Pinguino del genere Pygoscelis (Pygoscelis antarctica) (colonna 2) o Pinguino papua (Pygoscelis papua) (colonna 3)).

# Get your inferences.
predictions = endpoint.predict(instances=test_data_list)

# View the inferences
predictions.predictions

Ogni colonna di una riga contiene un valore e maggiore è il valore, maggiore è la confidenza che la specie di pinguino rappresentata da quella colonna sia un'inferenza corretta. Ad esempio, nella seguente riga di output dell'inferenza di esempio, il modello utilizza le caratteristiche della riga di dati di esempio sui pinguini per prevedere che il pinguino appartiene molto probabilmente alla specie Pinguino di Adelia (Pygoscelis adeliae). Questo perché il valore più alto, 0.732703805, si trova nella prima colonna.

[0.732703805, 0.233752429, 0.0335437432]

Nel codice seguente, il metodo NumPy argmax restituisce la colonna per ogni riga che contiene il valore più alto. Il valore più alto corrisponde all'inferenza più probabilmente corretta. La seconda riga mostra l'array di inferenze.

# Get the inference for each set of input data.
species_predictions = np.argmax(predictions.predictions, axis=1)

# View the best inference for the penguin characteristics in each row.
species_predictions

Ogni risultato nell'array species_predictions prevede a quale specie di pinguino corrispondono i valori nella riga corrispondente dei dati di test. Ad esempio, il primo valore è 0, che corrisponde alla specie Pinguino di Adelia (Pygoscelis adeliae). Ciò significa che il modello prevede che la specie di un pinguino con le caratteristiche nella prima riga dei dati di test sia pinguino di Adelia (Pygoscelis adeliae).

Esegui la pulizia delle risorse

Ora che hai finito, puoi continuare a utilizzare il notebook per esplorare e scoprire di più sulle risorse che hai creato e su come funzionano.

Eliminare le risorse

Quando è tutto pronto, ti consigliamo di eliminare le risorse Google Cloud che hai creato durante questo tutorial per evitare addebiti non necessari. Esistono due modi per eliminare le risorse:

  • Elimina il progetto, il che comporta anche l'eliminazione di tutte le risorse associate. Per saperne di più, consulta la sezione Chiusura (eliminazione) dei progetti.

  • Esegui il codice che elimina il job di addestramento (un oggetto CustomTrainingJob), il modello (un oggetto Model), l'endpoint (un oggetto Endpoint) e il bucket Cloud Storage. Questa opzione conserva il progetto e qualsiasi altra risorsa che potresti aver creato e che non elimini esplicitamente con il codice.

    Devi annullare il deployment del modello prima di poterlo eliminare passando force=True al metodo endpoint.delete.

    Per conservare il progetto ed eliminare solo le risorse create durante questo tutorial, esegui il seguente codice nel notebook:

import os

# Delete the training job
job.delete()

# Delete the endpoint and undeploy the model from it
endpoint.delete(force=True)

# Delete the model
model.delete()

# Delete the storage bucket and its contents
bucket.delete(force=True)

Elimina l'istanza Vertex AI Workbench

Puoi conservare l'istanza Vertex AI Workbench per utilizzarla in futuro. Se lo tieni, assicurati di conoscere il suo costo. Per ulteriori informazioni, consulta i prezzi di Vertex AI Workbench.

Se vuoi eliminare l'istanza di Vertex AI Workbench, segui questi passaggi:

  1. Nella console Google Cloud , vai alla pagina Istanze di Vertex AI Workbench.

    Vai a Istanze

  2. Seleziona l'istanza di Vertex AI Workbench.

  3. Nel menu in alto, fai clic su  Elimina.

  4. Nella finestra di dialogo di conferma Elimina istanza, fai clic su Conferma. Il completamento dell'eliminazione richiede alcuni minuti.