AWS IoT Greengrass Version 1 は 2023 年 6 月 30 日に延長ライフフェーズに参加しました。詳細については、「AWS IoT Greengrass V1 メンテナンスポリシー」を参照してください。この日以降、 AWS IoT Greengrass V1 は機能、機能強化、バグ修正、またはセキュリティパッチを提供する更新をリリースしません。で実行されるデバイスは中断 AWS IoT Greengrass V1 されず、引き続き動作し、クラウドに接続します。に移行 AWS IoT Greengrass Version 2することを強くお勧めします。これにより、重要な新機能が追加され、プラットフォームのサポートが追加されます。
翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
オプション: ML 認定のためのデバイスの設定
IDT for AWS IoT Greengrass は、デバイスがクラウドトレーニング済みモデルを使用してローカルで ML 推論を実行できることを検証するための機械学習 (ML) 認定テストを提供します。
ML 認定テストを実行するには、まず、「IDT テストを実行するためのデバイス設定」の説明に従ってデバイスを設定する必要があります。次に、このトピックの手順に従って、実行する ML フレームワークの依存関係をインストールします。
ML 認定のためのテストを実行するには、IDT v3.1.0 以降が必要です。
ML フレームワークの依存関係のインストール
ML フレームワークの依存関係はすべて、/usr/local/lib/python3.x/site-packages
ディレクトリ以下にインストールする必要があります。確実に正しいディレクトリにインストールするには、依存関係をインストールするときに sudo
root アクセス許可を使用することをお勧めします。仮想環境は、認定テストではサポートされていません。
注記
コンテナ化を使用して実行される Lambda 関数を (Greengrass コンテナモードで) テストしている場合、/usr/local/lib/python3.x
で Python ライブラリのシンボリックリンクを作成することはサポートされていません。エラーを回避するには、依存関係を正しいディレクトリにインストールする必要があります。
ターゲットフレームワークの依存関係をインストールするには、以下のステップに従います。
Apache MXNet 依存関係のインストール
このフレームワークの IDT 認定テストには、次の依存関係があります。
-
Python 3.6 or Python 3.7。
注記
Python 3.6を使用している場合は、Python 3.7 からPython 3.6 バイナリへのシンボリックリンクを作成する必要があります。これにより、 AWS IoT Greengrassの Python 要件を満たすようにデバイスが設定されます。以下に例を示します。
sudo ln -s
path-to-python-3.6
/python3.6path-to-python-3.7
/python3.7 -
Apache MXNet v1.2.1 以降。
-
NumPy。MXNet バージョンと互換性があるバージョンのものをしようする必要があります。
MXNet のインストール
MXNet のドキュメントの指示に従って、MXNet をインストールします
注記
Python 2.x と Python 3.x の両方がデバイスにインストールされている場合は、実行するコマンドで Python 3.x を使用して依存関係をインストールします。
MXNet のインストールの検証
次のいずれかのオプションを選択して、MXNet のインストールを検証します。
オプション 1: デバイスに SSH 接続してスクリプトを実行する
-
デバイスに SSH 接続します。
-
次のスクリプトを実行して、依存関係が正しくインストールされていることを確認します。
sudo python3.7 -c "import mxnet; print(mxnet.__version__)"
sudo python3.7 -c "import numpy; print(numpy.__version__)"
出力ではバージョン番号が表示されまます。スクリプトがエラーなく終了する必要があります。
オプション 2: IDT 依存関係テストを実行する
-
device.json
が ML 認定用に設定されていることを確認します。詳細については、「ML 認定のための device.json の設定」を参照してください。 -
フレームワークの依存関係テストを実行します。
devicetester_
[linux | mac | win_x86-64]
run-suite --group-id mldependencies --test-id mxnet_dependency_checkテストサマリーに、
mldependencies
の結果としてPASSED
が表示されます。
TensorFlow の依存関係のインストール
このフレームワークの IDT 認定テストには、次の依存関係があります。
-
Python 3.6 or Python 3.7。
注記
Python 3.6を使用している場合は、Python 3.7 からPython 3.6 バイナリへのシンボリックリンクを作成する必要があります。これにより、 AWS IoT Greengrassの Python 要件を満たすようにデバイスが設定されます。以下に例を示します。
sudo ln -s
path-to-python-3.6
/python3.6path-to-python-3.7
/python3.7 -
TensorFlow 1.x。
TensorFlow のインストール
TensorFlow のドキュメントの指示に従い、pip
注記
Python 2.x と Python 3.x の両方がデバイスにインストールされている場合は、実行するコマンドで Python 3.x を使用して依存関係をインストールします。
TensorFlow のインストールの検証
次のいずれかのオプションを選択して、TensorFlow のインストールを検証します。
オプション1:デバイスに SSH 接続してスクリプトを実行する
-
デバイスに SSH 接続します。
-
次のスクリプトを実行して、依存関係が正しくインストールされていることを確認します。
sudo python3.7 -c "import tensorflow; print(tensorflow.__version__)"
出力ではバージョン番号が表示されまます。スクリプトがエラーなく終了する必要があります。
オプション 2: IDT 依存関係テストを実行する
-
device.json
が ML 認定用に設定されていることを確認します。詳細については、「ML 認定のための device.json の設定」を参照してください。 -
フレームワークの依存関係テストを実行します。
devicetester_
[linux | mac | win_x86-64]
run-suite --group-id mldependencies --test-id tensorflow_dependency_checkテストサマリーに、
mldependencies
の結果としてPASSED
が表示されます。
Amazon SageMaker AI Neo Deep Learning Runtime (DLR) の依存関係をインストールする
このフレームワークの IDT 認定テストには、次の依存関係があります。
-
Python 3.6 or Python 3.7。
注記
Python 3.6を使用している場合は、Python 3.7 からPython 3.6 バイナリへのシンボリックリンクを作成する必要があります。これにより、 AWS IoT Greengrassの Python 要件を満たすようにデバイスが設定されます。以下に例を示します。
sudo ln -s
path-to-python-3.6
/python3.6path-to-python-3.7
/python3.7 -
SageMaker AI Neo DLR。
-
numpy。
DLR テストの依存関係をインストールした後、モデルをコンパイルする必要があります。
DLR のインストール
DLR のドキュメントの指示に従って、Neo DLR をインストールします
注記
Python 2.x と Python 3.x の両方がデバイスにインストールされている場合は、実行するコマンドで Python 3.x を使用して依存関係をインストールします。
DLR のインストールの検証
次のいずれかのオプションを選択して、DLR のインストールを検証します。
オプション 1: デバイスに SSH 接続してスクリプトを実行する
-
デバイスに SSH 接続します。
-
次のスクリプトを実行して、依存関係が正しくインストールされていることを確認します。
sudo python3.7 -c "import dlr; print(dlr.__version__)"
sudo python3.7 -c "import numpy; print(numpy.__version__)"
出力ではバージョン番号が表示されまます。スクリプトがエラーなく終了する必要があります。
オプション 2: IDT 依存関係テストを実行する
-
device.json
が ML 認定用に設定されていることを確認します。詳細については、「ML 認定のための device.json の設定」を参照してください。 -
フレームワークの依存関係テストを実行します。
devicetester_
[linux | mac | win_x86-64]
run-suite --group-id mldependencies --test-id dlr_dependency_checkテストサマリーに、
mldependencies
の結果としてPASSED
が表示されます。
DLR モデルのコンパイル
DLR モデルは、ML 認定テストに使用する前にコンパイルする必要があります。手順については、次のいずれかのオプションを選択します。
オプション 1: Amazon SageMaker AI を使用してモデルをコンパイルする
SageMaker AI を使用して IDT が提供する ML モデルをコンパイルするには、次の手順に従います。このモデルは Apache MXnet で事前にトレーニングされています。
-
デバイスタイプが SageMaker AI でサポートされていることを確認します。詳細については、Amazon SageMaker AI API リファレンス」の「ターゲットデバイスオプション」を参照してください。デバイスタイプが現在 SageMaker AI でサポートされていない場合は、「」の手順に従いますオプション 2: TVM を使用して DLR をコンパイルする。
注記
SageMaker AI によってコンパイルされたモデルで DLR テストを実行するには、4 ~ 5 分かかる場合があります。この間、IDT を停止しないでください。
-
事前トレーニング済みでコンパイルされていない DLR 用 MxNet モデルを含む tarball ファイルをダウンロードします。
-
tarball を解凍します。このコマンドを実行すると、以下のディレクトリ構造が生成されます。
-
synset.txt
をresnet18
ディレクトリ以外の場所に移動します。新しい場所を書き留めておきます。このファイルは、コンパイルされたモデルのディレクトリに、後でコピーします。 -
resnet18
ディレクトリの内容を圧縮します。tar cvfz model.tar.gz resnet18v1-symbol.json resnet18v1-0000.params
-
圧縮ファイルを の Amazon S3 バケットにアップロードし AWS アカウント、「モデルをコンパイルする (コンソール)」の手順に従ってコンパイルジョブを作成します。
-
[入力設定] では、次の値を使用します。
-
[データ入力設定] に
{"data": [1, 3, 224, 224]}
と入力します。 -
[機械学習フレームワーク] で、
MXNet
を選択します。
-
-
[出力設定] では、次の値を使用します。
-
[S3 Output location] (S3 出力場所) には、コンパイル済みモデルを保存する Amazon S3 バケットまたはフォルダへのパスを入力します。
-
[ターゲットデバイス] で、デバイスタイプを選択します。
-
-
-
指定した出力場所からコンパイル済みモデルをダウンロードし、ファイルを解凍します。
-
コンパイル済みモデルのディレクトリに
synset.txt
をコピーします。 -
コンパイル済みモデルのディレクトリの名前を
resnet18
に変更します。コンパイル済みモデルのディレクトリでは、次のディレクトリ構造が必要です。
オプション 2: TVM を使用して DLR をコンパイルする
TVM を使用して、IDT によって提供される ML モデルをコンパイルするには、以下のステップに従います。このモデルは Apache MXNet で事前にトレーニングされているため、モデルをコンパイルするコンピューターまたはデバイスに MXNet をインストールする必要があります。MXNet をインストールするには、MXNet のドキュメント
注記
ターゲットデバイス上でモデルをコンパイルすることをお勧めします。この方法はオプションですが、互換性を確保し、潜在的な問題を軽減するために役立ちます。
-
事前トレーニング済みでコンパイルされていない DLR 用 MxNet モデルを含む tarball ファイルをダウンロードします。
-
tarball を解凍します。このコマンドを実行すると、以下のディレクトリ構造が生成されます。
-
TVM のドキュメントの指示に従って、お使いのプラットフォームのソースから TVM のビルドとインストール
を行います。 -
TVM がビルドされたら、resnet18 モデルの TVM コンパイルを実行します。以下のステップは、TVM のドキュメントの「Quick Start Tutorial for Compiling Deep Learning Models
」に基づいています。 -
クローン作成された TVM リポジトリから
relay_quick_start.py
ファイルを開きます。 -
リレーでニューラルネットワークを定義する
コードを更新します。次のいずれかのオプションを使用できます。 -
オプション 1:
mxnet.gluon.model_zoo.vision.get_model
を使用してリレーモジュールとパラメータを取得します。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})
-
オプション 2: ステップ 1 でダウンロードしたコンパイルされていないモデルから、以下のファイルを
relay_quick_start.py
ファイルと同じディレクトリにコピーします。これらのファイルには、リレーモジュールとパラメータが含まれています。-
resnet18v1-symbol.json
-
resnet18v1-0000.params
-
-
-
コンパイル済みモジュールを保存してロードする
コードを更新し、次のコードを使用します。 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))
-
モデルをビルドします。
python3 tutorials/relay_quick_start.py --build-dir ./model
このコマンドを実行すると、以下のファイルが生成されます。
-
deploy_graph.json
-
deploy_lib.so
-
deploy_param.params
-
-
-
生成されたモデルファイルを
resnet18
という名前のディレクトリにコピーします。これはコンパイル済みモデルのディレクトリです。 -
コンパイル済みモデルのディレクトリをホストコンピュータにコピーします。次に、ステップ 1 でダウンロードしたコンパイルされていないモデルから、コンパイル済みモデルのディレクトリに
synset.txt
をコピーします。コンパイル済みモデルのディレクトリでは、次のディレクトリ構造が必要です。
次に、AWS 認証情報と device.json ファイルを設定します。