Share via


Python'da otomatik ML denemelerinin sorunlarını giderme

ŞUNLAR IÇIN GEÇERLIDIR:Python SDK azureml v1

Bu kılavuzda, Azure Machine Learning SDK'sı ile otomatik makine öğrenmesi denemelerinizdeki bilinen sorunları tanımlamayı ve çözmeyi öğreneceksiniz.

Sürüm bağımlılıkları

AutoML yeni paket sürümlerine bağımlılıklar uyumluluğu bozar. SDK 1.13.0 sürümünden sonra, önceki paketlerde sabitlenen eski sürümlerle bugün sabitlenen daha yeni sürümler arasındaki uyumsuzluk nedeniyle modeller eski AutoML SDK'lara yüklenmez.

Şunlar gibi hatalar bekleyebilirsiniz:

  • Modül, gibi hatalar bulunamadı,

    No module named 'sklearn.decomposition._truncated_svd'

  • gibi içeri aktarma hataları

    ImportError: cannot import name 'RollingOriginValidator',

  • Gibi öznitelik hataları,

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

Çözümler SDK eğitim sürümünüze AutoML bağlıdır:

  • SDK eğitim sürümünüz AutoML 1.13.0'dan büyükse ve scikit-learn==0.22.1gerekirpandas == 0.25.1.

    • Sürüm uyuşmazlığı varsa scikit-learn ve/veya pandas'ı aşağıdakilerle doğru sürüme yükseltin.

          pip install --upgrade pandas==0.25.1
          pip install --upgrade scikit-learn==0.22.1
      
  • SDK eğitim sürümünüz AutoML 1.12.0'dan küçük veya buna eşitse ve sckit-learn==0.20.3gerekirpandas == 0.23.4.

    • Sürüm uyuşmazlığı varsa scikit-learn ve/veya pandas'ı aşağıdakilerle doğru sürüme düşürebilirsiniz.

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

Kurulum

AutoML sürüm 1.0.76'dan bu yana yapılan paket değişiklikleri, yeni sürüme güncelleştirmeden önce önceki sürümün kaldırılmasını gerektirir.

  • ImportError: cannot import name AutoMLConfig

    v1.0.76'dan önceki bir SDK sürümünden v1.0.76 veya sonraki bir sürüme yükselttikten sonra bu hatayla karşılaşırsanız, şunu çalıştırarak hatayı düzeltin: pip uninstall azureml-train automl ve sonra pip install azureml-train-automl. automl_setup.cmd betiği bunu otomatik olarak yapar.

  • automl_setup başarısız oluyor

    • Windows'da anaconda isteminden automl_setup çalıştırın. Miniconda'yı yükleyin.

    • Conda 64 bit sürüm 4.4.10 veya üzerinin yüklü olduğundan emin olun. Komutuyla biti conda info de deleyebilirsiniz. , platform Windows veya osx-64 Mac için olmalıdırwin-64. Sürümü denetlemek için komutunu conda -Vkullanın. Önceki bir sürümünü yüklediyseniz, komutunu kullanarak bu sürümü güncelleştirebilirsiniz: conda update conda. Çalıştırarak 32 bit'i denetlemek için

    • Conda'nın yüklü olduğundan emin olun.

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

      1. Hatayla gcc: error trying to exec 'cc1plus': execvp: No such file or directory karşılaşırsanız Linux dağıtımınız için GCC derleme araçlarını yükleyin. Örneğin Ubuntu'da komutunu sudo apt-get install build-essentialkullanın.

      2. Yeni bir conda ortamı oluşturmak için automl_setup ilk parametre olarak yeni bir ad geçirin. kullanarak conda env list mevcut conda ortamlarını görüntüleyin ve ile conda env remove -n <environmentname>kaldırın.

  • automl_setup_linux.sh başarısız oluyor: Ubuntu Linux'ta automl_setup_linus.sh şu hatayla başarısız oluyorsa: unable to execute 'gcc': No such file or directory

    1. 53 ve 80 giden bağlantı noktalarının etkinleştirildiğinden emin olun. Azure sanal makinesinde bunu vm'yi seçip Ağ'a tıklayarak Azure portal yapabilirsiniz.
    2. Komutunu çalıştırın: sudo apt-get update
    3. Komutunu çalıştırın: sudo apt-get install build-essential --fix-missing
    4. Yeniden çalıştır automl_setup_linux.sh
  • configuration.ipynb başarısız oluyor:

    • Yerel conda için önce başarıyla çalıştığından automl_setup emin olun.
    • subscription_id doğru olduğundan emin olun. Tüm Hizmetler'i ve ardından Abonelikler'i seçerek Azure portal subscription_id bulun. "" ve "<>" karakterleri subscription_id değerine dahil edilmemelidir. Örneğin, subscription_id = "12345678-90ab-1234-5678-1234567890abcd" geçerli biçime sahiptir.
    • Aboneliğe Katkıda Bulunan veya Sahip erişimi olduğundan emin olun.
    • Bölgenin desteklenen bölgelerden biri olup olmadığını denetleyin: , , , , southeastasia, westeurope, australiaeast, westus2, southcentralus. westcentraluseastuseastus2
    • Azure portal kullanarak bölgeye erişim sağlayın.
  • workspace.from_config başarısız oluyor:

    Çağrı ws = Workspace.from_config() başarısız olursa:

    1. configuration.ipynb not defterinin başarıyla çalıştığından emin olun.
    2. Not defteri çalıştırıldığı klasörün altında olmayan bir klasörden configuration.ipynb çalıştırılıyorsa, aml_config klasörünü ve içerdiği config.json dosyasını yeni klasöre kopyalayın. Workspace.from_config not defteri klasörünün veya üst klasörünün config.json dosyasını okur.
    3. Yeni bir abonelik, kaynak grubu, çalışma alanı veya bölge kullanılıyorsa, not defterini yeniden çalıştırdığınızdan configuration.ipynb emin olun. config.json dosyasının doğrudan değiştirilmesi yalnızca çalışma alanı belirtilen abonelik altında belirtilen kaynak grubunda zaten varsa çalışır.
    4. Bölgeyi değiştirmek istiyorsanız çalışma alanını, kaynak grubunu veya aboneliği değiştirin. Workspace.create , belirtilen bölge farklı olsa bile zaten varsa çalışma alanı oluşturmaz veya güncelleştirmez.

TensorFlow

SDK'nın 1.5.0 sürümünden itibaren otomatik makine öğrenmesi, TensorFlow modellerini varsayılan olarak yüklemez. TensorFlow'u yüklemek ve otomatik ML denemelerinizle birlikte kullanmak için aracılığıyla CondaDependenciesyükleyintensorflow==1.12.0.

  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 hataları

  • import numpy windows'da başarısız oluyor: Bazı Windows ortamlarında en son Python sürümü 3.6.8 ile numpy yüklenirken hata oluştu. Bu sorunu görürseniz Python sürüm 3.6.7'yi deneyin.

  • import numpy başarısız oluyor: Otomatik ml conda ortamında TensorFlow sürümünü denetleyin. Desteklenen sürümler 1.13'lerdir < . Sürüm = 1.13 ise >TensorFlow'u ortamdan kaldırın.

TensorFlow sürümünü denetleyebilir ve aşağıdaki gibi kaldırabilirsiniz:

  1. Bir komut kabuğu başlatın, otomatik ml paketlerinin yüklü olduğu conda ortamını etkinleştirin.
  2. değerini girin pip freeze ve bulunup bulunmadığına bakıntensorflow, listelenen sürüm 1.13 olmalıdır <
  3. Listelenen sürüm desteklenen bir sürüm değilse, pip uninstall tensorflow komut kabuğuna onay için y girin.

jwt.exceptions.DecodeError

Tam hata iletisi: jwt.exceptions.DecodeError: It is required that you pass in a value for the "algorithms" argument when calling decode().

SDK sürümleri <= 1.17.0 için yükleme, PyJWT'nin desteklenmeyen bir sürümüne neden olabilir. Otomatik ml conda ortamındaki PyJWT sürümünün desteklenen bir sürüm olup olmadığını denetleyin. Bu, PyJWT sürüm < 2.0.0'dır.

PyJWT sürümünü aşağıdaki gibi denetleyebilirsiniz:

  1. Bir komut kabuğu başlatın ve otomatik ML paketlerinin yüklü olduğu conda ortamını etkinleştirin.

  2. değerini girin pip freeze ve bulunup bulunmadığına bakınPyJWT, listelenen sürüm 2.0.0 olmalıdır <

Listelenen sürüm desteklenen bir sürüm değilse:

  1. AutoML SDK'sının en son sürümüne yükseltmeyi göz önünde bulundurun: pip install -U azureml-sdk[automl]

  2. Bu uygun değilse PyJWT'yi ortamdan kaldırın ve aşağıdaki gibi doğru sürümü yükleyin:

    1. pip uninstall PyJWT yazın ve onay için girin y .
    2. kullanarak pip install 'PyJWT<2.0.0'yükleyin.

Veri erişimi

Otomatik ML işleri için AzureFile depolamanıza bağlanan dosya veri deposunun uygun kimlik doğrulama kimlik bilgilerine sahip olduğundan emin olmanız gerekir. Aksi takdirde, aşağıdaki ileti sonuç verir. Veri erişim kimlik doğrulaması kimlik bilgilerinizi güncelleştirmeyi öğrenin.

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

Veri şeması

Azure Machine Learning stüdyosu düzenle ve gönder düğmesiyle yeni bir otomatik ML denemesi oluşturmaya çalıştığınızda, yeni denemenin veri şeması özgün denemede kullanılan verilerin şemasıyla eşleşmelidir. Aksi takdirde, aşağıdaki sonuçlara benzer bir hata iletisi görüntülenir. Studio kullanıcı arabiriminden denemeleri düzenleme ve gönderme hakkında daha fazla bilgi edinin.

Görüntü işleme olmayan denemelerde hata iletisi: Schema mismatch error: (an) additional column(s): "Column1: String, Column2: String, Column3: String", (a) missing column(s)

Görüntü işleme veri kümeleri için hata iletisi: 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

Bkz. Databricks ile otomatik ML denemesini yapılandırma (Azure Machine Learning SDK v1).

R2 puanının her zaman sıfır olduğunu tahmin etme

Bu sorun, sağlanan eğitim verilerinin son n_cv_splits + forecasting_horizon veri noktaları için aynı değeri içeren zaman serisine sahip olması durumunda ortaya çıkar.

Zaman serinizde bu desen bekleniyorsa, birincil ölçümünüzü normalleştirilmiş kök ortalama kare hatasına geçirebilirsiniz.

Başarısız dağıtım

SDK'nın = 1.18.0 sürümleri <için dağıtım için oluşturulan temel görüntü şu hatayla başarısız olabilir: ImportError: cannot import name cached_property from werkzeug.

Aşağıdaki adımlar sorunu geçici olarak giderebilir:

  1. Model paketini indirme
  2. Paketin sıkıştırmasını açma
  3. Sıkıştırması açılmış varlıkları kullanarak dağıtma

uygulamayı Azure İşlevleri

Otomatik ML şu anda Azure İşlevleri uygulamalarını desteklememektedir.

Örnek not defteri hataları

Örnek not defteri özellik, yöntem veya kitaplık mevcut değil hatasıyla başarısız olursa:

  • Jupyter Notebook doğru çekirdeğin seçildiğinden emin olun. Çekirdek, not defteri sayfasının sağ üst kısmında görüntülenir. Varsayılan değer azure_automl. Çekirdek, not defterinin bir parçası olarak kaydedilir. Yeni bir conda ortamına geçerseniz, not defterinde yeni çekirdeği seçmeniz gerekir.

    • Azure Notebooks için python 3.6 olmalıdır.
    • Yerel conda ortamları için, automl_setup belirttiğiniz conda ortamı adı olmalıdır.
  • Not defterinin kullandığınız SDK sürümüne yönelik olduğundan emin olmak için

    • Jupyter Notebook bir hücrede yürüterek azureml.core.VERSION SDK sürümünü denetleyin.
    • Aşağıdaki adımları izleyerek github'dan örnek not defterlerinin önceki sürümünü indirebilirsiniz:
      1. Düğmeyi Branch seçin
      2. Sekmeye Tags gitme
      3. Sürümü seçin

Deneme azaltma

100'den fazla otomatik ML denemeniz varsa, bu durum yeni otomatik ML denemelerinin uzun çalışma sürelerine neden olabilir.

Sanal Ağ Güvenlik Duvarı Ayarı İndirme Hatası

Sanal ağlar (VNet) altındaysanız, AutoML NLP kullanırken model indirme hatalarıyla karşılaşabilirsiniz. Bunun nedeni ağ trafiğinin Azure CDN'den modelleri ve belirteç oluşturucuları indirmesinin engellenmesidir. Bunun engelini kaldırmak için lütfen sanal ağ güvenlik duvarı ilkesinin "Uygulama kuralları" ayarında aşağıdaki URL'leri listeleyin:

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

Güvenlik duvarı ayarlarını yapılandırmak için lütfen buradaki yönergeleri izleyin.

Çalışma alanını sanal ağ altında yapılandırma yönergelerine buradan ulaşabilirsiniz.

Sonraki adımlar