Esercizio - Distribuire il modello e utilizzare l'endpoint
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
Nella barra dei menu in alto nel portale di Visione personalizzata selezionare Prestazioni.
Selezionare Pubblica.
In Pubblica modelloselezionare Prediction resource (Risorsa previsione) e quindi selezionare il nome della previsione per il progetto di Visione personalizzata. Selezionare Pubblica.
Dopo la pubblicazione del modello, le azioni per il modello vengono modificate nel portale di Visione personalizzata.
Selezionare la scheda Prediction URL (URL previsione).
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.
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.
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.
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.
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.
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.