Mi az a Pythonhoz készült Azure Machine Learning SDK?
Az adattudósok és AI-fejlesztők a Pythonhoz készült Azure Machine Learning SDK-t használják gépi tanulási munkafolyamatok létrehozására és futtatására az Azure Machine Learning szolgáltatással. A szolgáltatást bármilyen Python-környezetben használhatja, beleértve a Jupyter Notebooksot, a Visual Studio Code-ot vagy a kedvenc Python IDE-ét.
Az SDK legfontosabb területei:
- A gépi tanulási kísérletekben használt adathalmazok életciklusának áttekintése, előkészítése és felügyelete.
- Felhőbeli erőforrások kezelése a gépi tanulási kísérletek monitorozásához, naplózásához és rendszerezéséhez.
- A modelleket helyileg vagy felhőalapú erőforrásokkal, például GPU-gyorsítással rendelkező modellbetanítással is betaníthatja.
- Használjon automatizált gépi tanulást, amely konfigurációs paramétereket és betanítási adatokat fogad el. Ez a megoldás algoritmusok és hiperparaméter-beállítások automatikus iterációjával keresi meg az előrejelzések futtatásához legalkalmasabb modellt.
- A webszolgáltatások üzembe helyezésével a betanított modelleket olyan RESTful szolgáltatásokká konvertálhatja, amelyek bármely alkalmazásban felhasználhatók.
Az első lépések lépésenkénti útmutatóját a kapcsolódó oktatóanyagban találja.
Az alábbi szakaszok az SDK legfontosabb osztályairól, illetve a használatukhoz kapcsolódó, általános tervezési mintákról nyújtanak áttekintést. Az SDK beszerzésének módját lásd a telepítési útmutatóban.
Stabil vagy kísérleti
A Pythonhoz készült Azure Machine Learning SDK stabil és kísérleti funkciókat is biztosít ugyanabban az SDK-ban.
Funkció/képesség állapota | Description |
---|---|
Stabil funkciók |
Éles üzemre kész Ezek a funkciók a legtöbb használati esetben és éles környezetben ajánlottak. Ezeket ritkábban frissítik, mint a kísérleti funkciókat. |
Kísérleti funkciók |
Fejlődési Ezek a funkciók olyan újonnan fejlesztett képességek, & frissítések, amelyek nem feltétlenül állnak készen vagy nem tesztelhetők teljes mértékben éles használatra. Bár a funkciók általában működőképesek, néhány kompatibilitástörő változást is tartalmazhatnak. A kísérleti funkciók az SDK kompatibilitástörő hibáinak kivédésére szolgálnak, és csak a tesztelési időszak alatt kapnak frissítéseket. A kísérleti funkciókat előzetes verziójú funkcióknak is nevezik. Ahogy a neve is mutatja, a kísérleti (előzetes verzió) funkciók kísérletezéshez használhatók, és nem tekinthetők hibamentesnek vagy stabilnak. Ezért csak azoknak a haladó felhasználóknak ajánljuk a kísérleti funkciókat, akik szeretnék kipróbálni a képességek és frissítések korai verzióit, és részt kívánnak venni a hibák és hibák jelentésében. |
A kísérleti funkciókat az SDK-referencia megjegyzés szakasza jelöli, és az Azure Machine Learning dokumentációjában például (előzetes verzió) szövegként jelöli.
Munkaterület
Névtér: azureml.core.workspace.Workspace
A Workspace
osztály alapvető fontosságú felhőbeli erőforrás a gépi tanulási modellekkel való kísérletezéshez, illetve azok betanításához és üzembe helyezéséhez. Ez az Ön által használt Azure-előfizetést és -erőforráscsoportot egy egyszerűen használható objektumhoz kapcsolja.
Tekintse meg a Create Workspace metódus összes paraméterét a meglévő példányok (Storage, Key Vault, App-Insights és Azure Container Registry-ACR) újrafelhasználásához, valamint további beállítások, például a privát végpont konfigurációjának és a számítási célnak a módosításához.
Az alábbi kóddal importálhatja az osztályt és létrehozhat egy új munkaterületet. A create_resource_group
értéke legyen False
, ha már rendelkezik egy meglévő Azure-erőforráscsoporttal, amelyet a munkaterület esetében használni szeretne. Egyes függvények hitelesítő adatokat kérhetnek az Azure-beli hitelesítéshez.
from azureml.core import Workspace
ws = Workspace.create(name='myworkspace',
subscription_id='<azure-subscription-id>',
resource_group='myresourcegroup',
create_resource_group=True,
location='eastus2'
)
Ugyanazt a munkaterületet több környezetben is használhatja, ha először egy konfigurációs JSON-fájlba írja. Ezzel elmentheti az előfizetés, az erőforrás és a munkaterület nevének adatait.
ws.write_config(path="./file-path", file_name="ws_config.json")
A konfigurációs fájl beolvasásával töltheti be a munkaterületet.
from azureml.core import Workspace
ws_other_environment = Workspace.from_config(path="./file-path/ws_config.json")
Azt is megteheti, hogy a statikus get()
metódus használatával betölt egy meglévő munkaterületet a konfigurációs fájlok használata nélkül.
from azureml.core import Workspace
ws = Workspace.get(name="myworkspace", subscription_id='<azure-subscription-id>', resource_group='myresourcegroup')
Az alábbi kódpéldákban a ws
változó egy Workspace
objektumot jelképez.
Experiment
Névtér: azureml.core.experiment.Experiment
Az Experiment
osztály egy további alapvető fontosságú felhőbeli erőforrás, amely a próbaverziók (egyedi modellfuttatások) gyűjteményét jelöli. Az alábbi kód egy Experiment
objektumot kér le a Workspace
osztályból név alapján, vagy új Experiment
objektumot hoz létre, ha a név nem létezik.
from azureml.core.experiment import Experiment
experiment = Experiment(workspace=ws, name='test-experiment')
Futtassa az alábbi kódot a Workspace
osztály összes Experiment
objektuma listájának lekéréséhez.
list_experiments = Experiment.list(ws)
A get_runs
függvénnyel Run
objektumok (próbaverziók) listáját kérdezheti le a következőből: Experiment
. Az alábbi kód lekérdezi a futtatásokat, majd megjeleníti az egyes futtatások azonosítóit.
list_runs = experiment.get_runs()
for run in list_runs:
print(run.id)
A kísérletet kétféleképpen futtathatja. Ha interaktív módon kísérletezik egy Jupyter notebookban, használja a start_logging
függvényt. Ha standard Python-környezetből küld el egy kísérletet, használja a submit
függvényt. Mindkét függvény Run
objektumot ad vissza. Az alábbi kódpéldákban az experiment
változó egy Experiment
objektumot jelképez.
Futtatás
Névtér: azureml.core.run.Run
A futtatások egy-egy kísérletnek felelnek meg.
Run
az az objektum, amelyet a próba aszinkron végrehajtásának monitorozására, a próba kimenetének tárolására, az eredmények elemzésére és a létrehozott összetevők elérésére használ. A kísérleti kódban a Run
objektumot a metrikák és az összetevők naplózására használhatja a futtatási előzmények szolgáltatásba. Az elérhető funkciók:
- Metrikák és adatok tárolása és lekérdezése.
- Címkék és gyermekhierarchia használata a korábbi futtatások egyszerű kereséséhez.
- A tárolt modell fájljainak regisztrálása az üzembe helyezéshez.
- Futtatási tulajdonságok tárolása, módosítása és lekérdezése.
Hozzon létre egy Run
objektumot egy Experiment
objektum futtatási konfigurációs objektummal együtt való elküldésével. Használja a tags
paramétert egyéni kategóriák és címkék csatolásához a futtatásokhoz. A későbbiekben egyszerűen megkeresheti és lekérheti őket az Experiment
osztályból.
tags = {"prod": "phase-1-model-tests"}
run = experiment.submit(config=your_config_object, tags=tags)
Használja a statikus list
függvényt az Experiment
osztály összes Run
objektuma listájának lekéréséhez. Adja meg a tags
paramétert a korábban létrehozott címkék szűréséhez.
from azureml.core.run import Run
filtered_list_runs = Run.list(experiment, tags=tags)
Használja a get_details
függvényt a futtatás részletes kimenetének lekérdezéséhez.
run_details = run.get_details()
E függvény esetében a kimenet egy olyan könyvtár, amely a következőket tartalmazza:
- Futtatási azonosító
- Állapot
- Kezdési és befejezési időpont
- Számítási cél (helyi vagy felhőbeli)
- A futtatás során használt függőségek és verziók
- Képzésspecifikus adatok (a modell típusától függően eltérőek)
A futtatások konfigurálásával és monitorozásával kapcsolatban további példákat az útmutatóban talál.
Modellezés
Névtér: azureml.core.model.Model
A Model
osztály a gépi tanulási modellek felhőbeli megfelelőivel való munkavégzéshez használatos. Olyan metódusok, amelyek segítségével modelleket vihet át a helyi fejlesztői környezet és a felhőbeli Workspace
objektum között.
A modell regisztrálását követően a modelleket az Azure-felhőben tárolhatja és verziószámozhatja a saját munkaterületén. A regisztrált modelleket a név és a verziószám azonosítja. Ha egy modellt egy már létező néven regisztrál, a beállításjegyzék megnöveli annak verziószámát. Az Azure Machine Learning támogatja a Python 3-on keresztül betölthető modelleket, nem csak az Azure Machine Learning-modelleket.
Az alábbi példa bemutatja egy egyszerű helyi besorolási modell létrehozását scikit-learn
használatával, regisztrálja a modellt a Workspace
osztályban, és letölti a modellt a felhőből.
Hozzon létre egy egyszerű osztályozót (clf
) az ügyfél-lemorzsolódás kor alapján történő előrejelzéséhez. Ezután állítsa vissza a modellt a biztonsági másolatból egy .pkl
fájlba ugyanebben a könyvtárban.
from sklearn import svm
import joblib
import numpy as np
# customer ages
X_train = np.array([50, 17, 35, 23, 28, 40, 31, 29, 19, 62])
X_train = X_train.reshape(-1, 1)
# churn y/n
y_train = ["yes", "no", "no", "no", "yes", "yes", "yes", "no", "no", "yes"]
clf = svm.SVC(gamma=0.001, C=100.)
clf.fit(X_train, y_train)
joblib.dump(value=clf, filename="churn-model.pkl")
Regisztrálja a függvényt a munkaterületen a register
függvény használatával. Adja meg a modell helyi elérési útját és a modell nevét. Ha egynél többször regisztrálja ugyanazt a modellt, azzal egy új verziót fog létrehozni.
from azureml.core.model import Model
model = Model.register(workspace=ws, model_path="churn-model.pkl", model_name="churn-model-test")
Most, hogy regisztrálta a modellt a munkaterületen, egyszerűen kezelheti, töltheti le és rendszerezheti a modelleket. Ha a Workspace
munkaterületről szeretne lekérni egy modellobjektumot (amely például másik környezetben található), használja az osztálykonstruktort a modell nevének és az esetleges opcionális paraméterek megadásához. Ezután a download
függvénnyel töltse le a modellt, a felhőbeli mappastruktúrával együtt.
from azureml.core.model import Model
import os
model = Model(workspace=ws, name="churn-model-test")
model.download(target_dir=os.getcwd())
A delete
függvény használatával távolítsa el a modellt a Workspace
munkaterületről.
model.delete()
Most, hogy regisztrálta a modellt, annak webalkalmazásként való üzembe helyezése egyszerű folyamat. Először hozzon létre és regisztráljon egy rendszerképet. Ez a lépés konfigurálja a Python-környezetet és annak függőségeit, valamint egy szkriptet, amely meghatározza a webszolgáltatási kérések és válaszok formátumát. A rendszerkép létrehozása után hozzon létre egy üzembehelyezési konfigurációt, amely meghatározza a processzormagokat és a memóriaparamétereket a számítási cél esetében. Ezután csatolja a rendszerképet.
ComputeTarget, RunConfiguration és ScriptRunConfig
Névtér: azureml.core.compute.ComputeTarget
Névtér: azureml.core.runconfig.RunConfiguration
Névtér: azureml.core.script_run_config.ScriptRunConfig
A ComputeTarget
osztály a számítási célok létrehozásának és kezelésének absztrakt szülőosztálya. Számítási cél alatt különböző olyan erőforrásokat értünk, ahol gépi tanulási modelleket taníthat be. Számítási cél lehet egy helyi gép vagy felhőerőforrás, például az Azure Machine Learning Compute, az Azure HDInsight vagy egy távoli virtuális gép.
Számítási célok használatával kihasználhatja a virtuális gépek hatékonyságát a modellek betanítása terén, továbbá beállíthat állandó számítási célokat és ideiglenes, futtatókörnyezet által meghívott célokat is. A számítási célok beállításának és kezelésének átfogó ismertetését az útmutatóban találja.
Az alábbi kód egyszerű példát mutat egy AmlCompute
cél (a ComputeTarget
gyermekosztályának) beállítására. Ez a cél egy távoli, futásidejű számítási erőforrást hoz létre a Workspace
objektumban. Feladat elküldésekor az erőforrás automatikusan elvégzi a skálázást. A futtatás végeztével az erőforrás automatikusan törlődik.
Használja ismét az egyszerű scikit-learn
lemorzsolódási modellt, és buildelje azt a saját fájljába (train.py
) az aktuális könyvtárban. A fájl buildelését követően hozzon létre egy új könyvtárat outputs
néven. Ez a lépés létrehoz egy könyvtárat a felhőben (a munkaterületen) a joblib.dump()
által szerializált, betanított modell tárolásához.
# train.py
from sklearn import svm
import numpy as np
import joblib
import os
# customer ages
X_train = np.array([50, 17, 35, 23, 28, 40, 31, 29, 19, 62])
X_train = X_train.reshape(-1, 1)
# churn y/n
y_train = ["yes", "no", "no", "no", "yes", "yes", "yes", "no", "no", "yes"]
clf = svm.SVC(gamma=0.001, C=100.)
clf.fit(X_train, y_train)
os.makedirs("outputs", exist_ok=True)
joblib.dump(value=clf, filename="outputs/churn-model.pkl")
Ezután létrehoz a számítási célt egy RunConfiguration
objektum példányosításával, valamint a típus és a méret beállításával. Ez a példa a legkisebb erőforrásméretet (1 processzormag, 3,5 GB memória) használja. A list_vms
változó tartalmazza a támogatott virtuális gépek és azok méreteinek listáját.
from azureml.core.runconfig import RunConfiguration
from azureml.core.compute import AmlCompute
list_vms = AmlCompute.supported_vmsizes(workspace=ws)
compute_config = RunConfiguration()
compute_config.target = "amlcompute"
compute_config.amlcompute.vm_size = "STANDARD_D1_V2"
Hozza létre a távoli számítási erőforrás Python-környezetének függőségeit a CondaDependencies
osztály használatával. A train.py
fájl a scikit-learn
és a numpy
függvényeket használja, amelyeknek telepítve kell lenniük a környezetben. Lehetőség van függőségverziók megadására is. A dependencies
objektumot használja a környezet beállítására a compute_config
esetében.
from azureml.core.conda_dependencies import CondaDependencies
dependencies = CondaDependencies()
dependencies.add_pip_package("scikit-learn")
dependencies.add_pip_package("numpy==1.15.4")
compute_config.environment.python.conda_dependencies = dependencies
Most már készen áll a kísérlet elküldésére. A ScriptRunConfig
osztály használatával csatolja a számítási cél konfigurációját, és adja meg a train.py
betanítási szkripthez tartozó elérési útvonalat vagy fájlt. Küldje el a kísérletet a submit()
függvény config
paraméterének megadásával. Az eredményül kapott futtatás esetében hívja meg a wait_for_completion
függvényt az aszinkron futtatási kimenet megtekintéséhez, ha a környezet inicializálása és a modell betanítása megtörtént.
Figyelmeztetés
Az alábbiakban a paraméterekben ScriptRunConfig
használt konkrét karakterekre vonatkozó korlátozásokat ismertetjük:
- A
"
,$
,;
és\
karaktereket a háttér feloldja, mivel fenntartott karaktereknek minősülnek a Bash-parancsok elválasztására. - A
(
,)
,%
,!
,^
,<
>
,&
, és|
karakterek feloldódnak a windowsos helyi futtatásokhoz.
from azureml.core.experiment import Experiment
from azureml.core import ScriptRunConfig
script_run_config = ScriptRunConfig(source_directory=os.getcwd(), script="train.py", run_config=compute_config)
experiment = Experiment(workspace=ws, name="compute_target_test")
run = experiment.submit(config=script_run_config)
run.wait_for_completion(show_output=True)
A futtatás végeztével a betanított modellfájl (churn-model.pkl
) elérhető lesz a munkaterületen.
Környezet
Névtér: azureml.core.environment
Az Azure Machine Learning-környezetek meghatározzák a Python-csomagokat, a környezeti változókat és a szoftverbeállításokat a betanítási és pontozási szkriptek körül. A Python mellett a PySparkot, a Dockert és az R-t is konfigurálhatja környezetekhez. A környezetek belsőleg Docker-lemezképeket eredményeznek, amelyek a számítási cél betanítási és pontozási folyamatainak futtatására szolgálnak. A környezetek felügyelt és verziószámozott entitások a Machine Learning-munkaterületen belül, amelyek reprodukálható, naplózható és hordozható gépi tanulási munkafolyamatokat tesznek lehetővé különböző számítási célok és számítási típusok között.
Az objektumokat a következő objektumokhoz használhatja Environment
:
- A betanítási szkript fejlesztése.
- Használja újra ugyanazt a környezetet az Azure Machine Learning Compute-ben a nagy léptékű modellbetanításhoz.
- Helyezze üzembe a modellt ugyanazzal a környezettel anélkül, hogy egy adott számítási típushoz kötődik.
Az alábbi kód importálja az osztályt Environment
az SDK-ból, és létrehoz egy környezeti objektumot.
from azureml.core.environment import Environment
Environment(name="myenv")
Csomagok hozzáadása környezethez a Conda, a pip vagy a privát kerék fájlok használatával. Adja meg az egyes csomagfüggőségeket a CondaDependency
osztály használatával, hogy hozzáadja azt a környezethez PythonSection
.
Az alábbi példa hozzáadja a környezetet. Hozzáadja a 1.17.0-s verzióját.numpy
Emellett hozzáadja a csomagot a pillow
környezethez is. myenv
A példa a metódust add_conda_package()
és a add_pip_package()
metódust használja.
from azureml.core.environment import Environment
from azureml.core.conda_dependencies import CondaDependencies
myenv = Environment(name="myenv")
conda_dep = CondaDependencies()
# Installs numpy version 1.17.0 conda package
conda_dep.add_conda_package("numpy==1.17.0")
# Installs pillow package
conda_dep.add_pip_package("pillow")
# Adds dependencies to PythonSection of myenv
myenv.python.conda_dependencies=conda_dep
A betanítási futtatás elküldéséhez a környezetet, a számítási célt és a betanítási Python-szkriptet egy futtatási konfigurációban kell kombinálnia. Ez a konfiguráció egy burkolóobjektum, amely futtatások küldéséhez használható.
A betanítási futtatás elküldésekor egy új környezet kiépítése több percet is igénybe vehet. Az időtartam a szükséges függőségek méretétől függ. A környezeteket a szolgáltatás gyorsítótárazza. Tehát amíg a környezeti definíció változatlan marad, a teljes beállítási idő csak egyszer jelentkezik.
Az alábbi példa bemutatja, hol használná ScriptRunConfig
burkolóobjektumként.
from azureml.core import ScriptRunConfig, Experiment
from azureml.core.environment import Environment
exp = Experiment(name="myexp", workspace = ws)
# Instantiate environment
myenv = Environment(name="myenv")
# Add training script to run config
runconfig = ScriptRunConfig(source_directory=".", script="train.py")
# Attach compute target to run config
runconfig.run_config.target = "local"
# Attach environment to run config
runconfig.run_config.environment = myenv
# Submit run
run = exp.submit(runconfig)
Ha a futtatás elküldése előtt nem ad meg környezetet a futtatási konfigurációban, akkor a rendszer létrehoz egy alapértelmezett környezetet.
A környezetek webszolgáltatás üzembe helyezéséhez tekintse meg a Modell üzembe helyezése című szakaszt.
Pipeline, PythonScriptStep
Névtér: azureml.pipeline.core.pipeline.Pipeline
Névtér: azureml.pipeline.steps.python_script_step.PythonScriptStep
Az Azure Machine Learning-folyamat egy teljes gépi tanulási feladat automatizált munkafolyamata. Az alfeladatok lépések sorozataként vannak beágyazva a folyamatba. Az Azure Machine Learning-folyamat akár egyetlen lépésből is állhat, amely egy Python-szkriptet hív meg. A folyamatok funkciói:
- Adat-előkészítés, beleértve az importálást, az érvényesítést és a tisztítást, a kezelést és az átalakítást, a normalizálást és az előkészítést
- Betanítás konfigurálása, beleértve az argumentumok, a fájlok elérési útvonalai és a naplózási/jelentéskészítési konfigurációk paraméterezését
- Hatékony és ismételhető betanítás és érvényesítés, amely konkrét adatrészhalmazokat, különböző hardveres számítási erőforrásokat, elosztott feldolgozást és előrehaladás-monitorozást is magában foglalhat
- Üzembe helyezés, beleértve a verziószámozást, a méretezést, a kiépítést és a hozzáférés-vezérlést
- Folyamat közzététele REST-végponton bármely HTTP-könyvtárból való ismételt futtatáshoz
PythonScriptStep
: alapszintű, beépített lépés egy Python-szkript számítási célon való futtatásához. A szkript nevét és egyéb opcionális paramétereket (például a szkript, a számítási cél, a bemenetek és kimenetek argumentumait) használja. Az alábbi kód egyszerű példát mutat a PythonScriptStep
használatára. A train.py
szkript használatára példát az oktatóanyag alszakaszban talál.
from azureml.pipeline.steps import PythonScriptStep
train_step = PythonScriptStep(
script_name="train.py",
arguments=["--input", blob_input_data, "--output", output_data1],
inputs=[blob_input_data],
outputs=[output_data1],
compute_target=compute_target,
source_directory=project_folder
)
Legalább egy lépés létrehozása után a lépéseket összekapcsolhatja, és egyszerű, automatizált folyamatként teheti közzé.
from azureml.pipeline.core import Pipeline
pipeline = Pipeline(workspace=ws, steps=[train_step])
pipeline_run = experiment.submit(pipeline)
A folyamat-munkafolyamatok létrehozására átfogó példát a haladó szintű oktatóanyagban talál.
Minta folyamatok létrehozásához és használatához
Az Azure Machine Learning-folyamat egy Azure Machine Learning-munkaterülethez van társítva, és egy folyamatlépés az adott munkaterületen elérhető számítási célhoz van társítva. További információkért tekintse meg a munkaterületeket ismertető cikket, illetve a számítási célok itt szereplő ismertetését.
A folyamatlépések általános mintája:
- A munkaterület, a számítási és a tárolási erőforrás megadása
- A bemeneti és kimeneti adatok konfigurálása a következők használatával:
- Adatkészlet , amely elérhetővé tesz egy meglévő Azure-adattárat
- PipelineDataset, amely a típussal ellátott, táblázatos adatokat foglalja magában
- PipelineData, amely az egyik lépés által írt, majd egy másik által felhasználandó köztes fájlhoz vagy könyvtáradatokhoz használható
- Legalább egy folyamatlépés meghatározása
- Folyamat példányosítása a munkaterülettel és a lépésekkel
- Kísérlet létrehozása, amelybe elküldi a folyamatot
- A kísérlet eredményeinek monitorozása
Ez a jegyzet jó példát mutat be erre a mintára. feladat
Ebben a cikkben talál további információt az Azure Machine Learning-folyamatokkal, és különösen azzal kapcsolatban, hogy azok miben különböznek más folyamattípusoktól.
AutoMLConfig
Névtér: azureml.train.automl.automlconfig.AutoMLConfig
Az AutoMLConfig
osztály használatával az automatizált gépi tanulás betanítási paramétereit lehet konfigurálni. Az automatizált gépi tanulás gépi tanulási algoritmusok és hiperparaméter-beállítások számos kombinációját veszi számba. Ezután megkeresi a legalkalmasabb modellt a választott pontossági mutató alapján. A konfiguráció lehetővé teszi a következők megadását:
- Feladat típusa (besorolás, regresszió, előrejelzés)
- Az algoritmusiterációk száma és az egyes iterációk maximális időtartama
- Optimalizálandó pontossági mutató
- Algoritmusok a tiltólistára/engedélyezési listára
- Keresztvalidálások száma
- Számítási célok
- Betanítási adatok
Megjegyzés
Az automatizált gépi tanuláshoz használja a telepített példány automl
kiegészítőjét.
Az automatizált gépi tanulási kísérletek beállításával kapcsolatos részletes útmutatókat és példákat az oktatóanyagban és az útmutatóban talál.
Az alábbi kód bemutatja, hogyan hozhat létre automatizált gépi tanulási konfigurációs objektumot egy besorolási modellhez, és hogyan használhatja azt a kísérlet elküldésekor.
from azureml.train.automl import AutoMLConfig
automl_config = AutoMLConfig(task="classification",
X=your_training_features,
y=your_training_labels,
iterations=30,
iteration_timeout_minutes=5,
primary_metric="AUC_weighted",
n_cross_validations=5
)
A kísérlet elküldéséhez használja az automl_config
objektumot.
from azureml.core.experiment import Experiment
experiment = Experiment(ws, "automl_test_experiment")
run = experiment.submit(config=automl_config, show_output=True)
A kísérlet elküldése után a kimenet az egyes iterációk végső betanítási pontosságát jeleníti meg. A futtatás befejezése után a rendszer (a Run
osztályt kiterjesztő) AutoMLRun
objektumot ad vissza. A legalkalmasabb modell megkereséséhez használja a get_output()
függvényt, amely Model
objektumot ad vissza.
best_model = run.get_output()
y_predict = best_model.predict(X_test)
Modell üzembe helyezése
Névtér: azureml.core.model.InferenceConfig
Névtér: azureml.core.webservice.webservice.Webservice
Az InferenceConfig
osztály a modell és a webszolgáltatás üzemeltetéséhez szükséges környezetet leíró konfigurációs beállításokra szolgál.
A Webservice
egy absztrakt szülőosztály a modellek webszolgáltatásainak létrehozásához és üzembe helyezéséhez. A modell üzembe helyezésére és a webszolgáltatások üzembe helyezésére való felkészülésről szóló részletes útmutatóért tekintse meg ezt az útmutatót.
A környezeteket akkor használhatja, ha a modellt webszolgáltatásként helyezi üzembe. A környezetek lehetővé teszik a reprodukálható, csatlakoztatott munkafolyamatot, ahol a modellt ugyanazon kódtárak használatával helyezheti üzembe a betanítási számításban és a következtetési számításban is. A környezetek belsőleg Docker-rendszerképekként vannak implementálva. Használhatja a Microsoft által biztosított képeket, vagy használhatja saját egyéni Docker-rendszerképeit. Ha korábban az osztályt használta az ContainerImage
üzembe helyezéshez, tekintse meg az DockerSection
osztályt egy hasonló munkafolyamat környezetekkel való végrehajtásához.
Webszolgáltatás üzembe helyezéséhez kombinálja a környezetet, a számítási számítást, a pontozási szkriptet és a regisztrált modellt az üzembehelyezési objektumban( deploy()
).
Az alábbi példa feltételezi, hogy már végzett egy betanítási futtatáson a környezet használatával, myenv
és ezt a modellt szeretné üzembe helyezni Azure Container Instances.
from azureml.core.model import InferenceConfig, Model
from azureml.core.webservice import AciWebservice, Webservice
# Register the model to deploy
model = run.register_model(model_name = "mymodel", model_path = "outputs/model.pkl")
# Combine scoring script & environment in Inference configuration
inference_config = InferenceConfig(entry_script="score.py",
environment=myenv)
# Set deployment configuration
deployment_config = AciWebservice.deploy_configuration(cpu_cores = 1,
memory_gb = 1)
# Define the model, inference, & deployment configuration and web service name and location to deploy
service = Model.deploy(workspace = ws,
name = "my_web_service",
models = [model],
inference_config = inference_config,
deployment_config = deployment_config)
Ez a példa egy Azure Container Instances-webszolgáltatást hoz létre, amely kisebb léptékű teszteléshez és gyors üzembe helyezéshez ideális. A modell éles környezetben használható webszolgáltatásként történő üzembe helyezéshez használja az Azure Kubernetes Service (AKS) szolgáltatást. További információt az AksCompute osztályt ismertető cikkben talál.
Adathalmaz
Névtér: azureml.core.dataset.Dataset
Névtér: azureml.data.file_dataset.FileDataset
Névtér: azureml.data.tabular_dataset.TabularDataset
A Dataset
osztály alapvető fontosságú erőforrás az adatok áttekintéséhez és kezeléséhez az Azure Machine Learningben. Az adatokat összegző statisztika segítségével tekintheti át, az adathalmazt pedig az AML-munkaterületre mentheti a verziószámozási és megismételhetőségi képességek igénybevételéhez. A betanítás során a modellek egyszerűen felhasználhatják az adathalmazokat. Részletes használati példákért tekintse meg az útmutatót.
-
TabularDataset
egy fájl vagy fájllista elemzésével létrehozott táblázatos formátumban jeleníti meg az adatokat. - A
FileDataset
adathalmaz az adattárakban található vagy nyilvános URL-címeken elérhető egy vagy több fájlra hivatkozik.
Az alábbi példa bemutatja, hogyan hozható létre az adattár adott útvonalára mutató táblázatos adathalmaz.
from azureml.core import Dataset
dataset = Dataset.Tabular.from_delimited_files(path = [(datastore, 'train-dataset/tabular/iris.csv')])
dataset.take(3).to_pandas_dataframe()
Az alábbi példa bemutatja, hogyan hozhat létre FileDataset
hivatkozásokat több fájl URL-címére.
from azureml.core.dataset import Dataset
url_paths = [
'http://yann.lecun.com/exdb/mnist/train-images-idx3-ubyte.gz',
'http://yann.lecun.com/exdb/mnist/train-labels-idx1-ubyte.gz',
'http://yann.lecun.com/exdb/mnist/t10k-images-idx3-ubyte.gz',
'http://yann.lecun.com/exdb/mnist/t10k-labels-idx1-ubyte.gz'
]
dataset = Dataset.File.from_files(path=url_paths)
Következő lépések
Próbálkozzon ezekkel a további lépésekkel a Pythonhoz készült Azure Machine Learning SDK használatának megismeréséhez:
Kövesse az oktatóanyagot a modellek Pythonban történő létrehozásának, betanításának és üzembe helyezésének megismeréséhez.
A bal oldalon található tartalomjegyzéket használva keresse meg az osztályokat és modulokat a jelen webhelyen található referenciadokumentációban.