Python gépi tanulási szkriptek végrehajtása a Machine Learning Studióban (klasszikus)
HATÓKÖR: A 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.
- További információ a gépi tanulási projektek ML Studióból (klasszikus) Azure Machine Learningbe való áthelyezéséről.
- 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.
A Python értékes eszköz számos adatelemző eszközkészletében. A tipikus gépi tanulási munkafolyamatok minden szakaszában használják, beleértve az adatfeltárást, a jellemzők kinyerását, a modellek betanítását és ellenőrzését, valamint az üzembe helyezést.
Ez a cikk azt ismerteti, hogyan használhatja a Python-szkript végrehajtása modult Python-kód használatára a Machine Learning Studio (klasszikus) kísérleteiben és webszolgáltatásaiban.
A Python-szkript végrehajtása modul használata
A Python in Studio (klasszikus) elsődleges felülete a Python-szkript végrehajtása modulon keresztül érhető el. Legfeljebb három bemenetet fogad el, és legfeljebb két kimenetet állít elő, az R-szkript végrehajtása modulhoz hasonlóan. A Python-kód egy speciálisan elnevezett belépésipont-függvényen azureml_main
keresztül kerül be a paramétermezőbe.
Bemeneti paraméterek
A Python-modul bemenetei Pandas DataFrame-ként érhetők el. A azureml_main
függvény legfeljebb két opcionális Pandas DataFrame-et fogad el paraméterként.
A bemeneti portok és a függvényparaméterek közötti leképezés pozíció:
- Az első csatlakoztatott bemeneti port a függvény első paraméterére van leképezve.
- A második bemenet (ha csatlakoztatva van) a függvény második paraméterére van leképezve.
- A harmadik bemenet további Python-modulok importálására szolgál.
Az alábbiakban részletesebb szemantika látható arról, hogy a bemeneti portok hogyan vannak leképezve a azureml_main
függvény paramétereire.
Kimeneti visszatérési értékek
A azureml_main
függvénynek egyetlen, Python-sorozatba csomagolt Pandas DataFrame-et kell visszaadnia, például rekordot, listát vagy NumPy-tömböt. A sorozat első eleme visszakerül a modul első kimeneti portjára. A modul második kimeneti portja vizualizációkhoz használatos, és nem igényel visszatérési értéket. Ez a séma alább látható.
Bemeneti és kimeneti adattípusok fordítása
A Studio-adathalmazok nem ugyanazok, mint a Panda DataFrame-ek. Ennek eredményeképpen a (klasszikus) Studio bemeneti adathalmazai Pandas DataFrame-ké lesznek konvertálva, a kimeneti DataFrame-ek pedig vissza lesznek konvertálva Studio (klasszikus) adatkészletekké. A konvertálási folyamat során a következő fordítások is el lesznek végezve:
Python-adattípus | A Studio fordítási eljárása |
---|---|
Sztringek és numerikus értékek | Lefordítva a következőképpen |
Pandas "NA" | Lefordítva a "Hiányzó érték" kifejezésre |
Indexvektorok | Nem támogatott* |
Nem sztring típusú oszlopnevek | Oszlopnevek meghívása str |
Ismétlődő oszlopnevek | Adjon hozzá numerikus utótagot: (1), (2), (3) és így tovább. |
*A Python-függvény összes bemeneti adatkerete mindig 64 bites numerikus indexet ad 0-tól a sorok számának mínusz 1-hez
Meglévő Python-szkriptmodulok importálása
A Python végrehajtásához használt háttérrendszer az Anacondán, egy széles körben használt tudományos Python-disztribúción alapul. Az adatközpontú számítási feladatokban használt leggyakoribb Python-csomagok közel 200-ból állnak. A Studio (klasszikus) jelenleg nem támogatja olyan csomagkezelő rendszerek használatát, mint a Pip vagy a Conda külső kódtárak telepítéséhez és kezeléséhez. Ha további kódtárak beépítésére van szükség, használja az alábbi forgatókönyvet útmutatóként.
Gyakori használati eset a meglévő Python-szkriptek studioi (klasszikus) kísérletekbe való beépítése. A Python-szkript végrehajtása modul egy Python-modulokat tartalmazó zip-fájlt fogad el a harmadik bemeneti porton. A fájlt futásidőben a végrehajtási keretrendszer bontja ki, és a tartalom bekerül a Python-értelmező könyvtárelérési útvonalára. A azureml_main
belépési pont függvény ezután közvetlenül importálhatja ezeket a modulokat.
Vegyük példaként azt a fájlt, Hello.py tartalmaz egy egyszerű "Hello, World" függvényt.
Ezután létrehozunk egy Hello.py tartalmazó fájlt Hello.zip:
Töltse fel a zip-fájlt adatkészletként a Studióba (klasszikus). Ezután hozzon létre és futtasson egy kísérletet, amely a Python-kódot használja a Hello.zip fájlban. Ehhez csatolja azt a Python-szkript végrehajtása modul harmadik bemeneti portjához az alábbi képen látható módon.
A modul kimenete azt mutatja, hogy a zip-fájl ki van csomagolva, és a függvény print_hello
le lett futtatva.
Azure Storage-blobok elérése
Az Azure Blob Storage-fiókban tárolt adatokat az alábbi lépésekkel érheti el:
- Töltse le helyileg a Pythonhoz készült Azure Blob Storage csomagot.
- Töltse fel a zip-fájlt a Studio (klasszikus) munkaterületére adathalmazként.
- BlobService-objektum létrehozása a következővel:
protocol='http'
from azure.storage.blob import BlockBlobService
# Create the BlockBlockService that is used to call the Blob service for the storage account
block_blob_service = BlockBlobService(account_name='account_name', account_key='account_key', protocol='http')
- Tiltsa le a biztonságos átvitelre van szükség a Storage Configuration beállítási lapján
Python-szkriptek üzembe helyezése
A pontozási kísérletben használt Összes Python-szkript végrehajtása modult meghívja a rendszer, ha webszolgáltatásként teszi közzé. Az alábbi képen például egy pontozási kísérlet látható, amely egyetlen Python-kifejezés kiértékelésére szolgáló kódot tartalmaz.
A kísérletből létrehozott webszolgáltatás a következő műveleteket hajtaná végre:
- Python-kifejezés használata bemenetként (sztringként)
- A Python-kifejezés elküldése a Python-értelmezőnek
- Egy olyan táblát ad vissza, amely a kifejezést és a kiértékelt eredményt is tartalmazza.
Vizualizációk használata
A MatplotLib használatával létrehozott rajzokat a Python-szkript végrehajtása adja vissza. A diagramok azonban nem lesznek automatikusan átirányítva a képekre az R használatakor. Ezért a felhasználónak explicit módon mentenie kell a rajzokat PNG-fájlokba.
A MatplotLib rendszerképeinek létrehozásához a következő lépéseket kell végrehajtania:
- Állítsa a háttérrendszert "AGG" értékre az alapértelmezett Qt-alapú renderelőről.
- Hozzon létre egy új ábraobjektumot.
- Kérje le a tengelyt, és hozza létre az összes diagramot.
- Mentse az ábrát egy PNG-fájlba.
Ezt a folyamatot az alábbi képek szemléltetik, amelyek pontdiagram-mátrixot hoznak létre a Pandas scatter_matrix függvényével.
Több adatot is visszaadhat, ha különböző képekre menti őket. A Studio (klasszikus) futtatókörnyezete felveszi az összes képet, és összefűzi őket a vizualizációhoz.
Speciális példák
A (klasszikus) Studióban telepített Anaconda-környezet olyan gyakori csomagokat tartalmaz, mint a NumPy, a SciPy és a Scikits-Learn. Ezek a csomagok hatékonyan használhatók adatfeldolgozásra egy gépi tanulási folyamatban.
Az alábbi kísérlet és szkript például azt mutatja be, hogyan használhatók az együttes tanulók az Scikits-Learn-ban az adathalmaz jellemző-fontossági pontszámainak kiszámításához. A pontszámokkal felügyelt funkciók kiválasztását végezheti el, mielőtt egy másik modellbe lenne betáplálva.
Íme a Python-függvény, amellyel kiszámíthatja a fontossági pontszámokat, és a pontszámok alapján rendezheti a funkciókat:
A következő kísérlet ezután kiszámítja és visszaadja a Machine Learning Studio "Pima Indian Diabetes" adatkészletének (klasszikus) funkcióinak fontossági pontszámait:
Korlátozások
A Python-szkript végrehajtása modul jelenleg az alábbi korlátozásokkal rendelkezik:
Védőfalas végrehajtás
A Python-futtatókörnyezet jelenleg védőfalas, és nem engedélyezi a hálózathoz vagy a helyi fájlrendszerhez való állandó hozzáférést. A modul befejezése után a helyileg mentett összes fájl el lesz különítve és törölve. A Python-kód nem fér hozzá a legtöbb könyvtárhoz azon a gépen, amelyen fut, a kivétel az aktuális könyvtár és annak alkönyvtárai.
Kifinomult fejlesztési és hibakeresési támogatás hiánya
A Python-modul jelenleg nem támogatja az OLYAN IDE-funkciókat, mint az intellisense és a hibakeresés. Ha a modul futásidőben meghiúsul, a teljes Python-híváslánc elérhető. Ezt azonban meg kell tekinteni a modul kimeneti naplójában. Jelenleg azt javasoljuk, hogy Python-szkripteket fejlesszen és hibakeresést hajtson létre egy olyan környezetben, mint az IPython, majd importálja a kódot a modulba.
Egyetlen adatkeret kimenete
A Python belépési pontja csak egyetlen adatkeretet ad vissza kimenetként. Jelenleg nem lehet tetszőleges Python-objektumokat, például betanított modelleket közvetlenül visszaküldeni a Studio (klasszikus) futtatókörnyezetbe. Az azonos korlátozásokkal rendelkező R-szkript végrehajtásához hasonlóan sok esetben lehetőség van objektumok bájttömbbe való beolvasására, majd az adatkereten belüli visszaadására.
Nem lehet testre szabni a Python telepítését
Jelenleg az egyéni Python-modulok hozzáadásának egyetlen módja a korábban ismertetett zip-fájl mechanizmus. Bár ez kis modulok esetében kivitelezhető, nagy modulok (különösen natív DLL-ekkel rendelkező modulok) vagy nagy számú modul esetén nehézkes.
Következő lépések
További információ: Python fejlesztői központ.