Questa pagina illustra come fornire previsioni dal modello di classificazione delle immagini e la visualizzazione di queste previsioni in un'app web.
Questo tutorial è composto da varie pagine:Addestramento di un modello di classificazione delle immagini personalizzato.
Esecuzione di previsioni da un modello di classificazione delle immagini personalizzato.
Per ogni pagina si presuppone che tu abbia già eseguito le istruzioni dalla pagine precedenti del tutorial.
La parte restante di questo documento presuppone che tu stia utilizzando lo stesso Cloud Shell creato quando hai seguito la prima pagina di questo di Google Cloud. Se la sessione originale di Cloud Shell non è più aperto, puoi tornare nell'ambiente nel seguente modo:-
In the Google Cloud console, activate Cloud Shell.
-
Nella sessione Cloud Shell, esegui il seguente comando:
cd hello-custom-sample
Creazione di un endpoint
Per ottenere le previsioni online dal modello ML che hai addestrato seguendo la pagina precedente di questo tutorial, crea un endpoint Vertex AI. Gli endpoint forniscono previsioni online da uno o più modelli.
Nella console Google Cloud, nella sezione Vertex AI, vai alla pagina Modelli.
Trova la riga del modello che hai addestrato nel passaggio precedente di questa procedura tutorial,
hello_custom
e fai clic sull'icona del modello per aprire la pagina dei dettagli del modello.Nella scheda Deployment e test, fai clic su Deployment su endpoint per aprire il riquadro Deployment su endpoint.
Nel passaggio Definisci il tuo endpoint, aggiungi alcune informazioni di base per il tuo endpoint:
Seleziona Crea nuovo endpoint.
Nel campo Nome endpoint, inserisci
hello_custom
.Nella sezione Impostazioni modello, assicurati di vedere il nome del tuo modello, chiamato anche
hello_custom
. Specifica le seguenti impostazioni del modello:Nel campo Suddivisione traffico, inserisci
100
. Vertex AI supporta la suddivisione del traffico per un endpoint in più modelli, ma questo tutorial non utilizza questa funzionalità.Nel campo Numero minimo di nodi di computing, inserisci
1
.Nell'elenco a discesa Tipo di macchina, seleziona n1-standard-2 dalla sezione Standard.
Fai clic su Fine.
Nella sezione Logging, assicurati che entrambi i tipi di logging delle previsioni siano abilitati.
Fai clic su Continua.
Nel passaggio Dettagli endpoint, verifica che l'endpoint verrà disegnato su
us-central1 (Iowa)
.Non selezionare la casella di controllo Utilizza una chiave di crittografia gestita dal cliente (CMEK). Questo tutorial non utilizza CMEK.
Fai clic su Esegui il deployment per creare l'endpoint ed eseguire il deployment del modello nella endpoint.
Dopo alcuni minuti, accanto al nuovo viene visualizzato
endpoint nella tabella Endpoint. Allo stesso tempo, ricevi anche un'email che indica che hai creato l'endpoint ed eseguito il deployment del modello all'endpoint.Esegui il deployment di una funzione Cloud Run
Puoi ottenere previsioni dall'endpoint Vertex AI che
creato inviando richieste all'interfaccia REST dell'API Vertex AI. Tuttavia, solo i gestori con l'aiplatform.endpoints.predict
autorizzazione possono inviare richieste di previsione online. Non puoi rendere pubblico l'endpoint in modo che chiunque possa inviare richieste, ad esempio tramite un'app web.
In questa sezione, esegui il deployment del codice in Funzioni Cloud Run per gestire
per le richieste non autenticate. Il codice di esempio che hai scaricato quando hai letto la
prima pagina di questo tutorial contiene il codice per questa
funzione Cloud Run nella directory function/
. Se vuoi, esegui il seguente comando per esplorare il codice della funzione Cloud Run:
less function/main.py
Il deployment della funzione ha i seguenti scopi:
Puoi configurare una funzione Cloud Run per ricevere messaggi non autenticati richieste. Inoltre, le funzioni vengono eseguite utilizzando un account di servizio con il ruolo Editor per impostazione predefinita, che include l'autorizzazione
aiplatform.endpoints.predict
necessaria per ottenere le previsioni dall'endpoint Vertex AI.Questa funzione esegue anche una pre-elaborazione utile sulle richieste. L'endpoint Vertex AI prevede che le richieste di previsione abbiano il formato del primo livello del grafico TensorFlow Keras addestrato: un tensore di valori float normalizzati con dimensioni fisse. La funzione prende l'URL di un'immagine come input e pre-elabora l'immagine in questo formato prima di richiedere una previsione dall'endpoint Vertex AI.
Per eseguire il deployment della funzione Cloud Run, segui questi passaggi:
Nella console Google Cloud, nella sezione Vertex AI, vai alla pagina Endpoint.
Trova la riga denominata dell'endpoint che hai creato nella sezione precedente.
hello_custom
. In questa riga, fai clic su Richiesta di esempio per aprire il riquadro Richiesta di esempio.Nel riquadro Richiesta di esempio, individua la riga di codice shell corrispondente al seguente pattern:
ENDPOINT_ID="ENDPOINT_ID"
ENDPOINT_ID è un numero che identifica questo particolare endpoint.
Copia questa riga di codice ed eseguila nella sessione Cloud Shell per impostare la variabile
ENDPOINT_ID
.Esegui il comando seguente nella sessione Cloud Shell per eseguire il deployment della funzione Cloud Run:
gcloud functions deploy classify_flower \ --region=us-central1 \ --source=function \ --runtime=python37 \ --memory=2048MB \ --trigger-http \ --allow-unauthenticated \ --set-env-vars=ENDPOINT_ID=${ENDPOINT_ID}
Esegui il deployment di un'app web per inviare richieste di previsione
Infine, ospita un'app web statica su Cloud Storage per ricevere previsioni dal modello ML addestrato. L'app web invia richieste alla funzione Cloud Run, che le pre-elabora e ottiene le previsioni dall'endpoint Vertex AI.
La directory webapp
del codice campione scaricato contiene un esempio
dell'app web. Nella sessione di Cloud Shell, esegui questi comandi
per preparare ed eseguire il deployment dell'app web:
Imposta un paio di variabili shell per i comandi da utilizzare nei seguenti passaggi:
PROJECT_ID=PROJECT_ID BUCKET_NAME=BUCKET_NAME
Sostituisci quanto segue:
- PROJECT_ID: il tuo progetto Google Cloud ID.
- BUCKET_NAME: il nome del bucket Cloud Storage che hai creato seguendo la prima pagina di questo tutorial.
Modifica l'app per fornirle l'URL di attivazione della funzione Cloud Run:
echo "export const CLOUD_FUNCTION_URL = 'https://us-central1-${PROJECT_ID}.cloudfunctions.net/classify_flower';" \ > webapp/function-url.js
Carica la directory
webapp
nel bucket Cloud Storage:gcloud storage cp webapp gs://${BUCKET_NAME}/ --recursive
Rendi pubblicamente i file delle app web che hai appena caricato leggibili:
gcloud storage objects update gs://${BUCKET_NAME}/webapp/** --add-acl-grant=entity=allUsers,role=READER
Ora puoi accedere al seguente URL per aprire l'app web e recuperare previsioni:
https://storage.googleapis.com/BUCKET_NAME/webapp/index.html
Apri l'app web e fai clic sull'immagine di un fiore per vedere per la classificazione del tipo di fiore. L'app web presenta la previsione come un l'elenco dei tipi di fiori e la probabilità che l'immagine contenga ogni tipo fiore.
Passaggi successivi
Segui l'ultima pagina del tutorial per eseguire la pulizia le risorse che hai creato.