Felsöka automatiserade ML-experiment i Python
GÄLLER FÖR: Python SDK azureml v1
I den här guiden får du lära dig hur du identifierar och löser kända problem i dina automatiserade maskininlärningsexperiment med Azure Mašinsko učenje SDK.
Versionsberoenden
AutoML
beroenden till nyare paketversioner bryter kompatibiliteten. Efter SDK version 1.13.0 läses inte modeller in i äldre SDK:er på grund av inkompatibilitet mellan de äldre versionerna som fästs i tidigare AutoML
paket och de nyare versionerna som fästs idag.
Förvänta dig fel som:
Det gick inte att hitta modulens fel, t.ex.
No module named 'sklearn.decomposition._truncated_svd'
Importera fel som,
ImportError: cannot import name 'RollingOriginValidator'
,Attributfel som,
AttributeError: 'SimpleImputer' object has no attribute 'add_indicator'
Lösningar beror på din AutoML
SDK-träningsversion:
Om din
AutoML
SDK-träningsversion är större än 1.13.0 behöverpandas == 0.25.1
du ochscikit-learn==0.22.1
.Om det finns ett versionsmatchningsfel uppgraderar du scikit-learn och/eller pandas för att korrigera versionen med följande,
pip install --upgrade pandas==0.25.1 pip install --upgrade scikit-learn==0.22.1
Om din
AutoML
SDK-träningsversion är mindre än eller lika med 1.12.0 behöverpandas == 0.23.4
du ochsckit-learn==0.20.3
.Om det finns ett versionsfel nedgraderar du scikit-learn och/eller pandas för att korrigera versionen med följande,
pip install --upgrade pandas==0.23.4 pip install --upgrade scikit-learn==0.20.3
Ställ in
AutoML
paketändringar sedan version 1.0.76 kräver att den tidigare versionen avinstalleras innan den uppdateras till den nya versionen.
ImportError: cannot import name AutoMLConfig
Om det här felet uppstår efter uppgradering från en SDK-version före v1.0.76 till v1.0.76 eller senare löser du felet genom att köra:
pip uninstall azureml-train automl
och sedanpip install azureml-train-automl
. Skriptet automl_setup.cmd gör detta automatiskt.automl_setup misslyckas
I Windows kör du automl_setup från en Anaconda-prompt. Installera Miniconda.
Kontrollera att conda 64-bitars version 4.4.10 eller senare är installerad. Du kan kontrollera biten
conda info
med kommandot .platform
Bör varawin-64
för Windows ellerosx-64
för Mac. Om du vill kontrollera versionen använder du kommandotconda -V
. Om du har en tidigare version installerad kan du uppdatera den med hjälp av kommandot :conda update conda
. Kontrollera 32-bitars genom att köraKontrollera att conda är installerat.
Linux –
gcc: error trying to exec 'cc1plus'
Om felet
gcc: error trying to exec 'cc1plus': execvp: No such file or directory
uppstår installerar du GCC-kompileringsverktygen för Linux-distributionen. I Ubuntu använder du till exempel kommandotsudo apt-get install build-essential
.Skicka ett nytt namn som den första parametern för att automl_setup för att skapa en ny conda-miljö. Visa befintliga conda-miljöer med och
conda env list
ta bort dem medconda env remove -n <environmentname>
.
automl_setup_linux.sh misslyckas: Om automl_setup_linus.sh misslyckas på Ubuntu Linux med felet:
unable to execute 'gcc': No such file or directory
- Kontrollera att utgående portar 53 och 80 är aktiverade. På en virtuell Azure-dator kan du göra detta från Azure-portalen genom att välja den virtuella datorn och klicka på Nätverk.
- Kör kommandot:
sudo apt-get update
- Kör kommandot:
sudo apt-get install build-essential --fix-missing
- Kör
automl_setup_linux.sh
igen
configuration.ipynb misslyckas:
- För lokal conda kontrollerar du först att
automl_setup
den har körts. - Kontrollera att subscription_id är korrekt. Hitta subscription_id i Azure-portalen genom att välja Alla tjänster och sedan Prenumerationer. Tecknen "<" och ">" bör inte ingå i värdet subscription_id. Till
subscription_id = "12345678-90ab-1234-5678-1234567890abcd"
exempel har det giltiga formatet. - Se till att deltagare eller ägare får åtkomst till prenumerationen.
- Kontrollera att regionen är en av de regioner som stöds:
eastus2
,eastus
,westcentralus
,southeastasia
, ,westeurope
,australiaeast
,westus2
.southcentralus
- Se till att du har åtkomst till regionen med hjälp av Azure-portalen.
- För lokal conda kontrollerar du först att
workspace.from_config misslyckas:
Om anropet
ws = Workspace.from_config()
misslyckas:- Kontrollera att notebook-filen configuration.ipynb har körts.
- Om anteckningsboken körs från en mapp som inte finns under mappen där den
configuration.ipynb
kördes kopierar du mappen aml_config och filen config.json som den innehåller till den nya mappen. Workspace.from_config läser config.json för notebook-mappen eller dess överordnade mapp. - Om en ny prenumeration, resursgrupp, arbetsyta eller region används kontrollerar du att du kör notebook-filen
configuration.ipynb
igen. Att ändra config.json direkt fungerar bara om arbetsytan redan finns i den angivna resursgruppen under den angivna prenumerationen. - Om du vill ändra regionen ändrar du arbetsytan, resursgruppen eller prenumerationen.
Workspace.create
kommer inte att skapa eller uppdatera en arbetsyta om den redan finns, även om den angivna regionen är annorlunda.
TensorFlow
Från och med version 1.5.0 av SDK installerar automatiserad maskininlärning inte TensorFlow-modeller som standard. Om du vill installera TensorFlow och använda det med dina automatiserade ML-experiment installerar du tensorflow==1.12.0
via 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-fel
import numpy
misslyckas i Windows: Vissa Windows-miljöer ser ett fel när numpy läses in med den senaste Python-versionen 3.6.8. Om du ser det här problemet kan du prova med Python version 3.6.7.import numpy
misslyckas: Kontrollera TensorFlow-versionen i den automatiserade ml conda-miljön. Versioner som stöds är < 1.13. Avinstallera TensorFlow från miljön om versionen är >= 1.13.
Du kan kontrollera versionen av TensorFlow och avinstallera på följande sätt:
- Starta ett kommandogränssnitt och aktivera conda-miljön där automatiserade ML-paket installeras.
- Ange
pip freeze
och letatensorflow
efter , om det hittas bör den version som anges vara < 1.13 - Om den angivna versionen inte är en version som stöds går
pip uninstall tensorflow
du till kommandogränssnittet och anger y för bekräftelse.
jwt.exceptions.DecodeError
Exakt felmeddelande: jwt.exceptions.DecodeError: It is required that you pass in a value for the "algorithms" argument when calling decode()
.
För SDK-versioner <= 1.17.0 kan installationen resultera i en version av PyJWT som inte stöds. Kontrollera att PyJWT-versionen i den automatiserade ml conda-miljön är en version som stöds. Det är PyJWT version < 2.0.0.
Du kan kontrollera versionen av PyJWT på följande sätt:
Starta ett kommandogränssnitt och aktivera conda-miljön där automatiserade ML-paket installeras.
Ange
pip freeze
och letaPyJWT
efter , om det hittas bör den version som anges vara < 2.0.0
Om den angivna versionen inte är en version som stöds:
Överväg att uppgradera till den senaste versionen av AutoML SDK:
pip install -U azureml-sdk[automl]
Om det inte är möjligt avinstallerar du PyJWT från miljön och installerar rätt version på följande sätt:
pip uninstall PyJWT
i kommandogränssnittet och angey
för bekräftelse.- Installera med .
pip install 'PyJWT<2.0.0'
Dataåtkomst
För automatiserade ML-jobb måste du se till att fildataarkivet som ansluter till azurefillagringen har rätt autentiseringsuppgifter. I annat fall resulterar följande meddelande. Lär dig hur du uppdaterar dina autentiseringsuppgifter för dataåtkomst.
Felmeddelande: 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.
Dataschema
När du försöker skapa ett nytt automatiserat ML-experiment via knappen Redigera och skicka i Azure Mašinsko učenje Studio måste dataschemat för det nya experimentet matcha schemat för de data som användes i det ursprungliga experimentet. Annars visas ett felmeddelande som liknar följande resultat. Läs mer om hur du redigerar och skickar experiment från studiogränssnittet.
Felmeddelande om icke-visionsexperiment: Schema mismatch error: (an) additional column(s): "Column1: String, Column2: String, Column3: String", (a) missing column(s)
Felmeddelande för visionsdatauppsättningar: 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
Se Konfigurera ett automatiserat ML-experiment med Databricks (Azure Mašinsko učenje SDK v1).
Prognostisering av R2-poäng är alltid noll
Det här problemet uppstår om träningsdata som tillhandahålls har tidsserier som innehåller samma värde för de senaste n_cv_splits
+ forecasting_horizon
datapunkterna.
Om det här mönstret förväntas i tidsserien kan du växla ditt primära mått till ett normaliserat kvadratfel för rotsmedelvärdet.
Distributionen misslyckades
För versioner <= 1.18.0 av SDK kan basavbildningen som skapats för distribution misslyckas med följande fel: ImportError: cannot import name cached_property from werkzeug
.
Följande steg kan lösa problemet:
- Ladda ned modellpaketet
- Packa upp paketet
- Distribuera med de uppackade tillgångarna
Azure Functions-program
Automatiserad ML stöder för närvarande inte Azure Functions-program.
Exempel på notebook-fel
Om en exempelanteckningsbok misslyckas med ett fel finns inte egenskapen, metoden eller biblioteket:
Kontrollera att rätt kernel har valts i Jupyter Notebook. Kerneln visas längst upp till höger på anteckningsbokssidan. Standardvärdet är azure_automl. Kerneln sparas som en del av notebook-filen. Om du växlar till en ny conda-miljö måste du välja den nya kerneln i notebook-filen.
- För Azure Notebooks ska det vara Python 3.6.
- För lokala conda-miljöer ska det vara det conda-miljönamn som du angav i automl_setup.
För att säkerställa att notebook-filen är för den SDK-version som du använder,
- Kontrollera SDK-versionen genom att
azureml.core.VERSION
köra i en Jupyter Notebook-cell. - Du kan ladda ned den tidigare versionen av exempelanteckningsböckerna från GitHub med följande steg:
Branch
Välj knappen- Gå till fliken
Tags
- Välj version
- Kontrollera SDK-versionen genom att
Experimentbegränsning
Om du har över 100 automatiserade ML-experiment kan det leda till att nya automatiserade ML-experiment har långa körningstider.
Nedladdningsfel för VNet-brandväggsinställning
Om du är under virtuella nätverk (VNets) kan du stöta på modellnedladdningsfel när du använder AutoML NLP. Detta beror på att nätverkstrafiken blockeras från att ladda ned modeller och tokenizers från Azure CDN. Om du vill avblockera detta tillåter du att du listar url:erna nedan i inställningen "Programregler" i brandväggsprincipen för det virtuella nätverket:
aka.ms
https://automlresources-prod.azureedge.net
Följ anvisningarna här för att konfigurera brandväggsinställningarna.
Instruktioner för att konfigurera arbetsyta under vnet finns här.