Řešení potíží s experimenty automatizovaného strojového učení v Pythonu
PLATÍ PRO:Sada 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 Sdk služby Azure Machine Learning.
Závislosti verzí
AutoML
závislosti na novějších verzích balíčků naruší kompatibilitu. Po sadě SDK verze 1.13.0 se modely nenačítají do starších sad SDK kvůli nekompatibilitě mezi staršími verzemi připnutými v předchozích AutoML
balíčcích a novějšími verzemi, které jsou připnuté dnes.
Očekávejte chyby, jako jsou:
Modul nenalezl chyby, jako jsou
No module named 'sklearn.decomposition._truncated_svd'
Chyby importu, například
ImportError: cannot import name 'RollingOriginValidator'
,Chyby atributů, jako je
AttributeError: 'SimpleImputer' object has no attribute 'add_indicator'
Řešení závisí na trénovací verzi vaší AutoML
sady SDK:
Pokud je vaše
AutoML
trénovací verze sady SDK vyšší než 1.13.0, potřebujetepandas == 0.25.1
ascikit-learn==0.22.1
.Pokud dojde k neshodě verzí, upgradujte scikit-learn a/nebo pandas a opravte verzi následujícím kódem:
pip install --upgrade pandas==0.25.1 pip install --upgrade scikit-learn==0.22.1
Pokud je vaše
AutoML
trénovací verze sady SDK menší než nebo rovna 1.12.0, potřebujetepandas == 0.23.4
asckit-learn==0.20.3
.Pokud dojde k neshodě verzí, downgradujte scikit-learn nebo pandas a opravte verzi pomocí následujícího příkazu:
pip install --upgrade pandas==0.23.4 pip install --upgrade scikit-learn==0.20.3
Nastavení
AutoML
Změny balíčku od verze 1.0.76 vyžadují před aktualizací na novou verzi odinstalaci předchozí verze.
ImportError: cannot import name AutoMLConfig
Pokud k této chybě dojde po upgradu z verze sady SDK před verzí 1.0.76 na verzi 1.0.76 nebo novější, vyřešte ji 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 selhání
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 . Hodnotaplatform
by měla býtwin-64
pro Windows neboosx-64
pro Mac. Pokud chcete zkontrolovat verzi, 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ím příkazuUjistěte se, že je nainstalovaná služba 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 k 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 z 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
chyba configuration.ipynb:
- V případě místního systému conda se nejprve ujistěte, že
automl_setup
se úspěšně spustilo. - Ujistěte se, že je subscription_id správný. Vyhledejte subscription_id v Azure Portal tak, že vyberete Všechny služby a pak Předplatná. Znaky "<" a ">" by neměly být zahrnuty do subscription_id hodnoty. Například
subscription_id = "12345678-90ab-1234-5678-1234567890abcd"
má platný formát. - Zajistěte přístup přispěvatele nebo vlastníka k předplatnému.
- Zkontrolujte, že se jedná o jednu z podporovaných oblastí:
eastus2
,eastus
,westcentralus
,southeastasia
,westeurope
,australiaeast
,westus2
.southcentralus
- Pomocí Azure Portal zajistěte přístup k oblasti.
- V případě místního systému conda se nejprve ujistěte, že
workspace.from_config selhání:
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 které
configuration.ipynb
byl spuštěn, zkopírujte složku aml_config a soubor config.json, který obsahuje, do nové složky. Workspace.from_config přečte soubor config.json pro složku poznámkového bloku nebo jeho nadřazenou složku. - Pokud se používá nové předplatné, skupina prostředků, pracovní prostor nebo oblast, nezapomeňte poznámkový blok spustit
configuration.ipynb
znovu. Přímá změna souboru config.json bude fungovat pouze v případě, že pracovní prostor již existuje v zadané skupině prostředků v rámci zadaného předplatného. - 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, a to ani v případě, že se zadaná oblast liší.
TensorFlow
Od verze 1.5.0 sady SDK automatizované strojové učení ve výchozím nastavení neinstaluje modely TensorFlow. Pokud chcete nainstalovat TensorFlow a použít ho s experimenty automatizovaného strojového učení, 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'])
Numpy selhání
import numpy
selhání ve Windows: V některých prostředích Windows dochází k chybě při načítání numpy s nejnovější verzí Pythonu 3.6.8. Pokud narazíte na tento problém, zkuste použít Python verze 3.6.7.import numpy
selhání: Zkontrolujte verzi TensorFlowu 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, ve kterém jsou nainstalované automatizované balíčky ml.
- Zadejte a vyhledejte
pip freeze
tensorflow
. Pokud se najde, uvedená verze by měla být < 1.13. - Pokud uvedená verze není podporovanou verzí,
pip uninstall tensorflow
v příkazovém prostředí 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()
.
V případě sady SDK verze <1.17.0 může instalace způsobit nepodporovanou verzi PyJWT. Zkontrolujte, že verze PyJWT v automatizovaném prostředí ml conda je podporovanou verzí. To je PyJWT verze < 2.0.0.
Verzi PyJWT můžete zkontrolovat takto:
Spusťte příkazové prostředí a aktivujte prostředí Conda, ve kterém jsou nainstalované balíčky automatizovaného strojového učení.
Zadejte a vyhledejte
pip freeze
PyJWT
. Pokud se najde, uvedená verze by měla být < 2.0.0.
Pokud uvedená verze není podporovanou verzí:
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 pro potvrzení zadejtey
.- 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 vašemu úložišti AzureFile Storage, má příslušné přihlašovací údaje pro ověřování. V opačném případě se zobrazí následující zpráva. 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.
Schéma dat
Když se pokusíte vytvořit nový experiment automatizovaného strojového učení pomocí tlačítka Upravit a odeslat v studio Azure Machine Learning, musí se schéma dat pro nový experiment shodovat se schématem dat použitým 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 nevidomé experimenty: Schema mismatch error: (an) additional column(s): "Column1: String, Column2: String, Column3: String", (a) missing column(s)
Chybová zpráva pro datové sady Vision: 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 obsahují časové řady, které obsahují stejnou hodnotu pro poslední n_cv_splits
+ forecasting_horizon
datové body.
Pokud je tento vzor ve vaší časové řadě očekávaný, můžete primární metriku přepnout na normalizovanou odmocněnou střední kvadratickou chybu.
Neúspěšné nasazení
Pro verze <= 1.18.0 sady SDK může selhat základní image vytvořená pro nasazení s následující chybou: ImportError: cannot import name cached_property from werkzeug
.
Tento problém můžete obejít pomocí následujících kroků:
- Stažení balíčku modelu
- Rozbalení balíčku
- Nasazení s využitím rozbalených prostředků
Azure Functions aplikace
Automatizované strojové učení v současné době nepodporuje Azure Functions aplikace.
Ukázková selhání poznámkového bloku
Pokud ukázkový poznámkový blok selže s chybou, že tato vlastnost, metoda nebo knihovna neexistuje:
Ujistěte se, že je v Jupyter Notebook vybrané 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 na nové prostředí Conda, musíte v poznámkovém bloku vybrat nové jádro.
- Pro Azure Notebooks by to měl být Python 3.6.
- Pro místní prostředí Conda by to měl být 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 příkazu
azureml.core.VERSION
v buňce Jupyter Notebook. - Předchozí verzi ukázkových poznámkových bloků si můžete stáhnout z GitHubu pomocí těchto kroků:
Branch
Výběr tlačítka- Přechod na
Tags
kartu - Vyberte verzi.
- Zkontrolujte verzi sady SDK spuštěním příkazu
Omezování experimentů
Pokud máte více než 100 experimentů automatizovaného strojového učení, může to způsobit dlouhou dobu trvání nových experimentů automatizovaného strojového učení.
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í technologie NLP automatizovaného strojového učení narazit na selhání stahování modelu. Důvodem je to, že stahování modelů a tokenizátorů z Azure CDN blokuje síťový provoz. Pokud chcete tento postup odblokovat, v nastavení Pravidla aplikací v zásadách brány firewall virtuální sítě přidejte následující adresy URL:
aka.ms
https://automlresources-prod.azureedge.net
Postupujte podle pokynů tady a nakonfigurujte nastavení brány firewall.
Pokyny ke konfiguraci pracovního prostoru ve virtuální síti najdete tady.
Další kroky
Přečtěte si další informace o tom, jak trénovat regresní model pomocí automatizovaného strojového učení nebo jak trénovat pomocí automatizovaného strojového učení na vzdáleném prostředku.
Přečtěte si další informace o tom, jak a kde nasadit model.