Esercizio - Distribuire il modello e utilizzare l'endpoint

Completato

Il modello offre prestazioni soddisfacenti e quindi verrà distribuito.

Per la distribuzione sono disponibili diverse opzioni. L'opzione scelta dipende dal modo in cui si vuole usare il modello di Machine Learning. È possibile eseguire la distribuzione in un endpoint oppure esportare il modello per la distribuzione in piattaforme diverse.

Verrà illustrato come eseguire la distribuzione nell'endpoint e utilizzare il modello usando un'app.

Eseguire la distribuzione in un endpoint

È possibile eseguire la distribuzione in un endpoint ottenendo l'URL della stima o utilizzando l'API in un'app Python.

Ottenere l'URL della stima

  1. Nella barra dei menu in alto nel portale di Visione personalizzata selezionare Prestazioni.

  2. Seleziona Pubblica.

  3. In Pubblica modelloselezionare Prediction resource (Risorsa previsione) e quindi selezionare il nome della previsione per il progetto di Visione personalizzata. Seleziona Pubblica.

    Screenshot che mostra come pubblicare un modello di Visione personalizzata sottoposto a training.

    Dopo la pubblicazione del modello, le azioni per il modello vengono modificate nel portale di Visione personalizzata.

  4. Selezionare la scheda Prediction URL (URL previsione).

  5. In How to use the prediction API (Come usare l'API Previsioni), nella casella di testo sotto If you have an image URL (Se è disponibile un URL immagine) copiare e salvare il valore e quindi selezionare Chiudi.

    Screenshot che evidenzia l'URL per la previsione per un modello di Visione personalizzata pubblicato.

Utilizzare l'API in un'app Python

Quando il modello viene sottoposto a training e la sua esecuzione offre un'accuratezza soddisfacente, è pronto per l'uso nell'app.

  1. Nel portale di Azure passare al gruppo di risorse contenente la risorsa di Visione personalizzata. Una risorsa denominata <YourCustomVisionResourceName>-Prediction viene mostrata con il gruppo di risorse originale.

    Screenshot che mostra come aprire la risorsa di previsione nel portale di Azure.

  2. Selezionare il nome della previsione per aprire la pagina Panoramica. Questa pagina contiene collegamenti a risorse che forniscono maggiori informazioni su come chiamare l'API per ottenere previsioni dal modello.

  3. Sotto Attività iniziali, nella sezione 3 selezionare il collegamento per Avvio rapido di Python. Verrà avviata la procedura di avvio rapido per la classificazione immagini di Servizi di Azure AI per Python nel Web browser.

    Screenshot che mostra le risorse di avvio rapido che descrivono come chiamare l'API per ottenere le previsioni dal modello.

    Ecco il codice di esempio per chiamare l'API Previsioni in Python. Per il codice completo, vedere l'argomento di avvio rapido.

    from azure.cognitiveservices.vision.customvision.prediction import CustomVisionPredictionClient
    
    # Create variables for your resource; replace variables with valid values.
    prediction_key = "<YourKey>"
    endpoint = "<YourEndpoint>"
    base_image_url = "<BasePathToImageFolder>"
    
    # An example of a default iteration name is "Iteration1".
    publish_iteration_name = "<PublishedIterationName>"
    
    # You can find the project ID in the settings of the Custom Vision project in the portal.
    project.id = "<CustomVisionProjectId>"
    
    # Now, you have a trained endpoint that you can use to make a prediction.
    prediction_credentials = ApiKeyCredentials(in_headers={"Prediction-key": prediction_key})
    
    predictor = CustomVisionPredictionClient(endpoint, prediction_credentials)
    
    with open(base_image_url + "images/Test/test_image.jpg", "rb") as image_contents:
        results = predictor.classify_image(
            project.id, publish_iteration_name, image_contents.read())
    
    # Display the results.
    for prediction in results.predictions:
        print("\t" + prediction.tag_name +
             ": {0:.2f}%".format(prediction.probability * 100))
    

Quando si esegue la pubblicazione nell'endpoint pubblicato, si ottiene un risultato simile all'esempio seguente. Viene visualizzata la probabilità di ogni tag su cui è stato eseguito il training del modello di Visione personalizzata, ordinata in base al punteggio più elevato. Il modello riconosce solo il tipo di uccelli oggetto del training. Se si pubblica un'immagine di un uccello per cui il modello non è stato sottoposto a training, il modello stima che la specie del nuovo uccello sia una di quelle per cui è stato eseguito il training.

American Crow: 99.18%
Common Grackle: 25.34%
Red-tailed Hawk (Dark morph): 4.09%
Mourning Dove: 1.74%
American Robin (Adult): 0.92%
House Sparrow (Female): 0.40%
American Robin (Juvenile): 0.31%
Northern Cardinal (Adult Male): 0.24%
Tufted Titmouse: 0.04%
Blue Jay: 0.04%
House Sparrow (Male): 0.04%
Northern Cardinal (Female): 0.04%
Red-tailed Hawk (Light morph immature): 0.02%
American Goldfinch (Male): 0.02%
House Wren: 0.01%
American Goldfinch (Female): 0.01%

Ora si sa come usare il modello di Machine Learning creato. Con nuovi dati da analizzare, è possibile documentare meglio le abitudini degli uccelli per contribuire a preservare il loro habitat e a incrementare la popolazione delle specie a rischio. Titto grazie all'uso di Visione personalizzata di Azure AI.