Python-gépi tanulási szkriptek végrehajtása a Machine Learning Studióban (klasszikus)
ÉRVÉNYES: 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.
A Python értékes eszköz számos adattudós eszközládában. A tipikus gépi tanulási munkafolyamatok minden szakaszában használják, beleértve az adatfeltárást, a funkciókinyeréseket, a modell betanítását és érvényesíté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 Studióban (klasszikus) kísérletekben és webszolgáltatásokban.
A Python-szkript végrehajtása modul használata
A Python elsődleges felülete a Studióban (klasszikus) a Python-szkript végrehajtása modulon keresztül történik. Legfeljebb három bemenetet fogad el, és legfeljebb két kimenetet hoz létre, hasonlóan az Execute R Script modulhoz. A Python-kód egy speciálisan elnevezett belépési pont 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 jelennek meg. A azureml_main
függvény legfeljebb két opcionális Pandas DataFrame-et fogad el paraméterekké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éhez van leképezve.
- A második bemenet (ha csatlakoztatva van) a függvény második paraméteréhez van leképezve.
- A harmadik bemenet további Python-modulok importálására szolgál.
Az alábbiakban részletesebb szemantikát láthat arról, hogyan képezik le a bemeneti portokat a azureml_main
függvény paramétereire.
Kimeneti visszatérési értékek
A azureml_main
függvénynek egy Python-sorozatba csomagolt Pandas DataFrame-et kell visszaadnia, például egy rekordot, listát vagy NumPy-tömböt. A sorozat első eleme a modul első kimeneti portjára kerül vissza. 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 azonosak a Panda DataFrame-ekkel. Ennek eredményeképpen a Studio (klasszikus) bemeneti adatkészletei Pandas DataFrame-ké alakulnak, a kimeneti DataFrame-ek pedig a Studio (klasszikus) adatkészletekké lesznek konvertálva. Az átalakítás során a következő fordításokat is végrehajtja a rendszer:
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 hiányzó értékként |
Indexvektorok | 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ához mínusz 1
Meglévő Python-szkriptmodulok importálása
A Python végrehajtásához használt háttérrendszer az Anacondán alapul, amely egy széles körben használt tudományos Python-disztribúció. Az adatcentrikus számítási feladatokban használt leggyakoribb Python-csomagok közül közel 200 tartozik hozzá. A Studio (klasszikus) jelenleg nem támogatja az 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, hogy meglévő Python-szkripteket építünk be a Studio (klasszikus) kísérletekbe. A Python-szkript végrehajtása modul egy Python-modulokat tartalmazó zip-fájlt fogad el a harmadik bemeneti porton. A fájlt futtatókörnyezetben a végrehajtási keretrendszer kibontja, és a tartalom hozzáadódik a Python-értelmező kódtár elérési útjához. A azureml_main
belépési pont függvény ezután közvetlenül importálhatja ezeket a modulokat.
Vegyük például azt a fájlt Hello.py, amely egy egyszerű "Hello, World" függvényt tartalmaz.
Ezután létrehozunk egy Hello.zip, amely Hello.py tartalmaz:
Töltse fel a zip-fájlt adathalmazké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 a Python-szkript végrehajtása modul harmadik bemeneti portjához csatolva az alábbi képen látható módon.
A modul kimenete azt mutatja, hogy a zip-fájl ki van csomagolva, és hogy a függvény print_hello
fut.
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ületre adathalmazként.
- BlobService-objektum létrehozása
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')
- A Tárolókonfiguráció beállítása lapon kötelező biztonságos átvitel letiltása
Python-szkriptek üzembe helyezése
A pontozási kísérletben használt Összes Python-szkriptmodul meghívása webszolgáltatásként való közzétételkor történik. 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 hajtja végre:
- Python-kifejezés bevitele (sztringként)
- A Python-kifejezés elküldése a Python-értelmezőnek
- Egy 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 diagramokat 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 kifejezetten pNG-fájlokba kell mentenie a rajzokat.
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ú megjelenítő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 vissza lehet adni úgy, hogy különböző képekre menti őket. A Studio (klasszikus) futtatókörnyezet felveszi az összes képet, és összefűzi őket a vizualizációhoz.
Haladó példák
A Studióban (klasszikus) 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 a gépi tanulási folyamatok adatfeldolgozásához.
Az alábbi kísérlet és szkript például az együttes tanulók Scikits-Learnben való használatát mutatja be az adathalmazok funkció-fontossági pontszámainak kiszámításához. A pontszámok felhasználhatók felügyelt funkciók kiválasztására, mielőtt egy másik modellbe kerülnek.
Az alábbiakban a fontossági pontszámok kiszámításához és a funkciók sorrendjének a pontszámok alapján történő rendezéséhez használt Python-függvényt használjuk:
Az alábbi kísérlet ezután kiszámítja és visszaadja a Machine Learning Studio "Pima Indian Diabetes" adatkészletének funkcióinak fontossági pontszámait (klasszikus):
Korlátozások
A Python-szkript végrehajtása modul jelenleg a következő korlátozásokkal rendelkezik:
Tesztkörnyezetben végrehajtott végrehajtás
A Python-futtatókörnyezet jelenleg tesztkörnyezettel rendelkezik, és nem teszi lehetővé a hálózathoz vagy a helyi fájlrendszerhez való állandó hozzáférést. A modul befejeződé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.
A 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-veremkövetés elérhető. Ezt azonban meg kell tekinteni a modul kimeneti naplójában. Jelenleg azt javasoljuk, hogy Python-szkripteket fejlesszen ki és hibakeresést végezze el 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 R-szkript végrehajtásához hasonlóan, amely ugyanazzal a korlátozással rendelkezik, sok esetben előfordulhat, hogy objektumok egy bájttömbbe kerülnek, majd visszaadják az adatkereten belül.
Nem lehet testre szabni a Python-telepítést
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 megvalósítható, nehézkes a nagy modulok (különösen natív DLL-ekkel rendelkező modulok) vagy nagy számú modul esetében.
Következő lépések
További információ: Python fejlesztői központban.