Memecahkan masalah eksperimen ML otomatis dengan Python
BERLAKU UNTUK:Python SDK azureml v1
Dalam panduan ini, pelajari cara mengidentifikasi dan mengatasi masalah yang diketahui dalam eksperimen pembelajaran mesin otomatis Anda dengan Azure Machine Learning SDK.
Dependensi versi
AutoML
dependensi ke versi paket yang lebih baru memutus kompatibilitas. Setelah SDK versi 1.13.0, model tidak dimuat dalam SDK yang lebih lama karena ketidakcocokan antara versi lama yang disematkan dalam paket sebelumnya AutoML
, dan versi yang lebih baru disematkan hari ini.
Mengharapkan kesalahan seperti:
Modul tidak menemukan kesalahan seperti,
No module named 'sklearn.decomposition._truncated_svd'
Kesalahan impor seperti,
ImportError: cannot import name 'RollingOriginValidator'
,Kesalahan atribut seperti,
AttributeError: 'SimpleImputer' object has no attribute 'add_indicator'
Resolusi bergantung pada versi AutoML
pelatihan SDK Anda:
Jika versi
AutoML
pelatihan SDK Anda lebih besar dari 1.13.0, Anda perlupandas == 0.25.1
danscikit-learn==0.22.1
.Jika ada versi yang tidak cocok, tingkatkan scikit-learn dan/atau pandas untuk memperbaiki versi dengan yang berikut ini,
pip install --upgrade pandas==0.25.1 pip install --upgrade scikit-learn==0.22.1
Jika versi
AutoML
pelatihan SDK Anda kurang dari atau sama dengan 1.12.0, Anda perlupandas == 0.23.4
dansckit-learn==0.20.3
.Jika ada versi yang tidak cocok, turunkan versi scikit-learn dan/atau pandas untuk memperbaiki versi dengan yang berikut,
pip install --upgrade pandas==0.23.4 pip install --upgrade scikit-learn==0.20.3
Siapkan
AutoML
perubahan paket sejak versi 1.0.76 mengharuskan versi sebelumnya dihapus sebelum diperbarui ke versi baru.
ImportError: cannot import name AutoMLConfig
Jika Anda mengalami kesalahan ini setelah memutakhirkan dari versi SDK sebelum v1.0.76 ke v1.0.76 atau yang lebih baru, atasi kesalahan dengan menjalankan:
pip uninstall azureml-train automl
dan lalupip install azureml-train-automl
. Skrip automl_setup cmd melakukan ini secara otomatis.automl_setup gagal
Pada Windows, jalankan automl_setup dari Prompt Anaconda. Pasang Miniconda.
Pastikan bahwa conda versi 4.4.10 64-bit atau yang lebih baru telah dipasang. Anda dapat memeriksa bit dengan
conda info
perintah. Seharusnyaplatform
untuk Windows atauwin-64
osx-64
untuk Mac. Untuk memeriksa versi, gunakan perintahconda -V
. Jika Anda memiliki versi sebelumnya yang terpasang, Anda dapat memperbaruinya dengan menggunakan perintah:conda update conda
. Untuk memeriksa 32-bit dengan menjalankanPastikan bahwa conda telah terpasang.
Linux -
gcc: error trying to exec 'cc1plus'
Jika
gcc: error trying to exec 'cc1plus': execvp: No such file or directory
kesalahan ditemui, pasang alat build GCC untuk distribusi Linux Anda. Misalnya, di Ubuntu, gunakan perintahsudo apt-get install build-essential
.Berikan nama baru sebagai parameter pertama yang automl_setup untuk membuat lingkungan conda baru. Lihat lingkungan conda yang ada menggunakan
conda env list
dan hapus denganconda env remove -n <environmentname>
.
automl_setup_linux.sh gagal: automl_setup_linus.sh gagal di Ubuntu Linux dengan kesalahan:
unable to execute 'gcc': No such file or directory
- Pastikan bahwa port keluar 53 dan 80 diaktifkan. Pada mesin virtual Azure, Anda dapat melakukan ini dari portal Microsoft Azure dengan memilih VM dan mengeklik Jaringan.
- Jalankan perintah:
sudo apt-get update
- Jalankan perintah:
sudo apt-get install build-essential --fix-missing
- Jalankan
automl_setup_linux.sh
lagi
configuration.ipynb gagal:
- Untuk konda lokal, pertama-tama pastikan
automl_setup
yang telah berhasil berjalan. - Pastikan bahwa subscription_id sudah benar. Temukan subscription_id di portal Microsoft Azure dengan memilih Semua Layanan lalu Langganan. Karakter "<" and ">" tidak boleh disertakan dalam nilai subscription_id. Misalnya,
subscription_id = "12345678-90ab-1234-5678-1234567890abcd"
memiliki format yang valid. - Pastikan kontributor atau pemilik mengakses langganan.
- Periksa apakah wilayah tersebut adalah salah satu wilayah yang didukung:
eastus2
,eastus
,westcentralus
,southeastasia
,westeurope
,australiaeast
,westus2
,southcentralus
. - Pastikan akses ke wilayah tersebut menggunakan portal Microsoft Azure.
- Untuk konda lokal, pertama-tama pastikan
workspace.from_config gagal:
Jika panggilan
ws = Workspace.from_config()
gagal:- Pastikan bahwa notebook configuration.ipynb berhasil dijalankan.
- Jika buku catatan sedang dijalankan dari folder yang tidak berada di bawah folder tempat
configuration.ipynb
dijalankan, salin folder aml_config dan file config.jsyang dikandungnya ke folder baru. Workspace.from_config membaca config.json untuk folder buku catatan atau folder induknya. - Jika langganan baru, grup sumber daya, ruang kerja, atau kawasan, sedang digunakan, pastikan Anda menjalankan buku
configuration.ipynb
catatan lagi. Mengubah config.jssecara langsung hanya akan berfungsi jika ruang kerja sudah ada di grup sumber daya yang ditentukan di bawah langganan yang ditentukan. - Jika Anda ingin mengubah kawasan, ubah ruang kerja, grup sumber daya, atau langganan.
Workspace.create
tidak akan membuat atau memperbarui ruang kerja jika sudah ada, meskipun wilayah yang ditentukan berbeda.
TensorFlow
Pada versi 1.5.0 dari SDK, pembelajaran mesin otomatis tidak memasang model TensorFlow secara default. Untuk memasang TensorFlow dan menggunakannya dengan eksperimen ML otomatis Anda, pasang tensorflow==1.12.0
melalui 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'])
Kegagalan numpy
import numpy
gagal di Windows: Beberapa lingkungan Windows melihat kesalahan memuat numpy dengan Python versi terbaru 3.6.8. Jika Anda melihat masalah ini, coba dengan Python versi 3.6.7.import numpy
gagal: Periksa versi TensorFlow di lingkungan ml conda otomatis. Versi yang didukung adalah < 1.13. Hapus instalan TensorFlow dari lingkungan jika versinya adalah >= 1.13.
Anda dapat memeriksa versi TensorFlow dan menghapus pemasangan sebagai berikut:
- Mulai shell perintah, aktifkan lingkungan conda tempat paket ml otomatis dipasang.
- Masukkan
pip freeze
dan caritensorflow
, jika ditemukan, versi yang tercantum adalah < 1.13 - Jika versi yang tercantum bukan versi yang didukung,
pip uninstall tensorflow
di shell perintah dan masukkan y untuk konfirmasi.
jwt.exceptions.DecodeError
Pesan kesalahan yang tepat: jwt.exceptions.DecodeError: It is required that you pass in a value for the "algorithms" argument when calling decode()
.
Untuk versi SDK <= 1.17.0, penginstalan mungkin menghasilkan versi PyJWT yang tidak didukung. Pastikan bahwa versi PyJWT di lingkungan ml conda otomatis adalah versi yang didukung. Itu adalah versi PyJWT < 2.0.0.
Anda dapat memeriksa versi PyJWT sebagai berikut:
Mulai shell perintah dan aktifkan lingkungan conda tempat paket ML otomatis dipasang.
Masukkan
pip freeze
dan cariPyJWT
, jika ditemukan, versi yang tercantum adalah < 2.0.0
Jika versi yang tercantum bukan versi yang didukung:
Pertimbangkan untuk meningkatkan ke versi terbaru AutoML SDK:
pip install -U azureml-sdk[automl]
Jika itu tidak layak, hapus pemasangan PyJWT dari lingkungan dan pasang versi yang tepat sebagai berikut:
pip uninstall PyJWT
di shell perintah dan masukkany
untuk konfirmasi.- Memasang menggunakan
pip install 'PyJWT<2.0.0'
.
Akses data
Untuk pekerjaan ML otomatis, Anda perlu memastikan datastore file yang tersambung ke penyimpanan AzureFile Anda memiliki informasi masuk autentikasi yang sesuai. Jika tidak, hasil berikut menghasilkan. Pelajari cara memperbarui info masuk autentikasi akses data Anda.
Pesan Kesalahan: 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.
Skema data
Saat Anda mencoba membuat eksperimen ML otomatis baru melalui tombol Edit dan kirimkan di studio Azure Machine Learning, skema data untuk eksperimen baru harus cocok dengan skema data yang digunakan dalam eksperimen asli. Jika tidak, pesan kesalahan mirip dengan hasil berikut. Pelajari selengkapnya cara mengedit dan mengirimkan eksperimen dari antarmuka pengguna studio.
Eksperimen non-visi pesan kesalahan: Schema mismatch error: (an) additional column(s): "Column1: String, Column2: String, Column3: String", (a) missing column(s)
Pesan kesalahan untuk himpunan data visi: 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
Lihat Cara mengonfigurasi eksperimen ML otomatis dengan Databricks (Azure Machine Learning SDK v1).
Memperkirakan skor R2 selalu nol
Masalah ini muncul jika data pelatihan yang diberikan memiliki rangkaian waktu yang berisi nilai yang sama untuk titik n_cv_splits
+ forecasting_horizon
data terakhir.
Jika pola ini diharapkan dalam rangkaian waktu Anda, Anda dapat mengalihkan metrik utama Anda ke kesalahan kuadrat rata-rata akar yang dinormalisasi.
Penyebaran gagal
Untuk versi <= 1.18.0 SDK, citra dasar yang dibuat untuk penyebaran mungkin gagal dengan kesalahan berikut: ImportError: cannot import name cached_property from werkzeug
.
Langkah-langkah berikut ini bisa mengatasi masalah ini:
- Unduh paket model
- Unzip paketnya
- Menerapkan menggunakan aset yang belum di-zip
Aplikasi Azure Functions
ML otomatis saat ini tidak mendukung aplikasi Azure Functions.
Sampel kegagalan buku catatan
Jika sampel buku catatan gagal dengan kesalahan properti, metode, atau pustaka tersebut tidak ada:
Pastikan bahwa kernel yang benar telah dipilih di Jupyter Notebook. Kernel ditampilkan di kanan atas halaman buku catatan. Defaultnya adalah azure_automl. Kernel disimpan sebagai bagian dari buku catatan. Jika Anda beralih ke lingkungan conda baru, Anda perlu memilih kernel baru di buku catatan.
- Untuk Azure Notebooks, seharusnya Python 3.6.
- Untuk lingkungan konda lokal, itu harus menjadi nama lingkungan conda yang Anda tentukan di automl_setup.
Untuk memastikan buku catatan adalah untuk versi SDK yang Anda gunakan,
- Periksa versi SDK dengan mengeksekusi
azureml.core.VERSION
di sel Buku Catatan Jupyter. - Anda dapat mengunduh versi sebelumnya dari contoh notebook dari GitHub dengan langkah-langkah berikut:
- Pilih tombol
Branch
- Menavigasi ke
Tags
tab - Pilih versi
- Pilih tombol
- Periksa versi SDK dengan mengeksekusi
Pembatasan eksperimen
Jika Anda memiliki lebih dari 100 eksperimen ML otomatis, ini dapat menyebabkan eksperimen ML otomatis baru memiliki waktu eksekusi yang panjang.
Kegagalan Pengunduhan Pengaturan Firewall VNet
Jika Anda berada di bawah jaringan virtual (VNet), Anda mungkin mengalami kegagalan pengunduhan model saat menggunakan AutoML NLP. Ini karena lalu lintas jaringan diblokir agar tidak mengunduh model dan tokenizer dari Azure CDN. Untuk membuka blokir ini, silakan izinkan daftar URL di bawah ini dalam pengaturan "Aturan aplikasi" dari kebijakan firewall VNet:
aka.ms
https://automlresources-prod.azureedge.net
Ikuti petunjuk di sini untuk mengonfigurasi pengaturan firewall.
Instruksi untuk mengonfigurasi ruang kerja di bawah vnet tersedia di sini.
Langkah berikutnya
Pelajari lebih lanjut tentang cara melatih model regresi menggunakan pembelajaran mesin Otomatis atau cara melatih menggunakan pembelajaran mesin Otomatis pada sumber jarak jauh.
Pelajari selengkapnya cara dan tempat menerapkan model.