Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
SI APPLICA A:
Machine Learning Studio (versione classica)
Azure Machine Learning
Importante
Il supporto dello studio di Azure Machine Learning (versione classica) terminerà il 31 agosto 2024. È consigliabile passare ad Azure Machine Learning entro tale data.
A partire dal 1° dicembre 2021 non sarà possibile creare nuove risorse dello studio di Azure Machine Learning (versione classica). Fino al 31 agosto 2024 sarà possibile continuare a usare le risorse dello studio di Azure Machine Learning (versione classica).
- Vedere le informazioni sullo spostamento di progetti di Machine Learning da ML Studio (versione classica) ad Azure Machine Learning.
- Altre informazioni su Azure Machine Learning
La documentazione relativa allo studio di Machine Learning (versione classica) è in fase di ritiro e potrebbe non essere aggiornata in futuro.
La ripetizione del training è un modo per garantire che i modelli di Machine Learning rimangano accurati e si basino sui dati più rilevanti disponibili. Questo articolo illustra come ripetere il training e distribuire un modello di Machine Learning come nuovo servizio Web in Studio (versione classica). Se stai cercando di riqualificare un classico servizio web, vedere questo articolo di procedura.
Questo articolo presuppone che si disponga già di un servizio Web predittivo distribuito. Se non si ha già un servizio Web predittivo, vedere come distribuire un servizio Web studio (versione classica).
È possibile seguire questa procedura per ripetere il training e distribuire un nuovo servizio Web di Machine Learning:
- Distribuire un servizio Web di riaddestramento
- Eseguire il training di un nuovo modello usando il servizio web di riaddestramento
- Aggiornare l'esperimento predittivo esistente per usare il nuovo modello
Nota
È consigliabile usare il modulo Azure Az PowerShell per interagire con Azure. Per iniziare, vedere Installare Azure PowerShell . Per informazioni su come eseguire la migrazione al modulo Az PowerShell, vedere Eseguire la migrazione di Azure PowerShell da AzureRM ad Az.
Distribuire il servizio Web di riaddestramento
Un servizio Web di ripetizione del training consente di ripetere il training del modello con un nuovo set di parametri, come nuovi dati, e salvarlo per usarlo in seguito. Quando si connette un output del servizio Web a un modello di addestramento, l'esperimento di addestramento restituisce un nuovo modello da usare.
Usare la procedura seguente per distribuire un servizio Web di ripetizione del training:
Collega il modulo Input del Servizio Web al tuo input dati. In genere, infatti, si vuole che i dati di input vengano elaborati allo stesso modo dei dati di training originali.
Collegare un modulo Output servizio Web all'output del Modello di Training.
Se si dispone di un modulo Evaluate Model , è possibile connettere un modulo Output servizio Web per restituire i risultati della valutazione
Esegui l'esperimento.
Dopo aver eseguito l'esperimento, il flusso di lavoro risultante dovrebbe essere simile a quello dell'immagine seguente:
Ora è possibile distribuire l'esperimento di training come un servizio Web di ripetizione del training che ottiene come output un modello sottoposto a training e i risultati di valutazione del modello.
Nella parte inferiore dell'area di disegno dell'esperimento fare clic su Configura servizio Web
Selezionare Distribuisci servizio Web [Nuovo]. Viene aperto il portale dei servizi Web di Machine Learning nella pagina Deploy Web Service (Distribuisci servizio Web ).
Digitare un nome per il servizio Web e scegliere un piano di pagamento.
Selezionare Distribuisci.
Riaddestrare il modello
In questo esempio si userà il linguaggio C# per creare l'applicazione di ripetizione del training. Per eseguire questa attività, tuttavia, è possibile usare anche il codice di esempio Python o R.
Usare la procedura seguente per chiamare le API di ritraining:
- Creare un'applicazione console C# in Visual Studio: Nuovo>progetto>Visual C#>App console desktop> classicadi Windows (.NET Framework).
- Accedere al portale dei servizi Web Machine Learning.
- Fare clic sul servizio Web usato.
- Fare clic su Utilizza.
- Nella parte inferiore della pagina Utilizzo fare clic su Batch nella sezione Codice di esempio.
- Copiare il codice C# di esempio per l'esecuzione batch e incollarlo nel file Program.cs, Assicurati che lo spazio dei nomi rimanga intatto.
Aggiungere il pacchetto NuGet Microsoft.AspNet.WebApi.Client come specificato nei commenti. Per aggiungere il riferimento a Microsoft.WindowsAzure.Storage.dll, potrebbe essere necessario installare la libreria client per i servizi di archiviazione di Azure.
Lo screenshot seguente mostra la pagina Utilizzo nel portale dei servizi Web di Machine Learning.
Aggiornare la dichiarazione apikey
Individuare la dichiarazione apikey :
const string apiKey = "abc123"; // Replace this with the API key for the web service
Nella sezione Informazioni sull'utilizzo di base della pagina Utilizzo individuare la chiave primaria e copiarla nella dichiarazione apikey .
Aggiornare le informazioni di archiviazione di Azure
Il codice di esempio BES carica un file da un'unità locale (ad esempio, "C:\temp\CensusInput.csv") in Archiviazione di Azure, lo elabora e scrive i risultati in Archiviazione di Azure.
- Accedere al portale di Azure
- Nella colonna di spostamento a sinistra fare clic su Altri servizi, cercare Account di archiviazione e selezionarlo.
- Nell'elenco degli account di archiviazione, selezionarne uno per archiviare il modello addestrato nuovamente.
- Nella colonna di spostamento a sinistra fare clic su Chiavi di accesso.
- Copiare e salvare la chiave di accesso primaria.
- Nella barra di navigazione a sinistra, fare clic su Blobs.
- Selezionare un contenitore esistente oppure crearne uno nuovo e salvare il nome.
Individuare le dichiarazioni StorageAccountName, StorageAccountKey e StorageContainerName e aggiornare i valori salvati dal portale.
const string StorageAccountName = "mystorageacct"; // Replace this with your Azure storage account name
const string StorageAccountKey = "a_storage_account_key"; // Replace this with your Azure Storage key
const string StorageContainerName = "mycontainer"; // Replace this with your Azure Storage container name
È necessario anche assicurarsi che il file di input sia disponibile nella posizione specificata nel codice.
Specificare la destinazione dell'output
Quando si specifica il percorso di output nel payload della richiesta, l'estensione del file specificato in RelativeLocation deve essere specificata come ilearner.
Outputs = new Dictionary<string, AzureBlobDataReference>() {
{
"output1",
new AzureBlobDataReference()
{
ConnectionString = storageConnectionString,
RelativeLocation = string.Format("{0}/output1results.ilearner", StorageContainerName) /*Replace this with the location you want to use for your output file and a valid file extension (usually .csv for scoring results or .ilearner for trained models)*/
}
},
Di seguito è fornito un esempio di output del riaddestramento:
Valutare i risultati del riaddestramento
Quando si esegue l'applicazione, l'output include l'URL e il token di firma di accesso condiviso necessari per accedere ai risultati della valutazione.
È possibile visualizzare i risultati delle prestazioni del modello ritrainato combinando BaseLocation, RelativeLocation e SasBlobToken dai risultati di output per output2 e incollando l'URL completo nella barra degli indirizzi del browser.
Esaminare i risultati per determinare se le prestazioni del modello appena sottoposto a training sono migliori di quello esistente.
Salvare BaseLocation, RelativeLocation e SasBlobToken dai risultati dell'output.
Aggiornare l'esperimento predittivo
Accedere a Azure Resource Manager
Per prima cosa, accedere all'account Azure dall'interno dell'ambiente PowerShell usando il cmdlet Connect-AzAccount .
Ottenere l'oggetto definizione del servizio Web
Ottenere quindi l'oggetto Definizione servizio Web chiamando il cmdlet Get-AzMlWebService .
$wsd = Get-AzMlWebService -Name 'RetrainSamplePre.2016.8.17.0.3.51.237' -ResourceGroupName 'Default-MachineLearning-SouthCentralUS'
Per determinare il nome del gruppo di risorse di un servizio Web esistente, eseguire il cmdlet Get-AzMlWebService senza parametri per visualizzare i servizi Web nella sottoscrizione. Individuare il servizio Web e quindi verificare l'ID del servizio Web. Il nome del gruppo di risorse è il quarto elemento nell'ID, subito dopo l'elemento resourceGroups . Nell'esempio seguente, il nome del gruppo di risorse è Default-MachineLearning-SouthCentralUS.
Properties : Microsoft.Azure.Management.MachineLearning.WebServices.Models.WebServicePropertiesForGraph
Id : /subscriptions/<subscription ID>/resourceGroups/Default-MachineLearning-SouthCentralUS/providers/Microsoft.MachineLearning/webServices/RetrainSamplePre.2016.8.17.0.3.51.237
Name : RetrainSamplePre.2016.8.17.0.3.51.237
Location : South Central US
Type : Microsoft.MachineLearning/webServices
Tags : {}
In alternativa, per determinare il nome del gruppo di risorse di un servizio Web esistente, accedere al portale dei servizi Web di Machine Learning. Selezionare il servizio Web. Il nome del gruppo di risorse è il quinto elemento dell'URL del servizio Web, subito dopo l'elemento resourceGroups . Nell'esempio seguente, il nome del gruppo di risorse è Default-MachineLearning-SouthCentralUS.
https://services.azureml.net/subscriptions/<subscription ID>/resourceGroups/Default-MachineLearning-SouthCentralUS/providers/Microsoft.MachineLearning/webServices/RetrainSamplePre.2016.8.17.0.3.51.237
Esportare l'oggetto definizione del servizio Web in un file in formato JSON
Per modificare la definizione del modello sottoposto a training per usare il modello appena sottoposto a training, è prima necessario usare il cmdlet Export-AzMlWebService per esportarlo in un file in formato JSON.
Export-AzMlWebService -WebService $wsd -OutputFile "C:\temp\mlservice_export.json"
Aggiornare il riferimento al blob ilearner
Individuare il modello addestrato negli asset, aggiornare il valore uri nel nodo locationInfo con l'URI del blob ilearner. L'URI viene generato combinando BaseLocation e RelativeLocation dall'output della chiamata di riaddestramento BES.
"asset3": {
"name": "Retrain Sample [trained model]",
"type": "Resource",
"locationInfo": {
"uri": "https://mltestaccount.blob.core.windows.net/azuremlassetscontainer/baca7bca650f46218633552c0bcbba0e.ilearner"
},
"outputPorts": {
"Results dataset": {
"type": "Dataset"
}
}
},
Importare il file JSON in un oggetto definizione del servizio Web
Usare il cmdlet Import-AzMlWebService per convertire nuovamente il file JSON modificato in un oggetto Definizione servizio Web che è possibile usare per aggiornare l'esperimento predicativo.
$wsd = Import-AzMlWebService -InputFile "C:\temp\mlservice_export.json"
Aggiornare il servizio Web
Usare infine il cmdlet Update-AzMlWebService per aggiornare l'esperimento predittivo.
Update-AzMlWebService -Name 'RetrainSamplePre.2016.8.17.0.3.51.237' -ResourceGroupName 'Default-MachineLearning-SouthCentralUS'
Passaggi successivi
Per altre informazioni su come gestire i servizi Web o tenere traccia di più esecuzioni degli esperimenti, vedere gli articoli seguenti: