Share via


Automatizált gépi tanulási kísérletek hibaelhárítása Pythonban

A KÖVETKEZŐKRE VONATKOZIK:Python SDK azureml v1

Ebből az útmutatóból megtudhatja, hogyan azonosíthatja és háríthatja el az Azure Machine Learning SDK-val végzett automatizált gépi tanulási kísérletek ismert problémáit.

Verziófüggőségek

AutoML az újabb csomagverziók függőségei megszakítják a kompatibilitást. Az SDK 1.13.0-s verziója után a modellek nem töltődnek be a régebbi SDK-kba a korábbi AutoML csomagokban rögzített régebbi verziók és a ma rögzített újabb verziók közötti kompatibilitás miatt.

Az alábbiakhoz hasonló hibákra számíthat:

  • A modul nem található olyan hibákban, mint például:

    No module named 'sklearn.decomposition._truncated_svd'

  • Importálási hibák, például:

    ImportError: cannot import name 'RollingOriginValidator',

  • Attribútumhibák, például:

    AttributeError: 'SimpleImputer' object has no attribute 'add_indicator'

A megoldás az SDK betanítási verziójától függ AutoML :

  • Ha az AutoML SDK betanítási verziója nagyobb, mint 1.13.0, akkor a és scikit-learn==0.22.1a szükségespandas == 0.25.1.

    • Ha a verzióeltérés eltér, frissítse a scikit-learn és/vagy pandas verziót a következőkkel való megfelelő verzióra:

          pip install --upgrade pandas==0.25.1
          pip install --upgrade scikit-learn==0.22.1
      
  • Ha az AutoML SDK betanítási verziója kisebb vagy egyenlő az 1.12.0-snál, akkor a és sckit-learn==0.20.3a szükségespandas == 0.23.4.

    • Ha a verzió nem egyezik, a scikit-learn és/vagy a pandas verzióra váltásával javítsa ki az alábbi verziót:

        pip install --upgrade pandas==0.23.4
        pip install --upgrade scikit-learn==0.20.3
      

Telepítés

AutoML csomagmódosítások az 1.0.76-os verzió óta az előző verzió eltávolítását igénylik az új verzióra való frissítés előtt.

  • ImportError: cannot import name AutoMLConfig

    Ha ezt a hibát az 1.0.76-os verzió előtti SDK-verzióról az 1.0.76-os vagy újabb verzióra való frissítés után tapasztalja, a következő futtatásával hárítsa el a hibát: pip uninstall azureml-train automl és ezután pip install azureml-train-automl. A automl_setup.cmd szkript ezt automatikusan elvégzi.

  • automl_setup sikertelen

    • Windows rendszeren futtassa a automl_setup egy Anaconda-parancssorból. Telepítse a Minicondát.

    • Győződjön meg arról, hogy a Conda 64 bites 4.4.10-es vagy újabb verziója telepítve van. A bitet a conda info paranccsal ellenőrizheti. A platform windowsos vagy osx-64 maces verziónak kell lenniewin-64. A verzió ellenőrzéséhez használja a parancsot conda -V. Ha egy korábbi verzió van telepítve, a következő paranccsal frissítheti: conda update conda. A 32 bites ellenőrzéshez futtassa a

    • Győződjön meg arról, hogy a Conda telepítve van.

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

      1. Ha a gcc: error trying to exec 'cc1plus': execvp: No such file or directory hiba jelentkezik, telepítse a Linux-disztribúció GCC buildelési eszközeit. Az Ubuntu-ban például használja a parancsot sudo apt-get install build-essential.

      2. Adjon meg egy új nevet első paraméterként az új Conda-környezet létrehozásához automl_setup. Tekintse meg a meglévő Conda-környezeteket a használatával conda env list , és távolítsa el őket a paranccsal conda env remove -n <environmentname>.

  • automl_setup_linux.sh meghiúsul: Ha automl_setup_linus.sh Ubuntu Linux rendszeren meghiúsul a következő hibával: unable to execute 'gcc': No such file or directory

    1. Győződjön meg arról, hogy az 53-os és a 80-s kimenő port engedélyezve van. Azure-beli virtuális gépeken ezt a Azure Portal a virtuális gép kiválasztásával és a Hálózatkezelés elemre kattintva teheti meg.
    2. Futtassa a következő parancsot: sudo apt-get update
    3. Futtassa a következő parancsot: sudo apt-get install build-essential --fix-missing
    4. Újrafuttatás automl_setup_linux.sh
  • configuration.ipynb meghiúsul:

    • A helyi conda esetében először győződjön meg arról, hogy automl_setup az sikeresen lefutott.
    • Győződjön meg arról, hogy a subscription_id helyes. Keresse meg a subscription_id a Azure Portal a Minden szolgáltatás, majd az Előfizetések lehetőséget választva. A "<" és a ">" karakter nem szerepelhet a subscription_id értékben. Például subscription_id = "12345678-90ab-1234-5678-1234567890abcd" érvényes formátummal rendelkezik.
    • Győződjön meg arról, hogy a közreműködő vagy a tulajdonos hozzáfér az előfizetéshez.
    • Ellenőrizze, hogy a régió a támogatott régiók egyike-e: eastus2, eastus, westcentralus, southeastasia, westeurope, , australiaeast. southcentraluswestus2
    • Győződjön meg arról, hogy a Azure Portal használatával hozzáférést biztosít a régióhoz.
  • workspace.from_config sikertelen:

    Ha a hívás ws = Workspace.from_config() sikertelen:

    1. Győződjön meg arról, hogy a configuration.ipynb jegyzetfüzet sikeresen lefutott.
    2. Ha a jegyzetfüzetet egy olyan mappából futtatja, amely nem abban a mappában található, amelyben a configuration.ipynb fájlt futtatták, másolja a mappát aml_config és a benne lévő config.json fájlt az új mappába. Workspace.from_config beolvassa a jegyzetfüzet mappájának vagy szülőmappájának config.json fájlját.
    3. Ha új előfizetést, erőforráscsoportot, munkaterületet vagy régiót használ, győződjön meg arról, hogy újra futtatja a configuration.ipynb jegyzetfüzetet. A config.json közvetlen módosítása csak akkor működik, ha a munkaterület már létezik a megadott erőforráscsoportban a megadott előfizetésben.
    4. Ha módosítani szeretné a régiót, módosítsa a munkaterületet, az erőforráscsoportot vagy az előfizetést. Workspace.create nem fog munkaterületet létrehozni vagy frissíteni, ha már létezik, még akkor sem, ha a megadott régió eltérő.

TensorFlow

Az SDK 1.5.0-s verziójától az automatizált gépi tanulás alapértelmezés szerint nem telepíti a TensorFlow-modelleket. Ha telepíteni szeretné a TensorFlow-t, és használni szeretné az automatizált gépi tanulási kísérletekkel, telepítse tensorflow==1.12.0 a következővel: 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-hibák

  • import numpy Sikertelen a Windows rendszerben: Egyes Windows-környezetek hibát tapasztalnak a numpy betöltésekor a Python legújabb 3.6.8-es verziójával. Ha ezt a problémát tapasztalja, próbálkozzon a Python 3.6.7-es verziójával.

  • import numpy sikertelen: Ellenőrizze a TensorFlow verzióját az automatizált ml conda környezetben. A támogatott verziók: < 1.13. Távolítsa el a TensorFlow-t a környezetből, ha a >verzió = 1.13.

A TensorFlow verzióját a következőképpen ellenőrizheti és távolíthatja el:

  1. Indítsa el a parancshéjat, aktiválja a Conda környezetet, ahol automatizált ml-csomagok vannak telepítve.
  2. Adja meg pip freeze és keresse meg a következőttensorflow: , ha megtalálható, a listában szereplő verziónak 1.13-nak kell lennie <
  3. Ha a felsorolt verzió nem támogatott verzió, pip uninstall tensorflow a parancshéjban adja meg az y értéket a megerősítéshez.

jwt.exceptions.DecodeError

Pontos hibaüzenet: jwt.exceptions.DecodeError: It is required that you pass in a value for the "algorithms" argument when calling decode().

Az SDK 1.17.0-s verziói <esetén a telepítés a PyJWT nem támogatott verzióját eredményezheti. Ellenőrizze, hogy az automatizált ml conda környezetben a PyJWT-verzió támogatott-e. Ez a PyJWT 2.0.0-s verziója < .

A PyJWT verzióját az alábbiak szerint ellenőrizheti:

  1. Indítsa el a parancshéjat, és aktiválja a Conda-környezetet, ahol automatizált ML-csomagok vannak telepítve.

  2. Adja meg pip freeze és keresse meg a következőtPyJWT: , ha megtalálható, a listában szereplő verziónak 2.0.0-nak kell lennie <

Ha a felsorolt verzió nem támogatott verzió:

  1. Érdemes lehet az AutoML SDK legújabb verziójára frissíteni: pip install -U azureml-sdk[automl]

  2. Ha ez nem járható út, távolítsa el a PyJWT-t a környezetből, és telepítse a megfelelő verziót az alábbiak szerint:

    1. pip uninstall PyJWT a parancshéjban, és adja meg y a megerősítést.
    2. Telepítés a paranccsal pip install 'PyJWT<2.0.0'.

Az adatok elérése

Automatizált gépi tanulási feladatok esetén meg kell győződnie arról, hogy az AzureFile Storage-hoz csatlakozó fájladattár rendelkezik a megfelelő hitelesítési hitelesítő adatokkal. Ellenkező esetben az alábbi üzenet eredménye. Megtudhatja, hogyan frissítheti az adathozzáférési hitelesítési hitelesítő adatokat.

Hibaüzenet: 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.

Adatséma

Amikor új automatizált gépi tanulási kísérletet próbál létrehozni a Azure Machine Learning stúdió Szerkesztés és küldés gombján keresztül, az új kísérlet adatsémának meg kell egyeznie az eredeti kísérletben használt adatok sémával. Ellenkező esetben a következő eredményekhez hasonló hibaüzenet jelenik meg. További információ arról, hogyan szerkesztheti és küldheti el a kísérleteket a studio felhasználói felületén.

Hibaüzenet nem látási kísérletek: Schema mismatch error: (an) additional column(s): "Column1: String, Column2: String, Column3: String", (a) missing column(s)

A Vision-adathalmazok hibaüzenete: 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

Lásd : Automatizált gépi tanulási kísérlet konfigurálása a Databricks használatával (Azure Machine Learning SDK v1).

Az R2-pontszám előrejelzése mindig nulla

Ez a probléma akkor merül fel, ha a betanítási adatok olyan idősorokkal rendelkeznek, amelyek ugyanazt az értéket tartalmazzák az utolsó n_cv_splits + forecasting_horizon adatpontokhoz.

Ha ez a minta várható az idősorban, átválthatja az elsődleges metrikát normalizált gyökér középérték négyzetes hibára.

Sikertelen üzembe helyezés

Az SDK 1.18.0-s verziói <esetén az üzembe helyezéshez létrehozott alaprendszerkép a következő hibával meghiúsulhat: ImportError: cannot import name cached_property from werkzeug.

A következő lépések megkerülhetik a problémát:

  1. A modellcsomag letöltése
  2. Csomagolja ki a csomagot
  3. Üzembe helyezés a kibontott eszközökkel

Azure Functions alkalmazás

Az automatizált gépi tanulás jelenleg nem támogatja Azure Functions alkalmazásokat.

Mintajegyzetfüzet-hibák

Ha egy mintajegyzetfüzet meghiúsul azzal a hibával, hogy a tulajdonság, a metódus vagy a tár nem létezik:

  • Győződjön meg arról, hogy a megfelelő kernel van kiválasztva a Jupyter Notebook. A kernel a jegyzetfüzetoldal jobb felső sarkában jelenik meg. Az alapértelmezett érték azure_automl. A rendszer a jegyzetfüzet részeként menti a kernelt. Ha új Conda-környezetre vált, ki kell választania az új kernelt a jegyzetfüzetben.

    • Az Azure Notebooks esetében a Python 3.6-nak kell lennie.
    • A helyi Conda-környezetek esetében az automl_setup megadott Conda-környezetnévnek kell lennie.
  • Annak ellenőrzéséhez, hogy a jegyzetfüzet a használt SDK-verzióhoz tartozik-e,

    • Ellenőrizze az SDK-verziót egy Jupyter Notebook cellában való azureml.core.VERSION végrehajtással.
    • A mintajegyzetfüzetek korábbi verzióját az alábbi lépésekkel töltheti le a GitHubról:
      1. Válassza ki a Branch gombot
      2. Navigálás a Tags lapra
      3. Válassza ki a verziót

Kísérlet szabályozása

Ha több mint 100 automatizált gépi tanulási kísérlettel rendelkezik, az új automatizált gépi tanulási kísérletek hosszú futásidejűek lehetnek.

A virtuális hálózat tűzfalbeállításának letöltési hibája

Ha virtuális hálózatok (VNetek) alatt van, előfordulhat, hogy az AutoML NLP használatakor modellletöltési hibákba ütközik. Ennek az az oka, hogy a hálózati forgalom nem tölthető le a modellek és tokenizálók az Azure CDN-ből. A letiltás feloldásához engedélyezze az alábbi URL-címek listáját a virtuális hálózati tűzfalszabályzat "Alkalmazásszabályok" beállításában:

  • aka.ms
  • https://automlresources-prod.azureedge.net

Kövesse az itt található utasításokat a tűzfalbeállítások konfigurálásához.

A munkaterület virtuális hálózaton való konfigurálására vonatkozó utasítások itt érhetők el .

Következő lépések