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.
Opsional: Mengonfigurasi perangkat Anda untuk kualifikasi ML-nya
IDT untuk AWS IoT Greengrass menyediakan tes kualifikasi machine learning (ML) untuk memvalidasi bahwa perangkat Anda dapat melakukan inferensi ML secara lokal menggunakan model cloud-trained.
Untuk menjalankan tes kualifikasi ML, Anda harus terlebih dahulu mengonfigurasi perangkat Anda seperti yang dijelaskan di Konfigurasikan perangkat Anda untuk menjalankan tes IDT. Kemudian, ikuti langkah-langkah dalam topik ini untuk menginstal dependensi untuk kerangka kerja ML yang Anda ingin jalankan.
IDT v3.1.0 atau yang lebih baru diperlukan untuk menjalankan tes untuk kualifikasi ML.
Menginstal dependensi kerangka kerja ML
Semua dependensi kerangka kerja ML harus diinstal di bawah direktori /usr/local/lib/python3.x/site-packages
ini. Untuk memastikan mereka dipasang di direktori yang benar, kami merekomendasikan Anda menggunakan sudo
izin root ketika menginstal dependensi. Lingkungan virtual tidak didukung untuk tes kualifikasi.
catatan
Jika anda sedang mengetes fungsi Lambda yang berjalan dengan kontainerisasi (di mode kontainer Greengrass ini), membuat symlink untuk perpustakaan Python di bawah /usr/local/lib/python3.x
tidak didukung. Untuk menghindari kesalahan, Anda harus menginstal dependensi di bawah direktori yang benar.
Ikuti langkah-langkah untuk menginstal dependensi untuk kerangka kerja target Anda:
Instal dependensi Apache MXNet
Tes kualifikasi IDT untuk kerangka kerja ini memiliki dependensi sebagai berikut:
-
Python 3.6 atau Python 3.7.
catatan
Jika Anda menggunakan Python 3.6, Anda harus membuat sebuah tautan simbolik dari binari Python 3.7 ke Python 3.6. Ini mengonfigurasi perangkat Anda untuk memenuhi persyaratan Python untuk AWS IoT Greengrass. Misalnya:
sudo ln -s
path-to-python-3.6
/python3.6path-to-python-3.7
/python3.7 -
Apache MXNet v1.2.1 atau yang lebih baru.
-
NumPy. Versi harus kompatibel dengan versi MXNet Anda.
Menginstal MXNet
Ikuti instruksi di dokumentasi MXNet untuk instal MXNet
catatan
Jika Python 2.x dan Python 3.x keduanya diinstal pada perangkat Anda, gunakan Python 3.x dalam perintah yang Anda jalankan untuk menginstal dependensi.
Memvalidasi instalasi MXNet
Memilih salah satu opsi berikut untuk memvalidasi instalasi MXNet.
Opsi 1: SSH ke perangkat Anda dan jalankan skrip
-
SSH ke perangkat Anda.
-
Jalankan skrip berikut untuk memverifikasi bahwa dependensi diinstal dengan benar.
sudo python3.7 -c "import mxnet; print(mxnet.__version__)"
sudo python3.7 -c "import numpy; print(numpy.__version__)"
Output mencetak nomor versi dan skrip harus keluar tanpa kesalahan.
Opsi 2: Menjalankan tes depedensi IDT
-
Pastikan bahwa
device.json
dikonfigurasi untuk kualifikasi ML. Untuk informasi selengkapnya, lihat Konfigurasikan device.json untuk kualifikasi ML. -
Jalankan tes dependensi untuk kerangka kerja.
devicetester_
[linux | mac | win_x86-64]
run-suite --group-id mldependencies --test-id mxnet_dependency_checkRingkasan tes menampilkan
PASSED
hasil untukmldependencies
.
Pasang TensorFlow dependensi
Tes kualifikasi IDT untuk kerangka kerja ini memiliki dependensi sebagai berikut:
-
Python 3.6 atau Python 3.7.
catatan
Jika Anda menggunakan Python 3.6, Anda harus membuat sebuah tautan simbolik dari binari Python 3.7 ke Python 3.6. Ini mengonfigurasi perangkat Anda untuk memenuhi persyaratan Python untuk AWS IoT Greengrass. Misalnya:
sudo ln -s
path-to-python-3.6
/python3.6path-to-python-3.7
/python3.7 -
TensorFlow 1.x.
Menginstal TensorFlow
Ikuti instruksi di TensorFlow dokumentasi untuk menginstal TensorFlow 1.xdengan pip
catatan
Jika Python 2.x dan Python 3.x keduanya diinstal pada perangkat Anda, gunakan Python 3.x dalam perintah yang Anda jalankan untuk menginstal dependensi.
Memvalidasi TensorFlow instalasi
Pilih salah satu opsi berikut untuk memvalidasi TensorFlow instalasi.
Opsi 1: SSH ke perangkat Anda dan jalankan skrip
-
SSH ke perangkat Anda.
-
Menjalankan skrip berikut untuk memverifikasi bahwa depedensi telah diinstal dengan benar.
sudo python3.7 -c "import tensorflow; print(tensorflow.__version__)"
Output mencetak nomor versi dan skrip harus keluar tanpa kesalahan.
Opsi 2: Menjalankan tes depedensi IDT
-
Pastikan bahwa
device.json
dikonfigurasi untuk kualifikasi ML. Untuk informasi selengkapnya, lihat Konfigurasikan device.json untuk kualifikasi ML. -
Jalankan tes dependensi untuk kerangka kerja.
devicetester_
[linux | mac | win_x86-64]
run-suite --group-id mldependencies --test-id tensorflow_dependency_checkRingkasan tes menampilkan
PASSED
hasil untukmldependencies
.
Instal Amazon SageMaker Deep Learning Runtime (DLR) dependensi
Tes kualifikasi IDT untuk kerangka kerja ini memiliki dependensi sebagai berikut:
-
Python 3.6 atau Python 3.7.
catatan
Jika Anda menggunakan Python 3.6, Anda harus membuat sebuah tautan simbolik dari binari Python 3.7 ke Python 3.6. Ini mengonfigurasi perangkat Anda untuk memenuhi persyaratan Python untuk AWS IoT Greengrass. Misalnya:
sudo ln -s
path-to-python-3.6
/python3.6path-to-python-3.7
/python3.7 -
SageMaker Neo DLR.
-
numpy.
Setelah Anda menginstal dependensi tes DLR, Anda harus mengkompilasi model.
Menginstal DLR
Ikuti instruksi di dokumentasi DLR untuk instal Neo DLR
catatan
Jika Python 2.x dan Python 3.x keduanya diinstal pada perangkat Anda, gunakan Python 3.x dalam perintah yang Anda jalankan untuk menginstal dependensi.
Memvalidasi instalasi DLR
Pilih salah satu opsi berikut untuk memvalidasi instalasi DLR.
Opsi 1: SSH ke perangkat Anda dan jalankan skrip
-
SSH ke perangkat Anda.
-
Jalankan skrip berikut untuk memverifikasi bahwa dependensi diinstal dengan benar.
sudo python3.7 -c "import dlr; print(dlr.__version__)"
sudo python3.7 -c "import numpy; print(numpy.__version__)"
Output mencetak nomor versi dan skrip harus keluar tanpa kesalahan.
Opsi 2: Menjalankan tes depedensi IDT
-
Pastikan bahwa
device.json
dikonfigurasi untuk kualifikasi ML. Untuk informasi selengkapnya, lihat Konfigurasikan device.json untuk kualifikasi ML. -
Jalankan tes dependensi untuk kerangka kerja.
devicetester_
[linux | mac | win_x86-64]
run-suite --group-id mldependencies --test-id dlr_dependency_checkRingkasan tes menampilkan
PASSED
hasil untukmldependencies
.
Kompilasi model DLR
Anda harus mengkompilasi model DLR sebelum Anda dapat menggunakannya untuk tes kualifikasi ML. Pilih langkah-langkah, memilih salah satu opsi berikut.
Opsi 1: Gunakan Amazon SageMaker untuk mengkompilasi model
Ikuti langkah-langkah berikut untuk menggunakan SageMaker untuk mengkompilasi model ML-yang disediakan oleh IDT. Model ini sudah dilatih dengan Apache MXNet.
-
Verifikasi bahwa jenis perangkat Anda didukung oleh SageMaker. Untuk informasi selengkapnya, lihatopsi perangkatsangAmazon SageMaker Referensi API. Jika jenis perangkat Anda saat ini tidak didukung oleh SageMaker, ikuti langkah-langkah di Opsi 2: Gunakan TVM untuk mengompilasi model DLR.
catatan
Menjalankan tes DLR dengan model yang disusun oleh SageMaker mungkin memakan waktu 4 atau 5 menit. Jangan hentikan IDT selama waktu ini.
-
Mengunduh file tarball yang berisi model MXNet yang belum dikompilasi dan telah terlatih untuk DLR:
-
Dekompresi tarball. Perintah ini menghasilkan struktur direktori berikut.
-
Pindahkan
synset.txt
keluar dariresnet18
direktori. Buat catatan tentang lokasi baru. Anda salin file ini ke direktori model dikompilasi yang lebih baru.. -
Kompres konten
resnet18
direktori.tar cvfz model.tar.gz resnet18v1-symbol.json resnet18v1-0000.params
-
Unggah file terkompresi ke bucket Amazon S3 di Akun AWS, dan kemudian ikuti langkah-langkah dalam Mengkompilasi Model (Konsol) untuk membuat pekerjaan kompilasi.
-
Untuk Konfigurasi input, gunakan nilai berikut:
-
Untuk Konfigurasi input data, memasukkan
{"data": [1, 3, 224, 224]}
. -
Untuk Kerangka kerja machine learning, memilih
MXNet
.
-
-
Untuk Konfigurasi output, gunakan nilai berikut:
-
Untuk Lokasi output S3, memasukkan jalur ke bucket atau folder Amazon S3 di mana Anda ingin menyimpan model yang dikompilasi.
-
Untuk Perangkat target, pilih jenis perangkat Anda.
-
-
-
Mengunduh model yang dikompilasi dari lokasi output yang Anda tentukan, dan kemudian unzip file.
-
Salin
synset.txt
ke dalam direktori model yang dikompilasi. -
Ubah nama direktori model yang dikompilasi menjadi
resnet18
.Direktori model terkompilasi Anda harus memiliki struktur direktori berikut.
Opsi 2: Gunakan TVM untuk mengompilasi model DLR
Ikuti langkah-langkah berikut untuk menggunakan TVM untuk mengompilasi model ML yang disediakan oleh IDT. Model ini sudah dilatih dengan Apache MXNet, sehingga Anda harus menginstal MXNet pada komputer atau perangkat di mana Anda mengkompilasi model. Untuk menginstal MXNet, ikuti petunjuk di dokumentasi MXNet
catatan
Kami merekomendasikan bahwa Anda mengkompilasi model pada perangkat target Anda. Praktek ini opsional, tetapi dapat membantu memastikan kompatibilitas dan mengurangi potensi masalah.
-
Mengunduh file tarball yang berisi model MXNet yang belum dikompilasi dan telah terlatih untuk DLR:
-
Dekompresi tarball. Perintah ini menghasilkan struktur direktori berikut.
-
Ikuti instruksi di dokumentasi TVM untuk membangun dan menginstal TVM dari sumber untuk platform Anda
. -
Setelah TVM dibangun, jalankan kompilasi TVM untuk model resnet18. Langkah-langkah berikut didasarkan pada Tutorial Quick Start untuk Mengkompilasi Model Deep Learning
dalam dokumentasi TVM. -
Buka
relay_quick_start.py
file dari repositori TVM kloning. -
Update kode yang mendefinisikan jaringan syaraf tiruan dalam relay
. Anda dapat menggunakan salah satu opsi berikut: -
Opsi 1: Gunakan
mxnet.gluon.model_zoo.vision.get_model
untuk mendapatkan modul relay dan parameter:from mxnet.gluon.model_zoo.vision import get_model block = get_model('resnet18_v1', pretrained=True) mod, params = relay.frontend.from_mxnet(block, {"data": data_shape})
-
Opsi 2: Dari model yang tidak dikompilasi yang Anda unduh pada langkah 1, salin file berikut ke direktori yang sama dengan
relay_quick_start.py
berkas. File-file ini berisi modul relay dan parameter.-
resnet18v1-symbol.json
-
resnet18v1-0000.params
-
-
-
Update kode yang menyimpan dan memuat modul yang dikompilasi
untuk menggunakan kode berikut. from tvm.contrib import util path_lib = "deploy_lib.so" # Export the model library based on your device architecture lib.export_library("deploy_lib.so", cc="aarch64-linux-gnu-g++") with open("deploy_graph.json", "w") as fo: fo.write(graph) with open("deploy_param.params", "wb") as fo: fo.write(relay.save_param_dict(params))
-
Bangun model:
python3 tutorials/relay_quick_start.py --build-dir ./model
Perintah ini menghasilkan file-file berikut.
-
deploy_graph.json
-
deploy_lib.so
-
deploy_param.params
-
-
-
Salin berkas model yang dihasilkan ke dalam direktori bernama
resnet18
. Ini adalah direktori model terkompilasi Anda. -
Salin direktori model yang dikompilasi ke komputer host Anda. Kemudian salin
synset.txt
dari model yang tidak dikompilasi yang Anda unduh pada langkah 1 ke dalam direktori model yang dikompilasi.Direktori model terkompilasi Anda harus memiliki struktur direktori berikut.
Selanjutnya, konfigurasi kredensial AWS Anda dan device.json file.