Machine Learning Studio (klasszikus) webszolgáltatás használata
A KÖVETKEZŐKRE VONATKOZIK: Machine Learning Studio (klasszikus) Azure Machine Learning
Fontos
A (klasszikus) Machine Learning Studio támogatása 2024. augusztus 31-én megszűnik. Javasoljuk, hogy addig térjen át az Azure Machine Learning használatára.
2021. december 1-től kezdve nem fog tudni létrehozni új (klasszikus) Machine Learning Studio-erőforrásokat. 2024. augusztus 31-ig továbbra is használhatja a meglévő (klasszikus) Machine Learning Studio-erőforrásokat.
- A gépi tanulási projektek ML Studióból (klasszikus) Azure Machine Learningbe való áthelyezéséről szóló információk.
- További információ az Azure Machine Learningről
A (klasszikus) ML Studio dokumentációjának kivezetése folyamatban van, és a jövőben nem várható a frissítése.
Miután webszolgáltatásként üzembe helyez egy Machine Learning Studiót (klasszikus) prediktív modellt, rest API-val elküldheti az adatokat, és előrejelzéseket kaphat. Az adatokat valós időben vagy kötegelt módban is elküldheti.
A Machine Learning Web Service a Machine Learning Studio (klasszikus) használatával történő létrehozásáról és üzembe helyezéséről itt talál további információt:
- A Kísérlet a Machine Learning Studióban (klasszikus) való létrehozásáról szóló oktatóanyagért tekintse meg az első kísérlet létrehozását ismertető témakört.
- A webszolgáltatások üzembe helyezésével kapcsolatos részletekért lásd : Machine Learning Web service üzembe helyezése.
- A gépi tanulással kapcsolatos általános információkért látogasson el a Machine Learning dokumentációs központjába.
Áttekintés
A Machine Learning webszolgáltatással egy külső alkalmazás valós időben kommunikál egy Machine Learning-munkafolyamat-pontozási modellel. A Machine Learning Web Service-hívások előrejelzési eredményeket adnak vissza egy külső alkalmazásnak. Machine Learning Web Service-hívás indításához át kell adnia egy API-kulcsot, amely egy előrejelzés üzembe helyezésekor jön létre. A Machine Learning webszolgáltatás alapja a REST, amely népszerű architektúra a webes programozási projektekhez.
A Machine Learning Studio (klasszikus) kétféle szolgáltatással rendelkezik:
- Request-Response Service (RRS) – Alacsony késésű, nagy mértékben méretezhető szolgáltatás, amely interfészt biztosít a Machine Learning Studióból létrehozott és üzembe helyezett állapot nélküli modellekhez (klasszikus).
- Batch Execution Service (BES) – Aszinkron szolgáltatás, amely egy köteget pontozza az adatrekordokhoz.
A Machine Learning webszolgáltatásokkal kapcsolatos további információkért lásd : Machine Learning Web service üzembe helyezése.
Engedélyezési kulcs lekérése
A kísérlet üzembe helyezésekor API-kulcsok jönnek létre a webszolgáltatáshoz. A kulcsokat több helyről is lekérheti.
A Machine Learning Web Services portálról
Jelentkezzen be a Machine Learning Web Services portálra.
Új Machine Learning webszolgáltatás API-kulcsának lekérése:
- A Machine Learning Web Services portálon kattintson a Web Services elemre a felső menüben.
- Kattintson arra a webszolgáltatásra, amelyhez le szeretné kérni a kulcsot.
- A felső menüben kattintson a Felhasználás gombra.
- Másolja és mentse az elsődleges kulcsot.
Egy klasszikus Machine Learning-webszolgáltatás API-kulcsának lekérése:
- Az Azure Machine Learning Web Services portálon kattintson a Klasszikus webszolgáltatások elemre a felső menüben.
- Kattintson arra a webszolgáltatásra, amellyel dolgozik.
- Kattintson arra a végpontra, amelyhez le szeretné kérni a kulcsot.
- A felső menüben kattintson a Felhasználás gombra.
- Másolja és mentse az elsődleges kulcsot.
Klasszikus webszolgáltatás
Egy klasszikus webszolgáltatás kulcsát is lekérheti a Machine Learning Studióból (klasszikus).
Machine Learning Studio (klasszikus)
- A Machine Learning Studióban (klasszikus) kattintson a WEB SERVICES elemre a bal oldalon.
- Kattintson egy webszolgáltatásra. Az API-kulcs az IRÁNYÍTÓPULT lapon található.
Csatlakozás Machine Learning-webszolgáltatáshoz
A Machine Learning webszolgáltatáshoz bármely olyan programozási nyelv használatával csatlakozhat, amely támogatja a HTTP-kéréseket és -válaszokat. A C#, a Python és az R nyelven lévő példákat a Machine Learning Web Service súgóoldalán tekintheti meg.
A Machine Learning API segít a Machine Learning API súgójának létrehozásában egy webszolgáltatás üzembe helyezésekor. Lásd a 3. oktatóanyagot: Hitelkockázati modell üzembe helyezése. A Machine Learning API súgója részletes információkat tartalmaz egy előrejelzési webszolgáltatásról.
- Kattintson arra a webszolgáltatásra, amellyel dolgozik.
- Kattintson arra a végpontra, amelynek meg szeretné tekinteni az API súgóoldalát.
- A felső menüben kattintson a Felhasználás gombra.
- Kattintson az API súgóoldalára a Kérelem-válasz vagy a Batch-végrehajtás végpontja alatt.
A Machine Learning API súgójának megtekintése új webszolgáltatáshoz
A Machine Learning Web Services portálon:
- Kattintson a WEBSZOLGÁLTATÁSOK elemre a felső menüben.
- Kattintson arra a webszolgáltatásra, amelyhez le szeretné kérni a kulcsot.
Kattintson a Webszolgáltatás használata gombra a kérelem-válasz és kötegelt végrehajtási szolgáltatások URI-jának lekéréséhez, valamint a C#, R és Python kódmintához.
Kattintson a Swagger API-ra a megadott URI-kból hívott API-k Swagger-alapú dokumentációjának lekéréséhez.
C# minta
A Machine Learning Web Service-hez való csatlakozáshoz használjon httpClient-átengedő ScoreData-t. A ScoreData tartalmaz egy FeatureVectort, egy numerikus jellemzők n dimenziós vektorát, amely a ScoreData-t jelöli. Api-kulccsal hitelesítheti magát a Machine Learning szolgáltatásban.
A Machine Learning webszolgáltatáshoz való csatlakozáshoz telepíteni kell a Microsoft.AspNet.WebApi.Client NuGet csomagot.
A Microsoft.AspNet.WebApi.Client NuGet telepítése a Visual Studióban
- Tegye közzé a Download dataset from UCI: Adult 2 class dataset Web Service(UCI: Adult 2 class dataset Web Service) letöltését.
- Kattintson a Tools (Eszközök) >NuGet Package Manager (NuGet-csomagkezelő)>Package Manager Console (Csomagkezelő konzol) elemre.
- Válassza az Install-Package Microsoft.AspNet.WebApi.Client lehetőséget.
A kódminta futtatása
- Tegye közzé az "1. minta: Adathalmaz letöltése az UCI: Adult 2 osztály adatkészletéből" kísérletet, amely a Machine Learning-mintagyűjtemény része.
- ApiKey hozzárendelése egy webszolgáltatás kulcsával. Lásd a fenti engedélyezési kulcs lekérése című témakört.
- ServiceUri hozzárendelése a kérelem URI-jával.
Így fog kinézni egy teljes kérelem.
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);
}
}
}
}
}
Python-minta
Machine Learning webszolgáltatáshoz való csatlakozáshoz használja a Python 2.X urllib2 kódtárát és a Python 3.X urllib.request kódtárát. Át fogja adni a ScoreData-t, amely egy FeatureVectort, a ScoreData-t jelképező numerikus jellemzők n dimenziós vektorát tartalmazza. Api-kulccsal hitelesítheti magát a Machine Learning szolgáltatásban.
A kódminta futtatása
- Telepítse az "1. minta: Adatkészlet letöltése az UCI- ból: Felnőtt 2. osztály adatkészlet" kísérlet, amely a Machine Learning-mintagyűjtemény része.
- ApiKey hozzárendelése egy webszolgáltatás kulcsával. Tekintse meg a cikk elején található Engedélyezési kulcs lekérése szakaszt.
- ServiceUri hozzárendelése a kérelem URI-jával.
Így fog kinézni egy teljes kérelem.
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()))
R-minta
A Machine Learning Web Service-hez való csatlakozáshoz az RCurl - és rjson-kódtárak használatával végezze el a kérést, és dolgozza fel a visszaadott JSON-választ. Át fogja adni a ScoreData-t, amely egy FeatureVectort, a ScoreData-t jelképező numerikus jellemzők n dimenziós vektorát tartalmazza. Api-kulccsal hitelesítheti magát a Machine Learning szolgáltatásban.
Így fog kinézni egy teljes kérelem.
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)
JavaScript-minta
A Machine Learning Web Service-hez való csatlakozáshoz használja a projekt npm-csomagját . Az objektummal JSON
formázhatja a bemenetet, és elemezheti az eredményt. npm install request --save
Telepítse a package.json alatt, vagy adja hozzá "request": "*"
a package.json, dependencies
majd futtassanpm install
.
Így fog kinézni egy teljes kérelem.
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);
}
});