Share via


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 Machine Learning SDK.

Versionsberoenden

AutoML beroenden till nyare paketversioner bryter kompatibiliteten. Efter SDK version 1.13.0 läses modeller inte in i äldre SDK:er på grund av inkompatibilitet mellan de äldre versionerna som har fästs i tidigare AutoML paket och de nyare versionerna som fästs i dag.

Förvänta dig fel som:

  • Det gick inte att hitta modulen, till exempel,

    No module named 'sklearn.decomposition._truncated_svd'

  • Importfel som,

    ImportError: cannot import name 'RollingOriginValidator',

  • Attributfel som,

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

Lösningarna beror på din AutoML SDK-träningsversion:

  • Om din AutoML SDK-träningsversion är större än 1.13.0 behöver pandas == 0.25.1 du och scikit-learn==0.22.1.

    • Om det finns ett versionsmatchningsfel uppgraderar du scikit-learn och/eller Pandas till rätt version 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över pandas == 0.23.4 du och sckit-learn==0.20.3.

    • Om det finns ett versionsmatchningsfel nedgraderar du scikit-learn och/eller Pandas till rätt version med följande:

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

Installation

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 sedan pip 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 vara win-64 för Windows eller osx-64 för Mac. Om du vill kontrollera versionen använder du kommandot conda -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öra

    • Kontrollera att conda är installerat.

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

      1. Om felet gcc: error trying to exec 'cc1plus': execvp: No such file or directory uppstår installerar du GCC-kompileringsverktygen för Din Linux-distribution. I Ubuntu använder du till exempel kommandot sudo apt-get install build-essential.

      2. Skicka ett nytt namn som den första parametern till automl_setup för att skapa en ny conda-miljö. Visa befintliga conda-miljöer med conda env list och ta bort dem med conda 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

    1. Kontrollera att de utgående portarna 53 och 80 är aktiverade. På en virtuell Azure-dator kan du göra detta från Azure Portal genom att välja den virtuella datorn och klicka på Nätverk.
    2. Kör kommandot: sudo apt-get update
    3. Kör kommandot: sudo apt-get install build-essential --fix-missing
    4. Kör automl_setup_linux.sh igen
  • configuration.ipynb misslyckas:

    • För lokal conda kontrollerar du först att automl_setup har körts.
    • Kontrollera att subscription_id är korrekt. Leta reda på subscription_id i Azure Portal genom att välja Alla tjänster och sedan Prenumerationer. Tecknen "<" och ">" ska inte tas med i subscription_id värdet. Har till exempel subscription_id = "12345678-90ab-1234-5678-1234567890abcd" ett giltigt format.
    • Se till att deltagar- eller ägaråtkomst till prenumerationen.
    • Kontrollera att regionen är en av de regioner som stöds: eastus2, eastus, westcentralus, southeastasia, westeurope, australiaeast, westus2, southcentralus.
    • Kontrollera åtkomsten till regionen med hjälp av Azure Portal.
  • workspace.from_config misslyckas:

    Om anropet ws = Workspace.from_config() misslyckas:

    1. Kontrollera att notebook-filen configuration.ipynb har körts korrekt.
    2. Om anteckningsboken körs från en mapp som inte finns under mappen där 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 anteckningsboksmappen eller dess överordnade mapp.
    3. 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.
    4. Om du vill ändra regionen ändrar du arbetsytan, resursgruppen eller prenumerationen. Workspace.create skapar eller uppdaterar inte 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 inte automatiserad maskininlärning 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:

  1. Starta ett kommandogränssnitt och aktivera conda-miljön där automatiserade ML-paket installeras.
  2. Ange pip freeze och leta tensorflowefter , om den hittas bör den version som anges vara < 1.13
  3. Om den angivna versionen inte stöds pip uninstall tensorflow går 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:

  1. Starta ett kommandogränssnitt och aktivera conda-miljön där automatiserade ML-paket installeras.

  2. Ange pip freeze och leta PyJWTefter , om den hittas ska den version som anges vara < 2.0.0

Om den angivna versionen inte stöds:

  1. Överväg att uppgradera till den senaste versionen av AutoML SDK: pip install -U azureml-sdk[automl]

  2. Om det inte är möjligt avinstallerar du PyJWT från miljön och installerar rätt version på följande sätt:

    1. pip uninstall PyJWT i kommandogränssnittet och ange y för bekräftelse.
    2. Installera med pip install 'PyJWT<2.0.0'.

Dataåtkomst

För automatiserade ML-jobb måste du se till att fildatalagringen som ansluter till azurefillagringen har rätt autentiseringsuppgifter. Annars visas 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 Machine Learning-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.

Icke-synexperiment för felmeddelanden: 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 Så här konfigurerar du ett automatiserat ML-experiment med Databricks (Azure Machine Learning SDK v1).

Prognostisering av R2-poäng är alltid noll

Det här problemet uppstår om de angivna träningsdata 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.

Misslyckad distribution

För versioner <= 1.18.0 av SDK:n kan basavbildningen som skapades för distribution misslyckas med följande fel: ImportError: cannot import name cached_property from werkzeug.

Följande steg kan lösa problemet:

  1. Ladda ned modellpaketet
  2. Packa upp paketet
  3. 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 om att egenskapen, metoden eller biblioteket inte finns:

  • 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 conda-miljönamnet 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:
      1. Branch Välj knappen
      2. Gå till fliken Tags
      3. Välj version

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. Det beror på att nätverkstrafiken blockeras från att ladda ned modeller och tokeniserare från Azure CDN. Om du vill avblockera detta tillåter du att du listar url:erna nedan i inställningen "Programregler" i VNet-brandväggsprincipen:

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

Följ anvisningarna här för att konfigurera brandväggsinställningarna.

Instruktioner för att konfigurera arbetsytan under vnet finns här.

Nästa steg