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 vescikit-learn==0.22.1
gerekirpandas == 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 vesckit-learn==0.20.3
gerekirpandas == 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 sonrapip 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 veyaosx-64
Mac için olmalıdırwin-64
. Sürümü denetlemek için komutunuconda -V
kullanı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çinConda'nın yüklü olduğundan emin olun.
Linux-
gcc: error trying to exec 'cc1plus'
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 komutunusudo apt-get install build-essential
kullanın.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 ileconda 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
- 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.
- Komutunu çalıştırın:
sudo apt-get update
- Komutunu çalıştırın:
sudo apt-get install build-essential --fix-missing
- 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
.westcentralus
eastus
eastus2
- Azure portal kullanarak bölgeye erişim sağlayın.
- Yerel conda için önce başarıyla çalıştığından
workspace.from_config başarısız oluyor:
Çağrı
ws = Workspace.from_config()
başarısız olursa:- configuration.ipynb not defterinin başarıyla çalıştığından emin olun.
- 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. - 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. - 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 CondaDependencies
yü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:
- Bir komut kabuğu başlatın, otomatik ml paketlerinin yüklü olduğu conda ortamını etkinleştirin.
- değerini girin
pip freeze
ve bulunup bulunmadığına bakıntensorflow
, listelenen sürüm 1.13 olmalıdır < - 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:
Bir komut kabuğu başlatın ve otomatik ML paketlerinin yüklü olduğu conda ortamını etkinleştirin.
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:
AutoML SDK'sının en son sürümüne yükseltmeyi göz önünde bulundurun:
pip install -U azureml-sdk[automl]
Bu uygun değilse PyJWT'yi ortamdan kaldırın ve aşağıdaki gibi doğru sürümü yükleyin:
pip uninstall PyJWT
yazın ve onay için giriny
.- 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:
- Model paketini indirme
- Paketin sıkıştırmasını açma
- 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:
- Düğmeyi
Branch
seçin - Sekmeye
Tags
gitme - Sürümü seçin
- Düğmeyi
- Jupyter Notebook bir hücrede yürüterek
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
Otomatik makine öğrenmesi ile regresyon modelini eğitme veya uzak bir kaynakta Otomatik makine öğrenmesi kullanarak eğitme hakkında daha fazla bilgi edinin.
Modelin nasıl ve nereye dağıtılacağı hakkında daha fazla bilgi edinin.