Menyelesaikan masalah inferensi machine learning - AWS IoT Greengrass

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menyelesaikan masalah inferensi machine learning

Gunakan informasi pemecahan masalah dan solusi di bagian ini untuk membantu menyelesaikan masalah dengan komponen machine learning Anda. Untuk komponen inferensi pembelajaran mesin publik, lihat pesan kesalahan di log komponen berikut:

Linux or Unix
  • /greengrass/v2/logs/aws.greengrass.DLRImageClassification.log

  • /greengrass/v2/logs/aws.greengrass.DLRObjectDetection.log

  • /greengrass/v2/logs/aws.greengrass.TensorFlowLiteImageClassification.log

  • /greengrass/v2/logs/aws.greengrass.TensorFlowLiteObjectDetection.log

Windows
  • C:\greengrass\v2\logs\aws.greengrass.DLRImageClassification.log

  • C:\greengrass\v2\logs\aws.greengrass.DLRObjectDetection.log

  • C:\greengrass\v2\logs\aws.greengrass.TensorFlowLiteImageClassification.log

  • C:\greengrass\v2\logs\aws.greengrass.TensorFlowLiteObjectDetection.log

Jika komponen diinstal dengan benar, maka log komponen akan berisi lokasi pustaka yang digunakannya untuk inferensi.

Gagal mengambil pustaka

Kesalahan berikut terjadi ketika skrip penginstal gagal mengunduh pustaka yang diperlukan selama penerapan pada perangkat Raspberry Pi.

Err:2 http://raspbian.raspberrypi.org/raspbian buster/main armhf python3.7-dev armhf 3.7.3-2+deb10u1 404 Not Found [IP: 93.93.128.193 80] E: Failed to fetch http://raspbian.raspberrypi.org/raspbian/pool/main/p/python3.7/libpython3.7-dev_3.7.3-2+deb10u1_armhf.deb 404 Not Found [IP: 93.93.128.193 80]

Jalankan sudo apt-get update dan deploy komponen Anda lagi.

Cannot open shared object file

Anda mungkin melihat kesalahan yang mirip dengan berikut ini ketika skrip penginstal gagal mengunduh dependensi yang diperlukan untuk opencv-python selama deployment pada perangkat Raspberry Pi.

ImportError: libopenjp2.so.7: cannot open shared object file: No such file or directory

Jalankan perintah berikut untuk secara manual menginstal dependensi untuk opencv-python:

sudo apt-get install libopenjp2-7 libilmbase23 libopenexr-dev libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libgtk-3-0 libwebp-dev

Error: ModuleNotFoundError: No module named '<library>'

Anda mungkin melihat kesalahan ini di log komponen runtime HTML (variant.DLR.logatauvariant.TensorFlowLite.log) saat pustaka runtime HTML atau dependensinya tidak diinstal dengan benar. Kesalahan ini dapat terjadi dalam kasus-kasus berikut:

  • Jika Anda menggunakan UseInstaller opsi, yang diaktifkan secara default, kesalahan ini menunjukkan bahwa komponen runtime HTML gagal menginstal runtime atau dependensinya. Lakukan hal-hal berikut:

    1. Konfigurasikan komponen runtime ML untuk menonaktifkan UseInstaller opsi.

    2. Instal runtime ML dan dependensinya, dan buat mereka tersedia untuk pengguna sistem yang menjalankan komponen ML. Untuk informasi selengkapnya, lihat hal berikut:

  • Jika Anda tidak menggunakan UseInstaller opsi, kesalahan ini menunjukkan bahwa runtime HTML atau dependensinya tidak diinstal untuk pengguna sistem yang menjalankan komponen ML. Lakukan hal-hal berikut:

    1. Periksa apakah pustaka diinstal untuk pengguna sistem yang menjalankan komponen ML. Ganti ggc_user dengan nama pengguna sistem, dan ganti tflite_runtime dengan nama perpustakaan untuk diperiksa.

      Linux or Unix
      sudo -H -u ggc_user bash -c "python3 -c 'import tflite_runtime'"
      Windows
      runas /user:ggc_user "py -3 -c \"import tflite_runtime\""
    2. Jika pustaka tidak diinstal, instal untuk pengguna itu. Ganti ggc_user dengan nama pengguna sistem, dan ganti tflite_runtime dengan nama pustaka.

      Linux or Unix
      sudo -H -u ggc_user bash -c "python3 -m pip install --user tflite_runtime"
      Windows
      runas /user:ggc_user "py -3 -m pip install --user tflite_runtime"

      Untuk informasi selengkapnya tentang dependensi untuk setiap runtime ML, lihat berikut ini:

    3. Jika masalah berlanjut, instal pustaka untuk pengguna lain untuk mengonfirmasi apakah perangkat ini dapat menginstal pustaka. Pengguna dapat berupa, misalnya, pengguna Anda, pengguna root, atau pengguna administrator. Jika Anda tidak berhasil menginstal pustaka untuk pengguna mana pun, perangkat Anda mungkin tidak mendukung pustaka. Konsultasikan dokumentasi perpustakaan untuk meninjau persyaratan dan memecahkan masalah penginstalan.

Tidak ada perangkat berkemampuan CUDA yang terdeteksi

Anda mungkin melihat kesalahan berikut saat menggunakan akselerasi GPU. Jalankan perintah berikut untuk mengaktifkan akses GPU untuk pengguna Greengrass.

sudo usermod -a -G video ggc_user

Tidak ada file atau direktori seperti itu

Kesalahan berikut menunjukkan bahwa komponen waktu aktif tidak dapat mengatur lingkungan virtual dengan benar:

  • MLRootPath/greengrass_ml_dlr_conda/bin/conda: No such file or directory

  • MLRootPath/greengrass_ml_dlr_venv/bin/activate: No such file or directory

  • MLRootPath/greengrass_ml_tflite_conda/bin/conda: No such file or directory

  • MLRootPath/greengrass_ml_tflite_venv/bin/activate: No such file or directory

Periksa log untuk memastikan bahwa semua waktu aktif dependensi diinstal dengan benar. Untuk informasi selengkapnya tentang pustaka yang diinstal oleh skrip penginstal, lihat topik berikut ini:

Secara default, ML RootPath diatur ke/greengrass/v2/work/component-name/greengrass_ml. Untuk mengubah lokasi ini, sertakan Runtime DLR atau komponen waktu aktif TensorFlow Runtime ringan secara langsung dalam deployment Anda, dan tentukan nilai yang diubah untuk parameter MLRootPath dalam pembaruan gabungan konfigurasi. Untuk informasi lebih lanjut tentang mengonfigurasi komponen, lihat Perbarui konfigurasi komponen.

catatan

Untuk komponen DLR v1.3.x, Anda mengatur parameter MLRootPath dalam konfigurasi komponen inferensi, dan nilai defaultnya adalah $HOME/greengrass_ml.

RuntimeError: module compiled against API version 0xf but this version of NumPy is <version>

Anda mungkin melihat kesalahan berikut saat menjalankan inferensi pembelajaran mesin pada Raspberry Pi yang menjalankan Raspberry Pi OS Bullseye.

RuntimeError: module compiled against API version 0xf but this version of numpy is 0xd ImportError: numpy.core.multiarray failed to import

Kesalahan ini terjadi karena Raspberry Pi OS Bullseye menyertakan versi sebelumnya NumPy dari versi yang dibutuhkan OpenCV. Untuk memperbaiki masalah ini, jalankan perintah berikut untuk meningkatkan NumPy ke versi terbaru.

pip3 install --upgrade numpy

picamera.exc.PiCameraError: Camera is not enabled

Anda mungkin melihat kesalahan berikut saat menjalankan inferensi pembelajaran mesin pada Raspberry Pi yang menjalankan Raspberry Pi OS Bullseye.

picamera.exc.PiCameraError: Camera is not enabled. Try running 'sudo raspi-config' and ensure that the camera has been enabled.

Kesalahan ini terjadi karena Raspberry Pi OS Bullseye menyertakan tumpukan kamera baru yang tidak kompatibel dengan komponen ML. Untuk memperbaiki masalah ini, aktifkan tumpukan kamera lama.

Untuk mengaktifkan tumpukan kamera lama
  1. Jalankan perintah berikut untuk membuka alat konfigurasi Raspberry Pi.

    sudo raspi-config
  2. Pilih Opsi Antarmuka.

  3. Pilih Kamera lama untuk mengaktifkan tumpukan kamera lama.

  4. Reboot Raspberry Pi.

Kesalahan memori

Kesalahan berikut biasanya terjadi ketika perangkat tidak memiliki cukup memori dan proses komponen terganggu.

  • stderr. Killed.

  • exitCode=137

Kami merekomendasikan minimal 500 MB memori untuk men-deploy komponen inferensi machine learning.

Kesalahan ruang disk

Kesalahan no space left on device biasanya terjadi ketika sebuah klaster tidak memiliki penyimpanan yang cukup. Pastikan bahwa ada cukup ruang disk yang tersedia di perangkat Anda sebelum Anda menyebarkan komponen lagi. Kami merekomendasikan minimal 500 MB memori untuk men-deploy komponen inferensi machine learning publik.

Batas waktu mengalami kesalahan

Komponen machine learning publik mengunduh file model machine learning besar yang lebih besar dari 200 MB. Jika waktu download habis saat deployment, periksa kecepatan koneksi internet Anda dan coba lagi lakukan deployment.