Sdílet prostřednictvím


Ř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řebujete pandas == 0.25.1 a scikit-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řebujete pandas == 0.23.4 a sckit-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 pak pip 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ěl platform by být win-64 pro Windows nebo osx-64 pro Mac. Ke kontrole verze použijte příkaz conda -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

    • Ujistěte se, že je nainstalovaný conda.

    • Linux – gcc: error trying to exec 'cc1plus'

      1. 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říkaz sudo apt-get install build-essential.

      2. 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

    1. 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ě.
    2. Spusťte příkaz: sudo apt-get update
    3. Spusťte příkaz: sudo apt-get install build-essential --fix-missing
    4. 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.
  • workspace.from_config selže:

    Pokud volání ws = Workspace.from_config() selže:

    1. Ujistěte se, že se poznámkový blok configuration.ipynb úspěšně spustil.
    2. 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.
    3. 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.
    4. 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:

  1. Spusťte příkazové prostředí a aktivujte prostředí Conda, kde jsou nainstalované balíčky automatizovaného ml.
  2. Zadejte a vyhledejte pip freezetensorflowverzi uvedenou < ve verzi 1.13.
  3. 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:

  1. Spusťte příkazové prostředí a aktivujte prostředí Conda, kde jsou nainstalované automatizované balíčky ML.

  2. Zadejte a vyhledejte pip freezePyJWT, pokud se najde, měla by < být uvedená verze 2.0.0.

Pokud uvedená verze není podporovaná:

  1. Zvažte upgrade na nejnovější verzi sady AutoML SDK: pip install -U azureml-sdk[automl]

  2. Pokud to není možné, odinstalujte PyJWT z prostředí a nainstalujte správnou verzi následujícím způsobem:

    1. pip uninstall PyJWT v příkazovém prostředí a zadejte y potvrzení.
    2. 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.

Zpráva o chybě: 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

Přečtěte si, jak nakonfigurovat experiment automatizovaného strojového učení se sadou Databricks (Azure Machine Learning SDK v1).

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

  1. Stažení balíčku modelu
  2. Rozbalení balíčku
  3. 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:
      1. Branch Výběr tlačítka
      2. Přechod na Tags kartu
      3. Vyberte verzi.

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