Dela 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 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över pandas == 0.25.1 du och scikit-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över pandas == 0.23.4 du och sckit-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 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 Linux-distributionen. I Ubuntu använder du till exempel kommandot sudo apt-get install build-essential.

      2. 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 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 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.
    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 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.
  • workspace.from_config misslyckas:

    Om anropet ws = Workspace.from_config() misslyckas:

    1. Kontrollera att notebook-filen configuration.ipynb har körts.
    2. 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.
    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 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:

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

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

  2. Ange pip freeze och leta PyJWTefter , om det hittas bör den version som anges vara < 2.0.0

Om den angivna versionen inte är en version som 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 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:

  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 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:
      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. 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.

Nästa steg