Řešení potíží s experimenty automatizovaného strojového učení v Pythonu
PLATÍ PRO: Python SDK azureml v1
V této příručce se dozvíte, jak identifikovat a vyřešit známé problémy v experimentech automatizovaného strojového učení pomocí sady Azure Machine Learning SDK.
Závislosti verzí
AutoML
závislosti na novějších verzích balíčků přeruší kompatibilitu. Po sadě SDK verze 1.13.0 se modely nenačtou ve starších sadách SDK kvůli nekompatibilitě mezi staršími verzemi připnutými v předchozích AutoML
balíčcích a novějšími verzemi připnutými dnes.
Očekávejte chyby, například:
Modul nenalezl chyby, například
No module named 'sklearn.decomposition._truncated_svd'
Chyby importu, například
ImportError: cannot import name 'RollingOriginValidator'
,Chyby atributů, jako jsou například
AttributeError: 'SimpleImputer' object has no attribute 'add_indicator'
Řešení závisí na vaší AutoML
trénovací verzi sady SDK:
Pokud je
AutoML
vaše trénovací verze sady SDK větší než 1.13.0, potřebujetepandas == 0.25.1
ascikit-learn==0.22.1
.Pokud dojde k neshodě verzí, upgradujte sadu scikit-learn nebo pandas na správnou verzi následujícím postupem:
pip install --upgrade pandas==0.25.1 pip install --upgrade scikit-learn==0.22.1
Pokud je
AutoML
vaše trénovací verze sady SDK menší nebo rovna 1.12.0, potřebujetepandas == 0.23.4
asckit-learn==0.20.3
.Pokud dojde k neshodě verzí, downgrade scikit-learn a/nebo pandas opraví verzi následujícím postupem:
pip install --upgrade pandas==0.23.4 pip install --upgrade scikit-learn==0.20.3
Nastavení
AutoML
Změny balíčků od verze 1.0.76 vyžadují, aby byla před aktualizací na novou verzi odinstalována předchozí verze.
ImportError: cannot import name AutoMLConfig
Pokud dojde k této chybě po upgradu ze sady SDK verze před v1.0.76 na verzi 1.0.76 nebo novější, vyřešte chybu spuštěním příkazu:
pip uninstall azureml-train automl
a pakpip install azureml-train-automl
. Skript automl_setup.cmd to provede automaticky.automl_setup selže
Ve Windows spusťte automl_setup z výzvy Anaconda. Nainstalujte Miniconda.
Ujistěte se, že je nainstalovaná 64bitová verze conda 4.4.10 nebo novější. Bit můžete zkontrolovat pomocí
conda info
příkazu. Mělplatform
by býtwin-64
pro Windows neboosx-64
pro Mac. Ke kontrole verze použijte příkazconda -V
. Pokud máte nainstalovanou předchozí verzi, můžete ji aktualizovat pomocí příkazu:conda update conda
. Kontrola 32bitové verze spuštěnímUjistěte se, že je nainstalovaný conda.
Linux –
gcc: error trying to exec 'cc1plus'
Pokud dojde k
gcc: error trying to exec 'cc1plus': execvp: No such file or directory
chybě, nainstalujte nástroje sestavení GCC pro vaši distribuci Linuxu. Například na Ubuntu použijte příkazsudo apt-get install build-essential
.Jako první parametr předejte nový název, který automl_setup pro vytvoření nového prostředí Conda. Zobrazte existující prostředí Conda pomocí
conda env list
a odeberte je pomocíconda env remove -n <environmentname>
.
automl_setup_linux.sh selže: Pokud automl_setup_linus.sh selže v Ubuntu Linuxu s chybou:
unable to execute 'gcc': No such file or directory
- Ujistěte se, že jsou povolené odchozí porty 53 a 80. Na virtuálním počítači Azure to můžete udělat na webu Azure Portal tak, že vyberete virtuální počítač a kliknete na Sítě.
- Spusťte příkaz:
sudo apt-get update
- Spusťte příkaz:
sudo apt-get install build-essential --fix-missing
- Spustit
automl_setup_linux.sh
znovu
Configuration.ipynb selže:
- V případě místního conda nejprve ověřte, že
automl_setup
se úspěšně spustilo. - Ujistěte se, že je subscription_id správná. Na webu Azure Portal vyhledejte subscription_id tak, že vyberete Všechny služby a potom Předplatná. Znaky "<" a ">" by neměly být zahrnuty do hodnoty subscription_id. Má například
subscription_id = "12345678-90ab-1234-5678-1234567890abcd"
platný formát. - Zajistěte přístup přispěvatele nebo vlastníka k předplatnému.
- Zkontrolujte, jestli je oblast jednou z podporovaných oblastí:
eastus2
,eastus
,westcentralus
,southeastasia
,westeurope
,australiaeast
, , ,westus2
.southcentralus
. - Pomocí webu Azure Portal se ujistěte, že k této oblasti přistupujete.
- V případě místního conda nejprve ověřte, že
workspace.from_config selže:
Pokud volání
ws = Workspace.from_config()
selže:- Ujistěte se, že se poznámkový blok configuration.ipynb úspěšně spustil.
- Pokud se poznámkový blok spouští ze složky, která není ve složce, ve
configuration.ipynb
které byla spuštěna, zkopírujte složku aml_config a soubor, config.json, který obsahuje, do nové složky. Workspace.from_config přečte config.json složky poznámkového bloku nebo její nadřazené složky. - Pokud se používá nové předplatné, skupina prostředků, pracovní prostor nebo oblast, ujistěte se, že poznámkový
configuration.ipynb
blok spustíte znovu. Změna config.json bude fungovat jenom v případě, že pracovní prostor již v zadané skupině prostředků v zadaném předplatném existuje. - Pokud chcete změnit oblast, změňte pracovní prostor, skupinu prostředků nebo předplatné.
Workspace.create
nevytvoří ani neaktualizuje pracovní prostor, pokud již existuje, i když je zadaná oblast odlišná.
TensorFlow
Od verze 1.5.0 sady SDK automatizované strojové učení ve výchozím nastavení nenainstaluje modely TensorFlow. Pokud chcete nainstalovat TensorFlow a používat ho s automatizovanými experimenty ML, nainstalujte tensorflow==1.12.0
ho přes CondaDependencies
.
from azureml.core.runconfig import RunConfiguration
from azureml.core.conda_dependencies import CondaDependencies
run_config = RunConfiguration()
run_config.environment.python.conda_dependencies = CondaDependencies.create(conda_packages=['tensorflow==1.12.0'])
Chyby numpy
import numpy
Selhání ve Windows: Některá prostředí Windows se zobrazí při načítání chyby s nejnovější verzí Pythonu 3.6.8. Pokud se zobrazí tento problém, zkuste použít Python verze 3.6.7.import numpy
selhání: Zkontrolujte verzi TensorFlow v automatizovaném prostředí ml conda. Podporované verze jsou < 1.13. Odinstalujte TensorFlow z prostředí, pokud je >verze = 1.13.
Verzi TensorFlow můžete zkontrolovat a odinstalovat následujícím způsobem:
- Spusťte příkazové prostředí a aktivujte prostředí Conda, kde jsou nainstalované balíčky automatizovaného ml.
- Zadejte a vyhledejte
pip freeze
tensorflow
verzi uvedenou < ve verzi 1.13. - Pokud uvedená verze není podporovaná,
pip uninstall tensorflow
zadejte v příkazovém prostředí a zadejte y pro potvrzení.
jwt.exceptions.DecodeError
Přesná chybová zpráva: jwt.exceptions.DecodeError: It is required that you pass in a value for the "algorithms" argument when calling decode()
.
U verzí <sady SDK = 1.17.0 může instalace způsobit nepodporovanou verzi PyJWT. Zkontrolujte, že verze PyJWT v prostředí automatizovaného ml conda je podporovaná verze. To je PyJWT verze < 2.0.0.
Verzi PyJWT můžete zkontrolovat následujícím způsobem:
Spusťte příkazové prostředí a aktivujte prostředí Conda, kde jsou nainstalované automatizované balíčky ML.
Zadejte a vyhledejte
pip freeze
PyJWT
, pokud se najde, měla by < být uvedená verze 2.0.0.
Pokud uvedená verze není podporovaná:
Zvažte upgrade na nejnovější verzi sady AutoML SDK:
pip install -U azureml-sdk[automl]
Pokud to není možné, odinstalujte PyJWT z prostředí a nainstalujte správnou verzi následujícím způsobem:
pip uninstall PyJWT
v příkazovém prostředí a zadejtey
potvrzení.- Instalace pomocí
pip install 'PyJWT<2.0.0'
.
Přístup k datům
U automatizovaných úloh ML je potřeba zajistit, aby úložiště dat souborů, které se připojuje k úložišti AzureFile, získalo odpovídající ověřovací přihlašovací údaje. V opačném případě se zobrazí následující výsledky zprávy. Zjistěte, jak aktualizovat přihlašovací údaje pro ověřování přístupu k datům.
Chybová zpráva: Could not create a connection to the AzureFileService due to missing credentials. Either an Account Key or SAS token needs to be linked the default workspace blob store.
Datové schéma
Při pokusu o vytvoření nového automatizovaného experimentu ML pomocí tlačítka Upravit a odeslat v studio Azure Machine Learning musí schéma dat pro nový experiment odpovídat schématu dat použitých v původním experimentu. V opačném případě se zobrazí chybová zpráva podobná následujícím výsledkům. Přečtěte si další informace o tom , jak upravovat a odesílat experimenty z uživatelského rozhraní studia.
Chybové zprávy neschybné experimenty: Schema mismatch error: (an) additional column(s): "Column1: String, Column2: String, Column3: String", (a) missing column(s)
Chybová zpráva pro datové sady zpracování obrazu: Schema mismatch error: (an) additional column(s): "dataType: String, dataSubtype: String, dateTime: Date, category: String, subcategory: String, status: String, address: String, latitude: Decimal, longitude: Decimal, source: String, extendedProperties: String", (a) missing column(s): "image_url: Stream, image_details: DataRow, label: List" Vision dataset error(s): Vision dataset should have a target column with name 'label'. Vision dataset should have labelingProjectType tag with value as 'Object Identification (Bounding Box)'.
Databricks
Prognózování skóre R2 je vždy nula
K tomuto problému dochází v případě, že zadaná trénovací data mají časové řady, které obsahují stejnou hodnotu pro poslední n_cv_splits
+ forecasting_horizon
datové body.
Pokud se tento vzor očekává ve vaší časové řadě, můžete primární metriku přepnout na normalizovanou střední kvadraickou chybu odmocniny.
Neúspěšné nasazení
U verzí <= 1.18.0 sady SDK může základní image vytvořená pro nasazení selhat s následující chybou: ImportError: cannot import name cached_property from werkzeug
Tento problém můžete vyřešit pomocí následujících kroků:
- Stažení balíčku modelu
- Rozbalení balíčku
- Nasazení s využitím rozbalených prostředků
Aplikace Azure Functions
Automatizované strojové učení v současné době nepodporuje aplikace Azure Functions.
Ukázkové chyby poznámkového bloku
Pokud ukázkový poznámkový blok selže s chybou, že vlastnost, metoda nebo knihovna neexistuje:
Ujistěte se, že je v poznámkovém bloku Jupyter vybráno správné jádro. Jádro se zobrazí v pravém horním rohu stránky poznámkového bloku. Výchozí hodnota je azure_automl. Jádro se uloží jako součást poznámkového bloku. Pokud přepnete do nového prostředí Conda, musíte v poznámkovém bloku vybrat nové jádro.
- Pro Poznámkové bloky Azure by měl být Python 3.6.
- V případě místních prostředí conda by se měl jednat o název prostředí conda, který jste zadali v automl_setup.
Pokud chcete zajistit, aby poznámkový blok byl pro verzi sady SDK, kterou používáte,
- Zkontrolujte verzi sady SDK spuštěním
azureml.core.VERSION
v buňce poznámkového bloku Jupyter. - Předchozí verzi ukázkových poznámkových bloků si můžete stáhnout z GitHubu pomocí následujícího postupu:
Branch
Výběr tlačítka- Přechod na
Tags
kartu - Vyberte verzi.
- Zkontrolujte verzi sady SDK spuštěním
Omezování experimentů
Pokud máte více než 100 experimentů automatizovaného strojového učení, může to způsobit, že nové automatizované experimenty ML budou mít dlouhou dobu trvání.
Selhání stahování nastavení brány firewall virtuální sítě
Pokud se nacházíte ve virtuálních sítích, můžete při použití NLP autoML narazit na selhání stahování modelu. Důvodem je to, že síťový provoz blokuje stahování modelů a tokenizátorů z Azure CDN. Pokud chcete tento postup odblokovat, povolte následující adresy URL v nastavení Pravidla aplikace zásad brány firewall virtuální sítě:
aka.ms
https://automlresources-prod.azureedge.net
Podle zde uvedených pokynů nakonfigurujte nastavení brány firewall.
Tady najdete pokyny ke konfiguraci pracovního prostoru v rámci virtuální sítě.
Další kroky
Přečtěte si další informace o tom, jak vytrénovat regresní model pomocí automatizovaného strojového učení nebo jak trénovat pomocí automatizovaného strojového učení ve vzdáleném prostředku.
Přečtěte si další informace o tom, jak a kde nasadit model.