Megosztás a következőn keresztül:


Python-gépi tanulási szkriptek végrehajtása a Machine Learning Studióban (klasszikus)

ÉRVÉNYES: A következőkre vonatkozik.Machine Learning Studio (klasszikus) Nem vonatkozik gombra.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 (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_mainkeresztül kerül be a paramétermezőbe.

Python-szkript modul végrehajtása

Python-mintakód a modulparaméter-mezőben

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.

A bemeneti port konfigurációinak és az eredményként kapott Python-aláírásnak a táblázata

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 portok leképezése paraméterekhez és érték visszaadása kimeneti portra

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.

Felhasználó által definiált függvény Hello.py fájlban

Ezután létrehozunk egy Hello.zip, amely Hello.py tartalmaz:

Felhasználó által definiált Python-kódot tartalmazó ZIP-fájl

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.

Mintakísérlet Hello.zip egy Python-szkript végrehajtása modul bemeneteként

Felhasználó által definiált Python-kód zip-fájlként feltöltve

A modul kimenete azt mutatja, hogy a zip-fájl ki van csomagolva, és hogy a függvény print_hello fut.

A felhasználó által definiált függvényt megjelenítő modulkimenet

Azure Storage-blobok elérése

Az Azure Blob Storage-fiókban tárolt adatokat az alábbi lépésekkel érheti el:

  1. Töltse le helyileg a Pythonhoz készült Azure Blob Storage-csomagot.
  2. Töltse fel a zip-fájlt a Studio (klasszikus) munkaterületre adathalmazként.
  3. 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')
  1. A Tárolókonfiguráció beállítása lapon kötelező biztonságos átvitel letiltása

Az Azure Portalon szükséges 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.

Studio-munkaterület webszolgáltatáshoz

Python Pandas-kifejezés

A kísérletből létrehozott webszolgáltatás a következő műveleteket hajtja végre:

  1. Python-kifejezés bevitele (sztringként)
  2. A Python-kifejezés elküldése a Python-értelmezőnek
  3. 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:

  1. Állítsa a háttérrendszert "AGG" értékre az alapértelmezett Qt-alapú megjelenítőről.
  2. Hozzon létre egy új ábraobjektumot.
  3. Kérje le a tengelyt, és hozza létre az összes diagramot.
  4. 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.

MatplotLib-ábrák képekre mentéséhez használható kód

Kattintson a Vizualizáció parancsra egy Python-szkript végrehajtása modulon az ábrák megtekintéséhez

Mintakísérletek ábrázolása Python-kóddal

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:

Funkciók rangsorolása pontszámok szerint

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):

Kísérlet a Pima Indian Diabetes-adathalmaz funkcióinak rangsorolására Python használatával

A Python-szkript végrehajtása modul kimenetének vizualizációja

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.