Hello addestramento personalizzato: fornisci previsioni da un modello di classificazione delle immagini personalizzato

Questa pagina illustra la pubblicazione di previsioni dal modello di classificazione delle immagini e la visualizzazione di queste previsioni in un'app web.

Questo tutorial è composto da varie pagine:

  1. Configura il progetto e l'ambiente.

  2. Addestramento di una classificazione delle immagini personalizzata modello.

  3. Pubblicazione di previsioni da un'immagine personalizzata modello di classificazione.

  4. È in corso la pulizia del progetto.

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:

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

  2. Nella sessione di Cloud Shell, esegui questo comando:

    cd hello-custom-sample
    

Creazione di un endpoint

per ottenere previsioni online dal modello ML che hai addestrato quando Nella pagina precedente di questo tutorial, crea un endpoint Vertex AI. Gli endpoint forniscono previsioni online da uno o più modelli.

  1. Nella console Google Cloud, nella sezione Vertex AI, vai a la pagina Modelli.

    Vai a Modelli

  2. 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.

  3. Nella pagina Deployment e test, fai clic su Esegui il deployment nell'endpoint per aprire Riquadro Esegui il deployment nell'endpoint.

  4. Nel passaggio Definisci il tuo endpoint, aggiungi alcune informazioni di base per il tuo endpoint:

    1. Seleziona Crea nuovo endpoint.

    2. Nel campo Nome endpoint, inserisci hello_custom.

    3. Nella sezione Impostazioni modello, assicurati di visualizzare il nome del tuo chiamato anche hello_custom. Specifica il seguente modello impostazioni:

      1. Nel campo Suddivisione traffico, inserisci 100. Vertex AI supporta la suddivisione del traffico per un endpoint in più modelli, questo tutorial non utilizza questa funzionalità.

      2. Nel campo Numero minimo di nodi di computing, inserisci 1.

      3. Nell'elenco a discesa Tipo di macchina, seleziona n1-standard-2 da sezione Standard.

      4. Fai clic su Fine.

    4. Nella sezione Logging, assicurati che entrambi i tipi di logging delle previsioni sono abilitate.

    Fai clic su Continua.

  5. Nel passaggio Dettagli endpoint, verifica che venga eseguito il deployment dell'endpoint a us-central1 (Iowa).

    Non selezionare la casella di controllo Utilizza una chiave di crittografia gestita dal cliente (CMEK). Questo tutorial non utilizza CMEK.

  6. 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 Functions

Puoi ottenere previsioni dall'endpoint Vertex AI che creato inviando richieste all'interfaccia REST dell'API Vertex AI. Tuttavia, entità con aiplatform.endpoints.predict autorizzazione può inviare richieste di previsione online. Tu non possono rendere pubblico l'endpoint per consentire a nessuno di inviare richieste, ad esempio tramite un'app web.

In questa sezione, esegui il deployment del codice in Cloud Functions per gestire per le richieste non autenticate. Il codice campione che hai scaricato quando hai letto il prima pagina di questo tutorial contiene il codice per questo Cloud Function nella directory function/. Facoltativamente, esegui questo comando per esplorare il codice della Cloud Function:

less function/main.py

Il deployment della funzione ha i seguenti scopi:

  • Puoi configurare una Cloud Function per ricevere messaggi non autenticati richieste. Inoltre, le funzioni vengono eseguite utilizzando un account di servizio con l'Editor predefinito, che include l'autorizzazione aiplatform.endpoints.predict necessaria per ottenere previsioni dall'endpoint Vertex AI.

  • Questa funzione esegue anche una pre-elaborazione utile sulle richieste. La L'endpoint Vertex AI prevede richieste di previsione nel formato del primo strato del grafo TensorFlow Keras addestrato: un tensore di è in virgola mobile 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 Cloud Function, segui questi passaggi:

  1. Nella console Google Cloud, nella sezione Vertex AI, vai a la pagina Endpoint.

    Vai a Endpoints

  2. 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 la Riquadro Richiesta di esempio.

  3. Nel riquadro Richiesta di esempio, trova la riga di codice shell che corrisponde alla il seguente pattern:

    ENDPOINT_ID="ENDPOINT_ID"
    

    ENDPOINT_ID è un numero che identifica questo particolare endpoint.

    Copia questa riga di codice ed eseguila nella sessione di Cloud Shell imposta la variabile ENDPOINT_ID.

  4. Esegui questo comando nella sessione di Cloud Shell per eseguire il deployment Cloud Function:

    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 al tuo la Cloud Function, che le pre-elabora e riceve previsioni l'endpoint Vertex AI.

La directory webapp del codice campione scaricato contiene un esempio dell'app web di Google. Nella sessione di Cloud Shell, esegui questi comandi per preparare ed eseguire il deployment dell'app web:

  1. 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:

  2. Modifica l'app in modo che fornisca l'URL di attivazione del tuo Cloud Function:

    echo "export const CLOUD_FUNCTION_URL = 'https://us-central1-${PROJECT_ID}.cloudfunctions.net/classify_flower';" \
      > webapp/function-url.js
    
  3. Carica la directory webapp nel bucket Cloud Storage:

    gcloud storage cp webapp gs://${BUCKET_NAME}/ --recursive
    
  4. 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
    
  5. 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.

Nel seguente screenshot, l'app web ne ha già ricevuto uno previsione ed è in procinto di inviarne un'altra richiesta.

App web con quattro immagini etichettate di fiori. Uno ha probabilità di
      le etichette previste sottostanti. Un altro ha una barra di caricamento sotto.

Passaggi successivi

Segui l'ultima pagina del tutorial per eseguire la pulizia le risorse che hai creato.