Spouštění skriptů strojového učení Pythonu v nástroji Machine Learning Studio (classic)
PLATÍ PRO: Machine Learning Studio (Classic)
Azure Machine Learning
Důležité
Podpora studia Machine Learning (Classic) skončí 31. srpna 2024. Doporučujeme do tohoto data přejít na službu Azure Machine Learning.
Od 1. prosince 2021 nebude možné vytvářet nové prostředky studia Machine Learning (Classic). Do 31. srpna 2024 můžete pokračovat v používání stávajících prostředků studia Machine Learning (Classic).
- Přečtěte si informace o přesunu projektů strojového učení ze sady ML Studio (classic) do služby Azure Machine Learning.
- Další informace o službě Azure Machine Learning
Dokumentace ke studiu ML (Classic) se vyřazuje z provozu a v budoucnu se nemusí aktualizovat.
Python je cenný nástroj v hrudi nástrojů mnoha datových vědců. Používá se v každé fázi typických pracovních postupů strojového učení, včetně zkoumání dat, extrakce funkcí, trénování a ověřování modelů a nasazení.
Tento článek popisuje, jak můžete pomocí modulu Execute Python Script použít kód Pythonu v experimentech a webových službách Machine Learning Studio (klasické).
Použití modulu Execute Python Script
Primární rozhraní pythonu v sadě Studio (classic) je prostřednictvím modulu Execute Python Script . Přijímá až tři vstupy a vytváří až dva výstupy, podobně jako modul Execute R Script . Kód Pythonu se do pole parametru zadává prostřednictvím speciálně pojmenované vstupní funkce s názvem azureml_main
.
Vstupní parametry
Vstupy do modulu Python jsou zpřístupněny jako datové rámce Pandas. Funkce azureml_main
přijímá jako parametry až dva volitelné datové rámce Pandas.
Mapování vstupních portů a parametrů funkce je poziční:
- První připojený vstupní port je namapován na první parametr funkce.
- Druhý vstup (pokud je připojen) je namapován na druhý parametr funkce.
- Třetí vstup se používá k importu dalších modulů Pythonu.
Podrobnější sémantiku toho, jak se vstupní porty mapují na parametry azureml_main
funkce, jsou uvedeny níže.
Výstupní návratové hodnoty
Funkce azureml_main
musí vrátit jeden datový rámec Pandas zabalený v sekvenci Pythonu, jako je například řazená kolekce členů, seznam nebo pole NumPy. První prvek této sekvence se vrátí na první výstupní port modulu. Druhý výstupní port modulu se používá pro vizualizace a nevyžaduje návratovou hodnotu. Toto schéma je znázorněno níže.
Překlad vstupních a výstupních datových typů
Datové sady sady Studio nejsou stejné jako datové rámce Panda. V důsledku toho se vstupní datové sady v sadě Studio (Classic) převedou na datový rámec Pandas a výstupní datové rámce se převedou zpět na datové sady Studio (klasické). Během tohoto procesu převodu se také provádějí následující překlady:
Datový typ Pythonu | Postup překladu sady Studio |
---|---|
Řetězce a číselné hodnoty | Přeloženo tak, jak je |
Pandas NA | Přeloženo jako Chybějící hodnota |
Vektory indexu | Nepodporovaný* |
Názvy sloupců bez řetězce | Volání str názvů sloupců |
Duplicitní názvy sloupců | Přidejte číselnou příponu: (1), (2), (3) atd. |
*Všechny vstupní datové rámce ve funkci Pythonu mají vždy 64bitový číselný index od 0 do počtu řádků minus 1.
Import existujících modulů skriptů Pythonu
Back-end používaný ke spuštění Pythonu je založený na Anacondě, široce používané vědecké distribuci Pythonu. Součástí je téměř 200 nejběžnějších balíčků Pythonu používaných v úlohách orientovaných na data. Studio (classic) v současné době nepodporuje použití systémů pro správu balíčků, jako je Pip nebo Conda k instalaci a správě externích knihoven. Pokud zjistíte, že potřebujete začlenit další knihovny, použijte jako vodítko následující scénář.
Běžným případem použití je začlenění existujících skriptů Pythonu do experimentů v sadě Studio (klasické). Modul Execute Python Script přijímá soubor ZIP obsahující moduly Pythonu na třetím vstupním portu. Soubor se rozbalí architekturou spouštění za běhu a obsah se přidá do cesty knihovny interpretu Pythonu. Funkce vstupního azureml_main
bodu pak může tyto moduly importovat přímo.
Představte si například soubor Hello.py obsahující jednoduchou funkci "Hello, World".
Dále vytvoříme soubor Hello.zip, který obsahuje Hello.py:
Nahrajte soubor ZIP jako datovou sadu do studia (Classic). Pak vytvořte a spusťte experiment, který používá kód Pythonu v souboru Hello.zip tak, že ho připojíte ke třetímu vstupnímu portu modulu Execute Python Script , jak je znázorněno na následujícím obrázku.
Výstup modulu ukazuje, že soubor ZIP byl rozbalen a že funkce print_hello
byla spuštěna.
Přístup k objektům blob služby Azure Storage
K datům uloženým v účtu služby Azure Blob Storage můžete přistupovat pomocí následujícího postupu:
- Stáhněte balíček Azure Blob Storage pro Python místně.
- Nahrajte soubor ZIP do pracovního prostoru studia (Classic) jako datovou sadu.
- Vytvoření objektu BlobService pomocí
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')
- Zakázání zabezpečeného přenosu požadovaného na kartě Nastavení konfigurace úložiště
Zprovoznění skriptů Pythonu
Všechny moduly execute Python Script použité v hodnoticího experimentu se volají při publikování jako webová služba. Následující obrázek například ukazuje hodnoticí experiment, který obsahuje kód pro vyhodnocení jednoho výrazu Pythonu.
Webová služba vytvořená z tohoto experimentu by řídila následující akce:
- Převzetí výrazu Pythonu jako vstupu (jako řetězce)
- Odeslání výrazu Pythonu do interpretu Pythonu
- Vrátí tabulku obsahující výraz i vyhodnocený výsledek.
Práce s vizualizacemi
Grafy vytvořené pomocí knihovny MatplotLib mohou být vráceny skriptem Execute Python. Grafy se ale při použití jazyka R automaticky nepřesměrují na obrázky. Takže uživatel musí explicitně uložit všechny grafy do souborů PNG.
Pokud chcete vygenerovat image z knihovny MatplotLib, musíte provést následující kroky:
- Přepněte back-end na "AGG" z výchozího rendereru založeného na Qt.
- Vytvořte nový objekt obrázku.
- Získejte osu a vygenerujte do ní všechny grafy.
- Uložte obrázek do souboru PNG.
Tento proces je znázorněn na následujících obrázcích, které pomocí funkce scatter_matrix v Pandas vytvoří bodovou matici.
Více obrázků je možné vrátit tak, že je uložíte do různých obrázků. Modul runtime Studia (Classic) vybere všechny obrázky a zřetězí je pro vizualizaci.
Pokročilé příklady
Prostředí Anaconda nainstalované v sadě Studio (classic) obsahuje běžné balíčky, jako jsou NumPy, SciPy a Scikits-Learn. Tyto balíčky lze efektivně použít ke zpracování dat v kanálu strojového učení.
Například následující experiment a skript ilustrují použití skupinových učení v Scikits-Learn k výpočtu skóre důležitosti funkcí pro datovou sadu. Skóre je možné použít k provedení výběru funkcí pod dohledem před tím, než se před jejich odesláním do jiného modelu.
Tady je funkce Pythonu, která se používá k výpočtu skóre důležitosti a pořadí funkcí na základě skóre:
Následující experiment pak vypočítá a vrátí skóre důležitosti funkcí v datové sadě Pima Indian Diabetes v nástroji Machine Learning Studio (klasické):
Omezení
Modul Execute Python Script v současné době má následující omezení:
Spouštění v izolovaném prostoru (sandbox)
Modul runtime Pythonu je aktuálně v izolovaném prostoru (sandbox) a trvale neumožňuje přístup k síti nebo místnímu systému souborů. Všechny soubory uložené místně jsou izolované a po dokončení modulu se odstraní. Kód Pythonu nemá přístup k většině adresářů na počítači, na kterém běží, a výjimku tvoří aktuální adresář a jeho podadresáře.
Nedostatek sofistikované podpory vývoje a ladění
Modul Python v současné době nepodporuje funkce IDE, jako je intellisense a ladění. Pokud modul selže za běhu, je k dispozici úplné trasování zásobníku Pythonu. Musí se ale zobrazit ve výstupním protokolu modulu. V současné době doporučujeme vyvíjet a ladit skripty Pythonu v prostředí, jako je IPython, a pak kód importovat do modulu.
Výstup s jedním datovým rámcem
Vstupní bod Pythonu je povolen pouze k vrácení jednoho datového rámce jako výstupu. V současné době není možné vracet libovolné objekty Pythonu, jako jsou natrénované modely přímo zpět do modulu runtime Studio (Classic). Stejně jako execute R Script, který má stejné omezení, je možné v mnoha případech vybrat objekty do pole bajtů a pak vrátit uvnitř datového rámce.
Nemožnost přizpůsobit instalaci Pythonu
V současné době je jediným způsobem, jak přidat vlastní moduly Pythonu, prostřednictvím mechanismu souboru ZIP popsaného výše. I když je to možné pro malé moduly, je náročné pro velké moduly (zejména moduly s nativními knihovny DLL) nebo velký počet modulů.
Další kroky
Další informace naleznete ve Středisku pro vývojáře Python.