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 ésscikit-learn==0.22.1
a 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 éssckit-learn==0.20.3
a 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ánpip 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. Aplatform
windowsos vagyosx-64
maces verziónak kell lenniewin-64
. A verzió ellenőrzéséhez használja a parancsotconda -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 aGyőződjön meg arról, hogy a Conda telepítve van.
Linux-
gcc: error trying to exec 'cc1plus'
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 parancsotsudo apt-get install build-essential
.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 paranccsalconda 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
- 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.
- Futtassa a következő parancsot:
sudo apt-get update
- Futtassa a következő parancsot:
sudo apt-get install build-essential --fix-missing
- Ú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
.southcentralus
westus2
- Győződjön meg arról, hogy a Azure Portal használatával hozzáférést biztosít a régióhoz.
- A helyi conda esetében először győződjön meg arról, hogy
workspace.from_config sikertelen:
Ha a hívás
ws = Workspace.from_config()
sikertelen:- Győződjön meg arról, hogy a configuration.ipynb jegyzetfüzet sikeresen lefutott.
- 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. - 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. - 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:
- Indítsa el a parancshéjat, aktiválja a Conda környezetet, ahol automatizált ml-csomagok vannak telepítve.
- 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 < - 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:
Indítsa el a parancshéjat, és aktiválja a Conda-környezetet, ahol automatizált ML-csomagok vannak telepítve.
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ó:
Érdemes lehet az AutoML SDK legújabb verziójára frissíteni:
pip install -U azureml-sdk[automl]
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:
pip uninstall PyJWT
a parancshéjban, és adja megy
a megerősítést.- 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
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:
- A modellcsomag letöltése
- Csomagolja ki a csomagot
- Ü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:
- Válassza ki a
Branch
gombot - Navigálás a
Tags
lapra - Válassza ki a verziót
- Válassza ki a
- Ellenőrizze az SDK-verziót egy Jupyter Notebook cellában való
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
További információ arról , hogyan taníthat be egy regressziós modellt automatizált gépi tanulással , vagy hogyan taníthat be automatizált gépi tanulással távoli erőforráson.
További információ a modell üzembe helyezésének módjáról és módjáról.