Pilih preferensi cookie Anda

Kami menggunakan cookie penting serta alat serupa yang diperlukan untuk menyediakan situs dan layanan. Kami menggunakan cookie performa untuk mengumpulkan statistik anonim sehingga kami dapat memahami cara pelanggan menggunakan situs dan melakukan perbaikan. Cookie penting tidak dapat dinonaktifkan, tetapi Anda dapat mengklik “Kustom” atau “Tolak” untuk menolak cookie performa.

Jika Anda setuju, AWS dan pihak ketiga yang disetujui juga akan menggunakan cookie untuk menyediakan fitur situs yang berguna, mengingat preferensi Anda, dan menampilkan konten yang relevan, termasuk iklan yang relevan. Untuk menerima atau menolak semua cookie yang tidak penting, klik “Terima” atau “Tolak”. Untuk membuat pilihan yang lebih detail, klik “Kustomisasi”.

Cara mengonfigurasi inferensi machine learning menggunakan AWS Management Console - AWS IoT Greengrass

AWS IoT Greengrass Version 1 memasuki fase umur panjang pada 30 Juni 2023. Untuk informasi selengkapnya, lihat kebijakan AWS IoT Greengrass V1 pemeliharaan. Setelah tanggal ini, tidak AWS IoT Greengrass V1 akan merilis pembaruan yang menyediakan fitur, penyempurnaan, perbaikan bug, atau patch keamanan. Perangkat yang berjalan AWS IoT Greengrass V1 tidak akan terganggu dan akan terus beroperasi dan terhubung ke cloud. Kami sangat menyarankan Anda bermigrasi ke AWS IoT Greengrass Version 2, yang menambahkan fitur baru yang signifikan dan dukungan untuk platform tambahan.

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

AWS IoT Greengrass Version 1 memasuki fase umur panjang pada 30 Juni 2023. Untuk informasi selengkapnya, lihat kebijakan AWS IoT Greengrass V1 pemeliharaan. Setelah tanggal ini, tidak AWS IoT Greengrass V1 akan merilis pembaruan yang menyediakan fitur, penyempurnaan, perbaikan bug, atau patch keamanan. Perangkat yang berjalan AWS IoT Greengrass V1 tidak akan terganggu dan akan terus beroperasi dan terhubung ke cloud. Kami sangat menyarankan Anda bermigrasi ke AWS IoT Greengrass Version 2, yang menambahkan fitur baru yang signifikan dan dukungan untuk platform tambahan.

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

Cara mengonfigurasi inferensi machine learning menggunakan AWS Management Console

Untuk mengikuti langkah-langkah dalam tutorial ini, Anda memerlukan AWS IoT Greengrass Core v1.10 atau yang lebih baru.

Anda dapat melakukan machine learning (ML) inferensi lokal pada perangkat core Greengrass menggunakan data yang dihasilkan secara lokal. Untuk informasi, termasuk persyaratan dan kendala, lihat Tampilkan inferensi machine learning.

Tutorial ini menjelaskan cara menggunakan grup Greengrass AWS Management Console untuk menjalankan aplikasi inferensi Lambda yang mengenali gambar dari kamera secara lokal, tanpa mengirim data ke cloud. Aplikasi inferensi mengakses modul kamera pada Raspberry Pi dan menjalankan inferensi menggunakan model open source. SqueezeNet

Tutorial ini berisi langkah-langkah tingkat tinggi berikut:

Prasyarat

Untuk menyelesaikan tutorial ini, Anda memerlukan:

catatan

Tutorial ini menggunakan Raspberry Pi, tetapi AWS IoT Greengrass mendukung platform lain, seperti Intel Atom dan NVIDIA Jetson TX2. Dalam contoh untuk Jetson TX2, Anda dapat menggunakan gambar statis alih-alih gambar yang dialirkan dari kamera. Jika menggunakan TX2 contoh Jetson, Anda mungkin perlu menginstal Python 3.6 alih-alih Python 3.7. Untuk informasi tentang mengonfigurasi perangkat Anda sehingga Anda dapat menginstal perangkat lunak AWS IoT Greengrass Core, lihatMengatur perangkat lain.

Untuk platform pihak ketiga yang AWS IoT Greengrass tidak mendukung, Anda harus menjalankan fungsi Lambda Anda dalam mode non-kontainer. Untuk menjalankan dalam mode nonkontainerisasi, Anda harus menjalankan fungsi Lambda Anda sebagai root. Untuk informasi selengkapnya, silakan lihat Pertimbangan ketika memilih fungsi Lambda kontainerisasi dan Mengatur identitas akses default untuk fungsi Lambda dalam grup.

Langkah 1: Mengonfigurasi Pi Raspberry

Pada langkah ini, instal pembaruan untuk sistem operasi Raspbian, instal perangkat lunak modul kamera dan Python dependensi, dan mengaktifkan antarmuka kamera.

Jalankan perintah berikut di terminal Raspberry Pi Anda.

  1. Menginstal pembaruan untuk Raspbian.

    sudo apt-get update sudo apt-get dist-upgrade
  2. Instal antarmuka picamera untuk modul kamera dan pustaka Python lain yang diperlukan untuk tutorial ini.

    sudo apt-get install -y python3-dev python3-setuptools python3-pip python3-picamera

    Memvalidasi instalasi:

    • Pastikan bahwa instalasi Python 3.7 anda termasuk pip.

      python3 -m pip

      Jika pip tidak terpasang, unduh dari Situs web pip tersebut, kemudian jalankan perintah berikut.

      python3 get-pip.py
    • Pastikan bahwa versi Python Anda adalah 3.7 atau lebih tinggi.

      python3 --version

      Jika output mencantumkan versi sebelumnya, jalankan perintah berikut.

      sudo apt-get install -y python3.7-dev
    • Pastikan bahwa Setuptools dan Picamera berhasil diinstal.

      sudo -u ggc_user bash -c 'python3 -c "import setuptools"' sudo -u ggc_user bash -c 'python3 -c "import picamera"'

      Jika output tidak mengandung error, validasi berhasil.

    catatan

    Jika Python yang dapat dieksekusi diinstal pada perangkat anda adalah python3.7, gunakan python3.7 daripada python3 untuk perintah di tutorial ini. Pastikan bahwa instalasi pip Anda memetakan versi python3.7 atau python3 yang tepat untuk menghindari kesalahan dependensi.

  3. Reboot Raspberry Pi.

    sudo reboot
  4. Buka alat konfigurasi Raspberry Pi.

    sudo raspi-config
  5. Gunakan tombol panah untuk membuka Opsi Antarmuka dan mengaktifkan antarmuka kamera. Jika diminta, izinkan perangkat melakukan reboot.

  6. Gunakan perintah berikut untuk menguji pengaturan kamera.

    raspistill -v -o test.jpg

    Hal ini akan membuka jendela pratinjau pada Raspberry Pi, menyimpan gambar bernama test.jpg ke direktori Anda saat ini, dan menampilkan informasi tentang kamera di terminal Raspberry Pi.

Langkah 2: Instal MXNet kerangka kerja

Pada langkah ini, instal MXNet pustaka di Raspberry Pi Anda.

  1. Masuk ke Raspberry Pi Anda dari jarak jauh.

    ssh pi@your-device-ip-address
  2. Buka MXNet dokumentasi, buka Instalasi MXNet, dan ikuti instruksi untuk menginstal MXNet pada perangkat.

    catatan

    Kami merekomendasikan menginstal versi 1.5.0 dan membangun MXNet dari sumber untuk tutorial ini untuk menghindari konflik perangkat.

  3. Setelah Anda menginstal MXNet, validasi konfigurasi berikut:

    • Pastikan akun ggc_user sistem dapat menggunakan MXNet kerangka kerja.

      sudo -u ggc_user bash -c 'python3 -c "import mxnet"'
    • Pastikan NumPy sudah terpasang.

      sudo -u ggc_user bash -c 'python3 -c "import numpy"'

Langkah 3: Buat paket MXNet model

Pada langkah ini, buat paket model yang berisi contoh MXNet model terlatih untuk diunggah ke Amazon Simple Storage Service (Amazon S3). AWS IoT Greengrass dapat menggunakan paket model dari Amazon S3, asalkan Anda menggunakan format tar.gz atau zip.

  1. Di komputer Anda, unduh MXNet sampel untuk Raspberry Pi dariSampel machine learning.

  2. Unzip file mxnet-py3-armv7l.tar.gz yang diunduh.

  3. Buka direktori squeezenet tersebut.

    cd path-to-downloaded-sample/mxnet-py3-armv7l/models/squeezenet

    File squeezenet.zip dalam direktori ini adalah paket model Anda. Ini berisi artefak model SqueezeNet open source untuk model klasifikasi gambar. Kemudian, Anda mengunggah paket model ini ke Amazon S3.

Langkah 4: Buat dan publikasikan Fungsi Lambda

Pada langkah ini, buat paket deployment fungsi Lambda dan fungsi Lambda. Kemudian, publikasikan versi fungsi dan buat alias.

Pertama, buat paket deployment fungsi Lambda.

  1. Di komputer Anda, navigasikan ke direktori examples dalam paket contoh yang Anda unzip di Langkah 3: Buat paket MXNet model.

    cd path-to-downloaded-sample/mxnet-py3-armv7l/examples

    Direktori examples berisi kode fungsi dan dependensi.

    • greengrassObjectClassification.py adalah kode inferensi yang digunakan dalam tutorial ini. Anda dapat menggunakan kode ini sebagai templat untuk membuat fungsi inferensi Anda sendiri.

    • greengrasssdk adalah versi 1.5.0 dari AWS IoT Greengrass Core SDK for Python.

      catatan

      Jika versi baru tersedia, Anda dapat mengunduh dan membarui versi SDK dalam paket deployment Anda. Untuk informasi selengkapnya, lihat AWS IoT Greengrass Core SDK for GitHub Python.

  2. Kompres isi examples ke dalam sebuah file bernama greengrassObjectClassification.zip. Ini paket deployment Anda.

    zip -r greengrassObjectClassification.zip .
    catatan

    Pastikan .py dan dependensi berada di root direktori.

     

    Selanjutnya, Buat fungsi Lambda.

  3. Dari AWS IoT konsol, pilih Fungsi dan Buat fungsi.

  4. Pilih Tulis dari awal dan gunakan nilaiinilai berikut untuk membuat fungsi Anda:

    • Untuk Nama fungsi, masukkan greengrassObjectClassification.

    • Untuk Waktu pengoperasian, pilih Python 3.7.

    Untuk Izin, pertahankan pengaturan default. Hal ini menciptakan peran eksekusi yang memberikan izin Lambda basic. Peran ini tidak digunakan oleh AWS IoT Greengrass.

  5. Pilih Buat fungsi.

     

    Sekarang, unggah paket deployment fungsi Lambda Anda dan daftarkan handler.

  6. Pilih fungsi Lambda Anda dan unggah paket penerapan fungsi Lambda Anda.

    1. Pada tab Kode ini, di bawah Sumber kode, pilih Unggah dari. Dari dropdown, pilih file .zip.

      Unggah dari dropdown dengan file .zip disorot.
    2. Pilih Unggah, lalu pilih paket deployment greengrassObjectClassification.zip Anda. Lalu, pilih Simpan.

    3. Pada tab Kode fungsi, di bawah Pengaturan waktu aktif, pilih Edit, dan kemudian masukkan nilai-nilai berikut.

      • Untuk waktu aktif, pilih Python 3.7.

      • Untuk Handler, masukkan greengrassObjectClassification.function_handler.

      Pilih Simpan.

    Berikutnya, mempublikasikan versi pertama fungsi Lambda Anda. Kemudian, buat alias untuk versi.

    catatan

    Grup Greengrass dapat mereferensi fungsi Lambda dengan alias (direkomendasikan) atau dengan versi. Menggunakan alias membuatnya lebih mudah untuk mengelola pembaruan kode karena Anda tidak perlu mengubah tabel langganan atau definisi grup ketika kode fungsi diperbarui. Sebaliknya, Anda hanya mengarahkan alias ke versi fungsi baru.

  7. Dari menu Tindakan tersebut, pilih Publikasikan versi baru.

    Opsi Publikasikan versi baru di menu Tindakan.
  8. Untuk Versi Deskripsi, masukkan First version, lalu pilih Publikasikan.

  9. Pada halaman konfigurasi greengrassObjectClassification: 1, dari menu Tindakan, pilih Buat alias.

    Opsi Buat alias di menu Tindakan.
  10. Pada halaman Buat alias baru tersebut, gunakan nilai-nilai berikut:

    • Untuk Nama, masukkan mlTest.

    • Untuk UID, masukkan 1.

    catatan

    AWS IoT Greengrass tidak mendukung alias Lambda untuk versi $LATEST.

  11. Pilih Simpan.

     

    Sekarang, tambahkan fungsi Lambda ke grup Greengrass Anda.

Langkah 5: Tambahkan fungsi Lambda ke grup Greengrass

Pada langkah ini, menambahkan fungsi Lambda ke grup dan kemudian mengonfigurasi siklus hidup dan lingkungan variabel.

Pertama, tambahkan fungsi Lambda ke grup Greengrass Anda.

  1. Di panel navigasi AWS IoT konsol, di bawah Kelola, perluas perangkat Greengrass, lalu pilih Grup (V1).

  2. Dari halaman konfigurasi grup, pilih tab fungsi Lambda.

  3. Di bawah bagian Fungsi Lambda Saya, pilih Tambah.

  4. Untuk fungsi Lambda, pilih. greengrassObjectClassification

  5. Untuk versi fungsi Lambda, pilih alias:MLTest.

     

    Selanjutnya, konfigurasikan variabel siklus hidup dan lingkungan dari fungsi Lambda.

  6. Pada bagian konfigurasi fungsi Lambda, buat pembaruan berikut.

    catatan

    Kami merekomendasikan Anda menjalankan fungsi Lambda Anda tanpa kontainerisasi kecuali kasus bisnis Anda memerlukannya. Hal ini membantu mengaktifkan akses ke perangkat GPU dan kamera Anda tanpa mengonfigurasi sumber daya perangkat. Jika Anda menjalankan tanpa containerization, Anda juga harus memberikan akses root ke fungsi Lambda AWS IoT Greengrass Anda.

    1. Untuk berjalan tanpa kontainerisasi:

    2. Untuk menjalankan dalam mode kontainer sebagai gantinya:

      catatan

      Kami tidak merekomendasikan untuk dijalankan dalam mode kontainer kecuali jika kasus bisnis Anda memerlukannya.

      • Untuk pengguna dan grup Sistem, pilih Gunakan grup default.

      • Untuk kontainerisasi fungsi Lambda, pilih Gunakan default grup.

      • Untuk Batas memori, masukkan 96 MB.

      • Untuk Timeout, masukkan 10 seconds.

      • Untuk Pinned, pilih True.

        Untuk informasi selengkapnya, lihat Konfigurasi siklus hidup untuk fungsi Greengrass Lambda.

  7. Di bawah Lingkungan variabel, buat pasangan kunci-nilai. Pasangan kunci-nilai diperlukan oleh fungsi yang berinteraksi dengan MXNet model pada Raspberry Pi.

    Untuk kuncinya, gunakan MXNET_ENGINE_TYPE. Untuk nilainya, gunakan NaiveEngine.

    catatan

    Dalam fungsi Lambda yang ditetapkan pengguna milik Anda, Anda secara opsional dapat mengatur variabel lingkungan dalam kode fungsi Anda.

  8. Simpan nilai default untuk semua properti lainnya dan pilih Tambahkan fungsi Lambda.

Langkah 6: Tambahkan sumber daya ke grup Greengrass

Pada langkah ini, membuat sumber daya untuk modul kamera dan model inferensi ML dan afiliasi sumber daya dengan fungsi Lambda. Hal ini memungkinkan fungsi Lambda untuk mengakses sumber daya pada perangkat core.

catatan

Jika Anda menjalankan dalam mode non-kontainer, AWS IoT Greengrass dapat mengakses GPU dan kamera perangkat Anda tanpa mengonfigurasi sumber daya perangkat ini.

Pertama, buat dua sumber daya perangkat lokal untuk kamera: satu untuk memori berbagi dan satu untuk antarmuka perangkat. Untuk informasi lebih lanjut tentang akses sumber daya lokal, lihat Akses sumber daya lokal dengan fungsi dan konektor Lambda.

  1. Pada halaman konfigurasi grup, pilih tab Sumber Daya.

  2. Di bagian Sumber daya lokal, pilih Tambahkan sumber daya lokal.

  3. Pada halaman Tambahkan sumber daya lokal, gunakan nilai berikut:

    • Untuk Nama sumber daya, masukkan videoCoreSharedMemory.

    • Untuk Jenis sumber daya, pilih Perangkat.

    • Untuk jalur perangkat lokal, masukkan/dev/vcsm.

      Jalur perangkat adalah jalur absolut lokal sumber daya perangkat. Jalur ini hanya dapat merujuk ke perangkat karakter atau memblokir perangkat di bawah /dev.

    • Untuk pemilik grup sistem dan izin akses file, pilih Secara otomatis menambahkan izin sistem file dari grup sistem yang memiliki sumber daya.

      Opsi pemilik grup sistem dan izin akses file memungkinkan Anda memberikan izin akses file tambahan ke proses Lambda. Untuk informasi selengkapnya, lihat Izin akses file pemilik grup.

  4. Selanjutnya, Anda menambahkan sumber daya perangkat lokal untuk antarmuka kamera.

  5. Pilih Tambahkan sumber daya lokal.

  6. Pada halaman Tambahkan sumber daya lokal, gunakan nilai berikut:

    • Untuk Nama sumber daya, masukkan videoCoreInterface.

    • Untuk Jenis sumber daya, pilih Perangkat.

    • Untuk jalur perangkat lokal, masukkan/dev/vchiq.

    • Untuk pemilik grup sistem dan izin akses file, pilih Secara otomatis menambahkan izin sistem file dari grup sistem yang memiliki sumber daya.

  7. Di bagian bawah halaman, pilih Tambahkan sumber daya.

 

Sekarang, tambahkan model inferensi sebagai sumber daya machine learning. Langkah ini mencakup mengunggah paket model squeezenet.zip ke Amazon S3.

  1. Pada tab Sumber Daya untuk grup Anda, di bagian Machine Learning, pilih Tambahkan sumber pembelajaran mesin.

  2. Pada halaman Tambahkan sumber daya pembelajaran mesin, untuk nama Sumber Daya, masukkansqueezenet_model.

  3. Untuk sumber Model, pilih Gunakan model yang disimpan di S3, seperti model yang dioptimalkan melalui Deep Learning Compiler.

  4. Untuk URI S3, masukkan jalur tempat bucket S3 disimpan.

  5. Pilih Jelajahi S3. Ini membuka tab baru ke konsol Amazon S3.

  6. Pada konsol Amazon S3, unggah file squeezenet.zip ke bucket S3. Untuk selengkapnya, lihat Bagaimana cara mengunggah file dan folder ke Bucket S3? di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon.

    catatan

    Agar bucket S3 dapat diakses, nama bucket Anda harus berisi string greengrass dan bucket harus berada di wilayah yang sama dengan yang Anda gunakan pada AWS IoT Greengrass. Pilih nama yang unik (seperti greengrass-bucket-user-id-epoch-time). Jangan gunakan periode (.) dalam nama bucket.

  7. Pada tab AWS IoT Greengrass konsol, cari dan pilih bucket S3 Anda. Temukan file squeezenet.zip yang Anda unggah, dan pilih Pilihan. Anda mungkin harus memilih Refresh untuk memperbarui daftar bucket dan file yang tersedia.

  8. Untuk Jalur tujuan, masukkan /greengrass-machine-learning/mxnet/squeezenet.

    Hal ini adalah tujuan untuk model lokal di Lambda waktu aktif namespace. Saat Anda menyebarkan grup, AWS IoT Greengrass mengambil paket model sumber dan kemudian mengekstrak konten ke direktori yang ditentukan. Contoh fungsi Lambda untuk tutorial ini sudah dikonfigurasi untuk menggunakan jalur ini (dalam variabel model_path tersebut).

  9. Di bawah Pemilik grup sistem dan izin akses file, pilih Tidak ada grup sistem.

  10. Pilih Tambahkan sumber daya.

Menggunakan model terlatih SageMaker AI

Tutorial ini menggunakan model yang disimpan di Amazon S3, tetapi Anda juga dapat dengan mudah menggunakan model SageMaker AI. AWS IoT Greengrass Konsol ini memiliki integrasi SageMaker AI bawaan, jadi Anda tidak perlu mengunggah model ini secara manual ke Amazon S3. Untuk persyaratan dan batasan penggunaan model SageMaker AI, lihatSumber model yang didukung.

Untuk menggunakan model SageMaker AI:

  • Untuk sumber Model, pilih Gunakan model yang dilatih dalam AWS SageMaker AI, lalu pilih nama pekerjaan pelatihan model.

  • Untuk jalur Tujuan, masukkan jalur ke direktori tempat fungsi Lambda Anda mencari model.

Langkah 7: Menambahkan langganan ke grup Greengrass

Pada langkah ini, tambahkan langganan ke grup. Langganan ini memungkinkan fungsi Lambda untuk mengirim hasil prediksi AWS IoT dengan menerbitkan ke topik MQTT.

  1. Pada halaman konfigurasi grup, pilih tab Langganan, lalu pilih Tambah Langganan.

  2. Pada halaman Detail langganan, konfigurasikan sumber dan target, sebagai berikut:

    1. Di tipe Sumber, pilih fungsi Lambda, lalu pilih. greengrassObjectClassification

    2. Di Jenis target, pilih Layanan, lalu pilih IoT Cloud.

  3. Di Filter topikhello/world, masukkan, lalu pilih Buat langganan.

Langkah 8: Men-deploy grup Greengrass

Pada langkah ini, men-deploy versi definisi grup untuk perangkat core Greengrass. Definisi berisi fungsi Lambda, sumber daya, dan konfigurasi langganan yang ditambahkan.

  1. Pastikan AWS IoT Greengrass inti berjalan. Jalankan perintah berikut di terminal Raspberry Pi Anda, sesuai kebutuhan.

    1. Untuk memeriksa apakah daemon sedang berjalan:

      ps aux | grep -E 'greengrass.*daemon'

      Jika outputnya berisi entri root untuk /greengrass/ggc/packages/1.11.6/bin/daemon, maka daemon sedang berjalan.

      catatan

      Versi di jalur tergantung pada versi perangkat lunak AWS IoT Greengrass Core yang diinstal pada perangkat inti Anda.

    2. Untuk memulai daemon:

      cd /greengrass/ggc/core/ sudo ./greengrassd start
  2. Pada halaman konfigurasi grup, pilih Deploy.

    Halaman grup dengan deployment dan Deploy disorot.
  3. Di tab Fungsi Lambda, di bawah bagian Fungsi Lambda Sistem, pilih detektor IP dan pilih Edit.

  4. Dalam kotak dialog Edit pengaturan detektor IP, pilih Secara otomatis mendeteksi dan mengganti titik akhir broker MQTT.

  5. Pilih Simpan.

    Hal ini mengaktifkan perangkat untuk secara otomatis memperoleh informasi konektivitas untuk core, seperti alamat IP, DNS, dan nomor port. Deteksi otomatis direkomendasikan, tetapi AWS IoT Greengrass juga mendukung titik akhir yang ditentukan secara manual. Anda hanya diminta untuk metode penemuan pertama kalinya bahwa grup di-deploy.

    catatan

    Jika diminta, berikan izin untuk membuat peran layanan Greengrass dan kaitkan dengan peran layanan Anda saat ini. Akun AWS Wilayah AWS Peran ini memungkinkan AWS IoT Greengrass untuk mengakses sumber daya Anda dalam AWS layanan.

    Halaman Deployment menampilkan timestamp deployment, ID versi, dan status. Setelah selesai, status yang ditampilkan untuk penerapan harus Selesai.

    Untuk informasi lebih lanjut tentang deployment, lihat Menyebarkan AWS IoT Greengrass grup ke inti AWS IoT Greengrass. Untuk bantuan penyelesaian masalah, lihat Pemecahan masalah AWS IoT Greengrass.

Langkah 9: Tes aplikasi inferensi

Sekarang Anda dapat memverifikasi apakah deployment dikonfigurasi dengan benar. Untuk menguji, Anda berlangganan topik hello/world dan melihat hasil prediksi yang diterbitkan oleh fungsi Lambda.

catatan

Jika monitor terpasang ke Raspberry Pi, umpan kamera aktif ditampilkan pada jendela pratinjau.

  1. Di AWS IoT konsol, di bawah Uji, pilih klien pengujian MQTT.

  2. Untuk Berlangganan, gunakan nilai-nilai berikut:

    • Untuk topik berlangganan, gunakan hello/world.

    • Di bawah Konfigurasi tambahan, untuk tampilan payload MQTT, pilih Display payloads sebagai string.

  3. Pilih Langganan.

    Jika tes berhasil, pesan dari fungsi Lambda muncul di bagian bawah halaman. Setiap pesan berisi lima hasil prediksi dari citra, menggunakan format: probabilitas, ID kelas diprediksi, dan nama kelas yang sesuai.

    Halaman Langganan menampilkan hasil tes dengan data pesan.

Memecahkan masalah inferensi AWS IoT Greengrass ML

Jika tes tidak berhasil, Anda dapat mencoba langkah-langkah penyelesaian masalah berikut. Jalankan perintah di terminal Raspberry Pi Anda.

Periksa catatan error

  1. Beralih ke pengguna root dan arahkan ke direktori log tersebut. Akses ke AWS IoT Greengrass log memerlukan izin root.

    sudo su cd /greengrass/ggc/var/log
  2. Di direktori system tersebut, periksa runtime.log atau python_runtime.log.

    Di direktori user/region/account-id tersebut, periksa greengrassObjectClassification.log.

    Untuk informasi selengkapnya, lihat Pemecahan masalah dengan catatan.

Membongkar kesalahan di runtime.log

Jika runtime.log berisi error yang mirip dengan berikut ini, pastikan bahwa paket model sumber tar.gz Anda memiliki direktori induk.

Greengrass deployment error: unable to download the artifact model-arn: Error while processing. Error while unpacking the file from /tmp/greengrass/artifacts/model-arn/path to /greengrass/ggc/deployment/path/model-arn, error: open /greengrass/ggc/deployment/path/model-arn/squeezenet/squeezenet_v1.1-0000.params: no such file or directory

Jika paket Anda tidak memiliki direktori induk yang berisi file model, gunakan perintah berikut untuk repackage model tersebut:

tar -zcvf model.tar.gz ./model

Sebagai contoh:

─$ tar -zcvf test.tar.gz ./test ./test ./test/some.file ./test/some.file2 ./test/some.file3
catatan

Jangan sertakan trailing karakter /* dalam perintah ini.

 

Verifikasi bahwa fungsi Lambda berhasil di-deploy

  1. Daftar isi dari Lambda di-deploy di direktori /lambda tersebut. Mengganti nilai placeholder sebelum Anda menjalankan perintah.

    cd /greengrass/ggc/deployment/lambda/arn:aws:lambda:region:account:function:function-name:function-version ls -la
  2. Verifikasi bahwa direktori berisi konten yang sama sebagai paket deployment greengrassObjectClassification.zip yang Anda unggah di Langkah 4: Buat dan publikasikan Fungsi Lambda.

    Pastikan bahwa file .py dan dependensi berada di root direktori.

 

Verifikasi bahwa model inferensi berhasil di-deploy

  1. Cari nomor identifikasi proses (PID) dari proses waktu aktif Lambda:

    ps aux | grep 'lambda-function-name*'

    Pada output, PID muncul di kolom kedua baris untuk proses waktu aktif Lambda.

  2. Masukkan namespace waktu aktif Lambda. Pastikan untuk mengganti pid nilai placeholder sebelum Anda menjalankan perintah.

    catatan

    Direktori ini dan isinya berada di namespace waktu aktif Lambda, sehingga mereka tidak terlihat dalam namespace Linux biasa.

    sudo nsenter -t pid -m /bin/bash
  3. Daftar isi dari direktori lokal yang Anda tentukan untuk sumber daya ML.

    cd /greengrass-machine-learning/mxnet/squeezenet/ ls -ls

    Anda akan melihat file berikut ini:

    32 -rw-r--r-- 1 ggc_user ggc_group   31675 Nov 18 15:19 synset.txt 32 -rw-r--r-- 1 ggc_user ggc_group   28707 Nov 18 15:19 squeezenet_v1.1-symbol.json 4832 -rw-r--r-- 1 ggc_user ggc_group 4945062 Nov 18 15:19 squeezenet_v1.1-0000.params

Langkah selanjutnya

Selanjutnya, jelajahi aplikasi inferensi lainnya. AWS IoT Greengrass menyediakan fungsi Lambda lain yang dapat Anda gunakan untuk mencoba inferensi lokal. Anda dapat menemukan contoh paket di folder pustaka precompiled yang Anda unduh di Langkah 2: Instal MXNet kerangka kerja.

Mengonfigurasi Intel Atom

Untuk menjalankan tutorial ini pada perangkat Intel Atom, Anda harus memberikan citra sumber, Mengonfigurasi fungsi Lambda, dan menambahkan sumber daya perangkat lokal lain. Untuk menggunakan GPU sebagai inferensi, pastikan perangkat lunak berikut diinstal pada perangkat Anda:

  • OpenCL versi 1.0 atau yang lebih baru

  • Python 3.7 dan pip

    catatan

    Jika perangkat Anda termasuk prebuilt dengan Python 3.6, Anda dapat membuat symlink ke Python 3.7 sebagai gantinya. Untuk informasi selengkapnya, lihat Tahap 2.

  • NumPy

  • OpenCV pada Roda

  1. Unduh citra PNG atau JPG statis untuk fungsi Lambda yang akan digunakan untuk klasifikasi citra. Contoh tersebut bekerja paling baik dengan file citra kecil.

    Simpan file citra Anda di direktori yang memuat file greengrassObjectClassification.py (atau dalam subdirektori dari direktori ini). Hal ini ada dalam paket deployment fungsi Lambda yang Anda unggah di Langkah 4: Buat dan publikasikan Fungsi Lambda.

    catatan

    Jika Anda menggunakan AWS DeepLens, Anda dapat menggunakan kamera onboard atau memasang kamera Anda sendiri untuk melakukan inferensi pada gambar yang diambil, bukan gambar statis. Namun, kami sangat merekomendasikan Anda mulai dengan citra statis terlebih dahulu.

    Jika Anda menggunakan kamera, pastikan bahwa paket awscam APT diinstal dan diperbarui. Untuk informasi lebih lanjut, lihat Perbarui perangkat AWS DeepLens Anda pada AWS DeepLens Panduan Developer.

  2. Edit konfigurasi fungsi Lambda. Ikuti prosedur di Langkah 5: Tambahkan fungsi Lambda ke grup Greengrass.

    catatan

    Kami merekomendasikan Anda menjalankan fungsi Lambda Anda tanpa kontainerisasi kecuali kasus bisnis Anda memerlukannya. Hal ini membantu mengaktifkan akses ke perangkat GPU dan kamera Anda tanpa mengonfigurasi sumber daya perangkat. Jika Anda menjalankan tanpa containerization, Anda juga harus memberikan akses root ke fungsi Lambda AWS IoT Greengrass Anda.

    1. Untuk berjalan tanpa kontainerisasi:

      • Untuk pengguna dan grup Sistem, pilihAnother user ID/group ID. Untuk ID pengguna Sistem, masukkan0. Untuk ID grup Sistem, masukkan0.

        Hal ini memungkinkan fungsi Lambda Anda untuk berjalan sebagai root. Untuk informasi lebih lanjut untuk menjalankan sebagai root, lihat Mengatur identitas akses default untuk fungsi Lambda dalam grup.

        Tip

        Anda juga harus memperbarui file config.json untuk memberikan akses root ke fungsi Lambda Anda. Untuk prosedur ini, lihat Menjalankan fungsi Lambda sebagai root.

      • Untuk kontainerisasi fungsi Lambda, pilih No container.

        Untuk informasi lebih lanjut untuk berjalan tanpa konainerisasi, lihat Pertimbangan ketika memilih fungsi Lambda kontainerisasi.

      • Perbarui nilai Timeout menjadi 5 detik. Hal ini memastikan bahwa permintaan tidak timeout terlalu cepat. Dibutuhkan beberapa menit setelah pengaturan untuk menjalankan inferensi.

      • Di bawah Pinned, pilih True.

      • Di bawah Parameter Tambahan, untuk akses Baca ke direktori /sys, pilih Diaktifkan.

      • Untuk Siklus hidup Lambda, pilih Jadikan fungsi ini berumur panjang dan biarkan berjalan tanpa batas.

    2. Untuk menjalankan dalam mode kontainer sebagai gantinya:

      catatan

      Kami tidak merekomendasikan untuk dijalankan dalam mode kontainer kecuali jika kasus bisnis Anda memerlukannya.

      • Perbarui nilai Timeout menjadi 5 detik. Hal ini memastikan bahwa permintaan tidak timeout terlalu cepat. Dibutuhkan beberapa menit setelah pengaturan untuk menjalankan inferensi.

      • Untuk Pinned, pilih True.

      • Di bawah Parameter Tambahan, untuk akses Baca ke direktori /sys, pilih Diaktifkan.

  3. Jika berjalan dalam mode kontainerisasi, tambahkan sumber daya perangkat lokal yang diperlukan untuk memberikan akses ke GPU perangkat Anda.

    catatan

    Jika Anda menjalankan dalam mode non-kontainer, AWS IoT Greengrass dapat mengakses GPU perangkat Anda tanpa mengonfigurasi sumber daya perangkat.

    1. Pada halaman konfigurasi grup, pilih tab Sumber Daya.

    2. Pilih Tambahkan sumber daya lokal.

    3. Mendefinisikan sumber daya:

      • Untuk Nama sumber daya, masukkan renderD128.

      • Untuk jenis sumber daya, pilih Perangkat lokal.

      • Untuk Jalur perangkat, masukkan /dev/dri/renderD128.

      • Untuk pemilik grup sistem dan izin akses file, pilih Secara otomatis menambahkan izin sistem file dari grup sistem yang memiliki sumber daya.

      • Untuk Afiliasi fungsi Lambda, berikan Akses baca dan tulis pada fungsi Lambda Anda.

Mengkonfigurasi NVIDIA Jetson TX2

Untuk menjalankan tutorial ini pada NVIDIA Jetson TX2, berikan gambar sumber dan konfigurasikan fungsi Lambda. Jika menggunakan GPU, Anda juga harus menambahkan sumber daya perangkat lokal.

  1. Pastikan perangkat Jetson Anda dikonfigurasi sehingga Anda dapat menginstal perangkat lunak AWS IoT Greengrass Core. Untuk informasi lebih lanjut tentang konfigurasi perangkat Anda, lihat Mengatur perangkat lain.

  2. Buka MXNet dokumentasi, buka Instalasi MXNet di Jetson, dan ikuti petunjuk untuk menginstal MXNet di perangkat Jetson.

    catatan

    Jika Anda ingin membangun MXNet dari sumber, ikuti petunjuk untuk membangun pustaka bersama. Edit pengaturan berikut di config.mk file Anda agar berfungsi dengan perangkat Jetson TX2 :

    • Tambahkan -gencode arch=compute-62, code=sm_62 ke pengaturan CUDA_ARCH tersebut.

    • Hidupkan CUDA.

      USE_CUDA = 1
  3. Unduh citra PNG atau JPG statis untuk fungsi Lambda yang akan digunakan untuk klasifikasi citra. Aplikasi ini bekerja paling baik dengan file citra kecil. Atau, Anda dapat menyetel kamera melalui forum Jetson untuk menangkap citra sumber.

    Simpan file citra Anda di direktori yang memuat file greengrassObjectClassification.py tersebut. Anda juga dapat menyimpannya dalam subdirektori di direktori ini. Direktori ini ada dalam paket deployment fungsi Lambda yang Anda unggah di Langkah 4: Buat dan publikasikan Fungsi Lambda.

  4. Buat symlink dari Python 3.7 ke Python 3.6 untuk menggunakan Python 3 dengan. AWS IoT Greengrass Jalankan perintah berikut untuk menemukan instalasi Python Anda:

    which python3

    Jalankan perintah berikut untuk membuat symlink:

    sudo ln -s path-to-python-3.6/python3.6 path-to-python-3.7/python3.7

    Reboot perangkat.

  5. Pastikan akun ggc_user sistem dapat menggunakan MXNet kerangka kerja:

    “sudo -u ggc_user bash -c 'python3 -c "import mxnet"'
  6. Edit konfigurasi fungsi Lambda. Ikuti prosedur di Langkah 5: Tambahkan fungsi Lambda ke grup Greengrass.

    catatan

    Kami merekomendasikan Anda menjalankan fungsi Lambda Anda tanpa kontainerisasi kecuali kasus bisnis Anda memerlukannya. Hal ini membantu mengaktifkan akses ke perangkat GPU dan kamera Anda tanpa mengonfigurasi sumber daya perangkat. Jika Anda menjalankan tanpa containerization, Anda juga harus memberikan akses root ke fungsi Lambda AWS IoT Greengrass Anda.

    1. Untuk berjalan tanpa kontainerisasi:

      • Untuk pengguna dan grup Sistem, pilihAnother user ID/group ID. Untuk ID pengguna Sistem, masukkan0. Untuk ID grup Sistem, masukkan0.

        Hal ini memungkinkan fungsi Lambda Anda untuk berjalan sebagai root. Untuk informasi lebih lanjut untuk menjalankan sebagai root, lihat Mengatur identitas akses default untuk fungsi Lambda dalam grup.

        Tip

        Anda juga harus memperbarui file config.json untuk memberikan akses root ke fungsi Lambda Anda. Untuk prosedur ini, lihat Menjalankan fungsi Lambda sebagai root.

      • Untuk kontainerisasi fungsi Lambda, pilih No container.

        Untuk informasi lebih lanjut untuk berjalan tanpa konainerisasi, lihat Pertimbangan ketika memilih fungsi Lambda kontainerisasi.

      • Di bawah Parameter Tambahan, untuk akses Baca ke direktori /sys, pilih Diaktifkan.

      • Di bawah Variabel lingkungan, tambahkan pasangan nilai kunci berikut untuk fungsi Lambda Anda. Ini mengkonfigurasi AWS IoT Greengrass untuk menggunakan MXNet kerangka kerja.

        Kunci

        Nilai

        PATH

        /usr/local/cuda/bin: $ JALAN

        MXNET_HOME

        $ rumah/mxnet/

        PYTHONPATH

        $mxnet_HOME/Python: $PYTHONPATH

        CUDA_HOME

        /usr/local/cuda

        LD_LIBRARY_PATH

        $ LD_LIBRARY_PATH: $ {CUDA_HOME} /lib64

    2. Untuk menjalankan dalam mode kontainer sebagai gantinya:

      catatan

      Kami tidak merekomendasikan untuk dijalankan dalam mode kontainer kecuali jika kasus bisnis Anda memerlukannya.

      • Meningkatkan nilai Batas memori tersebut. Gunakan 500 MB untuk CPU, atau setidaknya 2000 MB untuk GPU.

      • Di bawah Parameter Tambahan, untuk akses Baca ke direktori /sys, pilih Diaktifkan.

      • Di bawah Variabel lingkungan, tambahkan pasangan nilai kunci berikut untuk fungsi Lambda Anda. Ini mengkonfigurasi AWS IoT Greengrass untuk menggunakan MXNet kerangka kerja.

        Kunci

        Nilai

        PATH

        /usr/local/cuda/bin: $ JALAN

        MXNET_HOME

        $ rumah/mxnet/

        PYTHONPATH

        $mxnet_HOME/Python: $PYTHONPATH

        CUDA_HOME

        /usr/local/cuda

        LD_LIBRARY_PATH

        $ LD_LIBRARY_PATH: $ {CUDA_HOME} /lib64

  7. Jika berjalan dalam mode kontainerisasi, tambahkan sumber daya perangkat lokal berikut untuk memberikan akses ke GPU perangkat Anda. Ikuti prosedur di Langkah 6: Tambahkan sumber daya ke grup Greengrass.

    catatan

    Jika Anda menjalankan dalam mode non-kontainer, AWS IoT Greengrass dapat mengakses GPU perangkat Anda tanpa mengonfigurasi sumber daya perangkat.

    Untuk setiap sumber daya:

    • Untuk Jenis sumber daya, pilih Perangkat.

    • Untuk pemilik grup sistem dan izin akses file, pilih Secara otomatis menambahkan izin sistem file dari grup sistem yang memiliki sumber daya.

       

      Nama

      Jalur perangkat

      nvhost-ctrl

      /dev/nvhost-ctrl

      nvhost-gpu

      /dev/nvhost-gpu

      nvhost-ctrl-gpu

      /dev/ nvhost-ctrl-gpu

      nvhost-dbg-gpu

      /dev/ nvhost-dbg-gpu

      nvhost-prof-gpu

      /dev/ nvhost-prof-gpu

      nvmap

      /dev/nvmap

      nvhost-vic

      /dev/nvhost-vic

      tegra_dc_ctrl

      /dev/tegra_dc_ctrl

  8. Jika berjalan dalam mode kontainerisasi, tambahkan sumber daya volume lokal berikut untuk memberikan akses ke kamera perangkat Anda. Ikuti prosedur di Langkah 6: Tambahkan sumber daya ke grup Greengrass.

    catatan

    Jika Anda menjalankan dalam mode non-kontainer, AWS IoT Greengrass dapat mengakses kamera perangkat Anda tanpa mengonfigurasi sumber daya volume.

    • Untuk Jenis sumber daya, pilih Volume.

    • Untuk pemilik grup sistem dan izin akses file, pilih Secara otomatis menambahkan izin sistem file dari grup sistem yang memiliki sumber daya.

       

      Nama

      Jalur sumber

      Jalur tujuan

      shm

      /dev/shm

      /dev/shm

      tmp

      /tmp

      /tmp

PrivasiSyarat situsPreferensi cookie
© 2025, Amazon Web Services, Inc. atau afiliasinya. Semua hak dilindungi undang-undang.