Jak korzystać z usługi internetowej Machine Learning Studio (klasycznej)
DOTYCZY: Machine Learning Studio (wersja klasyczna) Azure Machine Learning
Ważne
Obsługa programu Machine Learning Studio (wersja klasyczna) zakończy się 31 sierpnia 2024 r. Zalecamy przejście do usługi Azure Machine Learning przed tym terminem.
Od 1 grudnia 2021 r. nie będzie można tworzyć nowych zasobów programu Machine Learning Studio (wersja klasyczna). Do 31 sierpnia 2024 r. można będzie nadal korzystać z istniejących zasobów programu Machine Learning Studio (wersja klasyczna).
- Zobacz informacje na temat przenoszenia projektów uczenia maszynowego z usługi ML Studio (klasycznej) do usługi Azure Machine Learning.
- Dowiedz się więcej o usłudze Azure Machine Learning
Dokumentacja programu ML Studio (wersja klasyczna) jest wycofywana i może nie być aktualizowana w przyszłości.
Po wdrożeniu modelu predykcyjnego usługi Machine Learning Studio (klasycznej) jako usługi internetowej możesz użyć interfejsu API REST do wysyłania danych i uzyskiwania przewidywań. Dane można wysyłać w czasie rzeczywistym lub w trybie wsadowym.
Więcej informacji na temat tworzenia i wdrażania usługi sieci Web Machine Learning przy użyciu usługi Machine Learning Studio (klasycznej) można znaleźć tutaj:
- Aby zapoznać się z samouczkiem dotyczącym tworzenia eksperymentu w usłudze Machine Learning Studio (wersja klasyczna), zobacz Tworzenie pierwszego eksperymentu.
- Aby uzyskać szczegółowe informacje na temat wdrażania usługi internetowej, zobacz Wdrażanie usługi sieci Web Machine Learning.
- Aby uzyskać więcej informacji na temat uczenia maszynowego, odwiedź Centrum dokumentacji usługi Machine Learning.
Omówienie
Dzięki usłudze sieci Web Machine Learning aplikacja zewnętrzna komunikuje się z modelem oceniania przepływu pracy usługi Machine Learning w czasie rzeczywistym. Wywołanie usługi sieci Web Machine Learning zwraca wyniki przewidywania do aplikacji zewnętrznej. Aby wykonać wywołanie usługi sieci Web Machine Learning, należy przekazać klucz interfejsu API tworzony podczas wdrażania przewidywania. Usługa sieci Web Machine Learning jest oparta na protokole REST, popularnym wyborem architektury dla projektów programowania internetowego.
Usługa Machine Learning Studio (klasyczna) ma dwa typy usług:
- Request-Response Service (RRS) — usługa o małym opóźnieniu, wysoce skalowalna, która zapewnia interfejs do modeli bezstanowych utworzonych i wdrożonych z poziomu usługi Machine Learning Studio (klasycznej).
- Usługa wykonywania wsadowego (BES) — usługa asynchroniczna, która ocenia partię rekordów danych.
Aby uzyskać więcej informacji na temat usług sieci Web Machine Learning, zobacz Deploy a Machine Learning Web Service (Wdrażanie usługi sieci Web Machine Learning).
Uzyskiwanie klucza autoryzacji
Podczas wdrażania eksperymentu klucze interfejsu API są generowane dla usługi internetowej. Klucze można pobrać z kilku lokalizacji.
Z poziomu portalu usług sieci Web Machine Learning
Zaloguj się do portalu usług sieci Web Machine Learning .
Aby pobrać klucz interfejsu API dla nowej usługi sieci Web Machine Learning:
- W portalu usług sieci Web Machine Learning kliknij pozycję Usługi sieci Web w górnym menu.
- Kliknij usługę sieci Web, dla której chcesz pobrać klucz.
- W górnym menu kliknij pozycję Zużyj.
- Skopiuj i zapisz klucz podstawowy.
Aby pobrać klucz interfejsu API dla klasycznej usługi sieci Web Machine Learning:
- W portalu usług sieci Web Azure Machine Learning kliknij pozycję Klasyczne usługi sieci Web w górnym menu.
- Kliknij usługę sieci Web, z którą pracujesz.
- Kliknij punkt końcowy, dla którego chcesz pobrać klucz.
- W górnym menu kliknij pozycję Zużyj.
- Skopiuj i zapisz klucz podstawowy.
Klasyczna usługa sieci Web
Możesz również pobrać klucz klasycznej usługi internetowej z usługi Machine Learning Studio (wersja klasyczna).
Usługa Machine Learning Studio (klasyczna)
- W usłudze Machine Learning Studio (wersja klasyczna) kliknij pozycję USŁUGI INTERNETOWE po lewej stronie.
- Kliknij usługę sieci Web. Klucz interfejsu API znajduje się na karcie PULPIT NAWIGACYJNY.
Nawiązywanie połączenia z usługą sieci Web Machine Learning
Możesz nawiązać połączenie z usługą sieci Web Machine Learning przy użyciu dowolnego języka programowania obsługującego żądania HTTP i odpowiedzi. Przykłady można wyświetlić w językach C#, Python i R na stronie pomocy usługi sieci Web Machine Learning.
Pomoc interfejsu API usługi Machine Learning Pomoc interfejsu API usługi Machine Learning jest tworzona podczas wdrażania usługi internetowej. Zobacz Samouczek 3: wdrażanie modelu ryzyka kredytowego. Pomoc interfejsu API usługi Machine Learning zawiera szczegółowe informacje o usłudze internetowej przewidywania.
- Kliknij usługę sieci Web, z którą pracujesz.
- Kliknij punkt końcowy, dla którego chcesz wyświetlić stronę Pomocy interfejsu API.
- W górnym menu kliknij pozycję Zużyj.
- Kliknij stronę pomocy interfejsu API w obszarze Request-Response lub punktów końcowych wykonywania usługi Batch.
Aby wyświetlić pomoc interfejsu API usługi Machine Learning dla nowej usługi sieci Web
W portalu usług sieci Web Machine Learning:
- Kliknij pozycję USŁUGI INTERNETOWE w górnym menu.
- Kliknij usługę sieci Web, dla której chcesz pobrać klucz.
Kliknij pozycję Użyj usługi internetowej , aby pobrać identyfikatory URI dla usług Request-Response i Batch Execution Services oraz przykładowy kod w językach C#, R i Python.
Kliknij pozycję Interfejs API struktury Swagger , aby uzyskać dokumentację opartą na strukturze Swagger dla interfejsów API wywoływanych z podanych identyfikatorów URI.
Przykład w języku C#
Aby nawiązać połączenie z usługą sieci Web Machine Learning, użyj obiektu ScoreData z przekazywaniem elementu HttpClient . ScoreData zawiera Element FeatureVector, nwymiarowy wektor cech liczbowych, który reprezentuje scoreData. Uwierzytelniasz się w usłudze Machine Learning przy użyciu klucza interfejsu API.
Aby nawiązać połączenie z usługą sieci Web Machine Learning, należy zainstalować pakiet NuGet Microsoft.AspNet.WebApi.Client .
Instalowanie pakietu NuGet Microsoft.AspNet.WebApi.Client w programie Visual Studio
- Opublikuj zestaw danych Pobierania z uci: zestaw danych dla dorosłych 2 klasy Usługa sieci Web.
- Kliknij pozycję Narzędzia>Konsola menedżera pakietówNuGet Package Manager>.
- Wybierz pozycję Install-Package Microsoft.AspNet.WebApi.Client.
Aby uruchomić przykładowy kod
- Publikowanie eksperymentu "Sample 1: Download dataset from UCI: Adult 2 class dataset" (Przykład 1: pobieranie zestawu danych z uci: zestaw danych klasy dla dorosłych), część kolekcji przykładów usługi Machine Learning.
- Przypisz wartość apiKey przy użyciu klucza z usługi internetowej. Zobacz Temat Uzyskiwanie klucza autoryzacji powyżej.
- Przypisz identyfikator serviceUri za pomocą identyfikatora URI żądania.
Oto jak będzie wyglądać pełne żądanie.
using System;
using System.Collections.Generic;
using System.IO;
using System.Net.Http;
using System.Net.Http.Formatting;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
namespace CallRequestResponseService
{
class Program
{
static void Main(string[] args)
{
InvokeRequestResponseService().Wait();
}
static async Task InvokeRequestResponseService()
{
using (var client = new HttpClient())
{
var scoreRequest = new
{
Inputs = new Dictionary<string, List<Dictionary<string, string>>> () {
{
"input1",
// Replace columns labels with those used in your dataset
new List<Dictionary<string, string>>(){new Dictionary<string, string>(){
{
"column1", "value1"
},
{
"column2", "value2"
},
{
"column3", "value3"
}
}
}
},
},
GlobalParameters = new Dictionary<string, string>() {}
};
// Replace these values with your API key and URI found on https://services.azureml.net/
const string apiKey = "<your-api-key>";
const string apiUri = "<your-api-uri>";
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue( "Bearer", apiKey);
client.BaseAddress = new Uri(apiUri);
// WARNING: The 'await' statement below can result in a deadlock
// if you are calling this code from the UI thread of an ASP.NET application.
// One way to address this would be to call ConfigureAwait(false)
// so that the execution does not attempt to resume on the original context.
// For instance, replace code such as:
// result = await DoSomeTask()
// with the following:
// result = await DoSomeTask().ConfigureAwait(false)
HttpResponseMessage response = await client.PostAsJsonAsync("", scoreRequest);
if (response.IsSuccessStatusCode)
{
string result = await response.Content.ReadAsStringAsync();
Console.WriteLine("Result: {0}", result);
}
else
{
Console.WriteLine(string.Format("The request failed with status code: {0}", response.StatusCode));
// Print the headers - they include the request ID and the timestamp,
// which are useful for debugging the failure
Console.WriteLine(response.Headers.ToString());
string responseContent = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseContent);
}
}
}
}
}
Przykładowy język Python
Aby nawiązać połączenie z usługą sieci Web Machine Learning, użyj biblioteki urllib2 dla języka Python 2.X i biblioteki urllib.request dla języka Python 3.X. Przekażesz element ScoreData, który zawiera element FeatureVector, nwymiarowy wektor cech liczbowych, który reprezentuje WynikData. Uwierzytelniasz się w usłudze Machine Learning przy użyciu klucza interfejsu API.
Aby uruchomić przykładowy kod
- Wdróż eksperyment "Sample 1: Download dataset from UCI: Adult 2 class dataset" (Przykład 1: pobieranie zestawu danych z uci: zestaw danych klasy dla dorosłych), część kolekcji przykładów usługi Machine Learning.
- Przypisz wartość apiKey przy użyciu klucza z usługi internetowej. Zobacz sekcję Pobieranie klucza autoryzacji na początku tego artykułu.
- Przypisz identyfikator serviceUri za pomocą identyfikatora URI żądania.
Oto jak będzie wyglądać pełne żądanie.
import urllib2 # urllib.request and urllib.error for Python 3.X
import json
data = {
"Inputs": {
"input1":
[
{
'column1': "value1",
'column2': "value2",
'column3': "value3"
}
],
},
"GlobalParameters": {}
}
body = str.encode(json.dumps(data))
# Replace this with the URI and API Key for your web service
url = '<your-api-uri>'
api_key = '<your-api-key>'
headers = {'Content-Type':'application/json', 'Authorization':('Bearer '+ api_key)}
# "urllib.request.Request(url, body, headers)" for Python 3.X
req = urllib2.Request(url, body, headers)
try:
# "urllib.request.urlopen(req)" for Python 3.X
response = urllib2.urlopen(req)
result = response.read()
print(result)
# "urllib.error.HTTPError as error" for Python 3.X
except urllib2.HTTPError, error:
print("The request failed with status code: " + str(error.code))
# Print the headers - they include the request ID and the timestamp, which are useful for debugging the failure
print(error.info())
print(json.loads(error.read()))
Przykład języka R
Aby nawiązać połączenie z usługą sieci Web Machine Learning, użyj bibliotek RCurl i rjson , aby wysłać żądanie i przetworzyć zwróconą odpowiedź JSON. Przekażesz element ScoreData, który zawiera element FeatureVector, nwymiarowy wektor cech liczbowych, który reprezentuje WynikData. Uwierzytelniasz się w usłudze Machine Learning przy użyciu klucza interfejsu API.
Oto jak będzie wyglądać pełne żądanie.
library("curl")
library("httr")
library("rjson")
requestFailed = function(response) {
return (response$status_code >= 400)
}
printHttpResult = function(response, result) {
if (requestFailed(response)) {
print(paste("The request failed with status code:", response$status_code, sep=" "))
# Print the headers - they include the request ID and the timestamp, which are useful for debugging the failure
print(response$headers)
}
print("Result:")
print(fromJSON(result))
}
req = list(
Inputs = list(
"input1" = list(
"ColumnNames" = list("Col1", "Col2", "Col3"),
"Values" = list( list( "0", "value", "0" ), list( "0", "value", "0" ) )
) ),
GlobalParameters = setNames(fromJSON('{}'), character(0))
)
body = enc2utf8(toJSON(req))
api_key = "abc123" # Replace this with the API key for the web service
authz_hdr = paste('Bearer', api_key, sep=' ')
response = POST(url= "<your-api-uri>",
add_headers("Content-Type" = "application/json", "Authorization" = authz_hdr),
body = body)
result = content(response, type="text", encoding="UTF-8")
printHttpResult(response, result)
Przykład w języku JavaScript
Aby nawiązać połączenie z usługą sieci Web Machine Learning, użyj pakietu npm żądania w projekcie. Użyjesz również JSON
obiektu , aby sformatować dane wejściowe i przeanalizować wynik. Zainstaluj plik przy użyciu polecenia npm install request --save
lub dodaj "request": "*"
go do pliku package.json w obszarze dependencies
i uruchom polecenie npm install
.
Oto jak będzie wyglądać pełne żądanie.
let req = require("request");
const uri = "<your-api-uri>";
const apiKey = "<your-api-key>";
let data = {
"Inputs": {
"input1":
[
{
'column1': "value1",
'column2': "value2",
'column3': "value3"
}
],
},
"GlobalParameters": {}
}
const options = {
uri: uri,
method: "POST",
headers: {
"Content-Type": "application/json",
"Authorization": "Bearer " + apiKey,
},
body: JSON.stringify(data)
}
req(options, (err, res, body) => {
if (!err && res.statusCode == 200) {
console.log(body);
} else {
console.log("The request failed with status code: " + res.statusCode);
}
});