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 ascikit-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 asckit-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
majdpip 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. Ennekplatform
Windows vagyosx-64
Mac esetén 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
. 32 bites ellenőrzés futtatásaGyő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 á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ővelconda 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
- 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.
- Futtassa a következő parancsot:
sudo apt-get update
- Futtassa a következő parancsot:
sudo apt-get install build-essential --fix-missing
- 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
, ,westus2
australiaeast
southcentralus
. - Győződjön meg arról, hogy az Azure Portalon 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 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. - 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. - 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:
- 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 megtensorflow
, ha megtalálható, a felsorolt 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 megPyJWT
a 2.0.0-s verziót < , ha megtalálható
Ha a felsorolt verzió nem támogatott verzió:
Érdemes lehet frissíteni az AutoML SDK legújabb verziójára:
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
parancshéjban, és adja megy
a megerősítést.- 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
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:
- A modellcsomag letöltése
- Csomagolja ki a csomagot
- Ü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:
- 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á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
További információ arról , hogyan taníthat be 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.