Megosztás a következőn keresztül:


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 oldhatja meg 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ák várhatók:

  • A modul nem talált olyan hibákat, 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, szüksége lesz a scikit-learn==0.22.1.pandas == 0.25.1

    • Ha a verzió nem egyezik, frissítse a scikit-learn és/vagy pandas verziót a következőkkel való javításhoz:

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

    • Ha a verzió nem egyezik, a scikit-learn és/vagy a pandas leminősítésével javítsa ki a verziót az alábbiak szerint:

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

Beállítás

AutoML az 1.0.76-os verzió óta történt csomagmódosításokhoz az előző verziót el kell távolítani 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 hibát a következő futtatásával háríthatja el: pip uninstall azureml-train automl majd 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 conda info a paranccsal ellenőrizheti. Ennek platform Windows vagy osx-64 Mac esetén 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. 32 bites ellenőrzés futtatása

    • 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 át egy új nevet első paraméterként egy új conda-környezet létrehozásához automl_setup. Meglévő Conda-környezetek megtekintése és conda env list eltávolítása a következővel conda env remove -n <environmentname>: .

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

    1. Győződjön meg arról, hogy az 53-os és a 80-as kimenő port engedélyezve van. Egy Azure-beli virtuális gépen ezt az Azure Portalon teheti meg a virtuális gép kiválasztásával, majd a Hálózatkezelés elemre kattintva.
    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. Futtatás automl_setup_linux.sh újra
  • A configuration.ipynb hiba:

    • A helyi conda esetében először győződjön meg arról, hogy automl_setup sikeresen futott.
    • Győződjön meg arról, hogy a subscription_id helyes. Keresse meg a subscription_id az Azure Portalon a Minden szolgáltatás, majd az Előfizetések lehetőség kiválasztásával. 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.
    • Ellenőrizze, hogy a közreműködő vagy a tulajdonos hozzáfér-e az előfizetéshez.
    • Ellenőrizze, hogy a régió a támogatott régiók egyike-e: eastus2, eastus, westcentralus, southeastasia, westeurope, , westus2australiaeastsouthcentralus.
    • Győződjön meg arról, hogy az Azure Portalon 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 olyan mappából futtatja, amely nem abban a mappában található, amelyben a configuration.ipynb futtatás történt, 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.
    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és alatt.
    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-s 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.

Ellenőrizze a TensorFlow verzióját, és távolítsa el az alábbiak szerint:

  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 tensorflow, ha megtalálható, a felsorolt 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 PyJWTa 2.0.0-s verziót < , ha megtalálható

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

  1. Érdemes lehet frissíteni az AutoML SDK legújabb verziójára: 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 parancshéjban, és adja meg y a megerősítést.
    2. Telepítés a következővel 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ényei lesznek. 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 az Azure Machine Learning Studio 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ó a kísérletek studio felhasználói felületről történő szerkesztéséről és elküldéséről.

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

Hibaüzenet a vision-adathalmazokhoz: 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 adatpontok esetében.

Ha ez a minta várható az idősorban, átválthatja az elsődleges metrikát normalizált fő 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ök használatával

Azure Functions-alkalmazás

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

Mintajegyzetfüzet-hibák

Ha egy mintajegyzetfüzet olyan hibával meghiúsul, 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 lett kiválasztva a Jupyter Notebookban. A kernel a jegyzetfüzetoldal jobb felső sarkában jelenik meg. Az alapértelmezett érték a 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ási időt okozhatnak.

A VNet 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 blokkolva van a modellek és tokenizerek Azure CDN-ből való letöltésében. 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

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

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

Következő lépések