

サポート終了通知: 2026 年 10 月 7 日、 AWS はサポートを終了します AWS IoT Greengrass Version 1。2026 年 10 月 7 日以降、 AWS IoT Greengrass V1 リソースにアクセスできなくなります。詳細については、[「 からの移行 AWS IoT Greengrass Version 1](https://docs.aws.amazon.com/greengrass/v2/developerguide/migrate-from-v1.html)」を参照してください。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# オプション: ML 認定のためのデバイスの設定
<a name="idt-ml-qualification"></a>

IDT for AWS IoT Greengrass は、デバイスがクラウドトレーニング済みモデルを使用してローカルで ML 推論を実行できることを検証するための機械学習 (ML) 認定テストを提供します。

ML 認定テストを実行するには、まず、「[IDT テストを実行するようにデバイスを設定する](device-config-setup.md)」の説明に従ってデバイスを設定する必要があります。次に、このトピックの手順に従って、実行する ML フレームワークの依存関係をインストールします。

ML 認定のためのテストを実行するには、IDT v3.1.0 以降が必要です。

## ML フレームワークの依存関係のインストール
<a name="ml-qualification-framework-dependencies"></a>

ML フレームワークの依存関係はすべて、`/usr/local/lib/python3.x/site-packages` ディレクトリ以下にインストールする必要があります。確実に正しいディレクトリにインストールするには、依存関係をインストールするときに `sudo` root アクセス許可を使用することをお勧めします。仮想環境は、認定テストではサポートされていません。

**注記**  
[コンテナ化](lambda-group-config.md#lambda-containerization-considerations)を使用して実行される Lambda 関数を (**Greengrass コンテナ**モードで) テストしている場合、`/usr/local/lib/python3.x` で Python ライブラリのシンボリックリンクを作成することはサポートされていません。エラーを回避するには、依存関係を正しいディレクトリにインストールする必要があります。

ターゲットフレームワークの依存関係をインストールするには、以下のステップに従います。
+ [MXNet 依存関係のインストール](#ml-qualification-mxnet-dependencies)
+ [TensorFlow の依存関係のインストール](#ml-qualification-tensorflow-dependencies)
+ [DLR 依存関係のインストール](#ml-qualification-dlr-dependencies)

 

## Apache MXNet 依存関係のインストール
<a name="ml-qualification-mxnet-dependencies"></a>

<a name="test-framework-dependencies"></a>このフレームワークの IDT 認定テストには、次の依存関係があります。
+ <a name="ml-qualification-python-req"></a>Python 3.6 or Python 3.7。
**注記**  <a name="python-symlink-command"></a>
Python 3.6を使用している場合は、Python 3.7 からPython 3.6 バイナリへのシンボリックリンクを作成する必要があります。これにより、 AWS IoT Greengrassの Python 要件を満たすようにデバイスが設定されます。例えば、次のようになります。  

  ```
  sudo ln -s path-to-python-3.6/python3.6 path-to-python-3.7/python3.7
  ```
+ Apache MXNet v1.2.1 以降。
+ NumPy。MXNet バージョンと互換性があるバージョンのものをしようする必要があります。

### MXNet のインストール
<a name="ml-qualification-mxnet-install"></a>

MXNet のドキュメントの指示に従って、[MXNet をインストールします](https://mxnet.apache.org/get_started/?platform=linux&language=python&processor=cpu&environ=pip&)。

**注記**  
<a name="run-python3-commands"></a>Python 2.x と Python 3.x の両方がデバイスにインストールされている場合は、実行するコマンドで Python 3.x を使用して依存関係をインストールします。

### MXNet のインストールの検証
<a name="ml-qualification-mxnet-validate"></a>

次のいずれかのオプションを選択して、MXNet のインストールを検証します。

#### オプション 1: デバイスに SSH 接続してスクリプトを実行する
<a name="ml-qualification-validate-mxnet-option-1"></a>

1. <a name="ssh-validate-framework-install-ssh"></a>デバイスに SSH 接続します。

1. <a name="ssh-validate-framework-install-run-scripts"></a>次のスクリプトを実行して、依存関係が正しくインストールされていることを確認します。

   ```
   sudo python3.7 -c "import mxnet; print(mxnet.__version__)"
   ```

   ```
   sudo python3.7 -c "import numpy; print(numpy.__version__)"
   ```

   <a name="ssh-passed-mldependencies"></a>出力ではバージョン番号が表示されまます。スクリプトがエラーなく終了する必要があります。

#### オプション 2: IDT 依存関係テストを実行する
<a name="ml-qualification-validate-mxnet-option-2"></a>

1. <a name="idt-validate-framework-install-check-config"></a>`device.json` が ML 認定用に設定されていることを確認します。詳細については、「[ML 認定のための device.json の設定](set-config.md#device-json-ml-qualification)」を参照してください。

1. <a name="idt-validate-framework-install-run-test"></a>フレームワークの依存関係テストを実行します。

   ```
   devicetester_[linux | mac | win_x86-64] run-suite --group-id mldependencies --test-id mxnet_dependency_check
   ```

   <a name="idt-passed-mldependencies"></a>テストサマリーに、`mldependencies` の結果として `PASSED` が表示されます。

 

## TensorFlow の依存関係のインストール
<a name="ml-qualification-tensorflow-dependencies"></a>

<a name="test-framework-dependencies"></a>このフレームワークの IDT 認定テストには、次の依存関係があります。
+ <a name="ml-qualification-python-req"></a>Python 3.6 or Python 3.7。
**注記**  <a name="python-symlink-command"></a>
Python 3.6を使用している場合は、Python 3.7 からPython 3.6 バイナリへのシンボリックリンクを作成する必要があります。これにより、 AWS IoT Greengrassの Python 要件を満たすようにデバイスが設定されます。例えば、次のようになります。  

  ```
  sudo ln -s path-to-python-3.6/python3.6 path-to-python-3.7/python3.7
  ```
+ TensorFlow 1.x。

### TensorFlow のインストール
<a name="ml-qualification-tensorflow-install"></a>

TensorFlow のドキュメントの指示に従い、[pip](https://www.tensorflow.org/install/pip) または[ソース](https://www.tensorflow.org/install/source)を使用して、TensorFlow 1.x をインストールします。

**注記**  
<a name="run-python3-commands"></a>Python 2.x と Python 3.x の両方がデバイスにインストールされている場合は、実行するコマンドで Python 3.x を使用して依存関係をインストールします。

### TensorFlow のインストールの検証
<a name="ml-qualification-tensorflow-validate"></a>

次のいずれかのオプションを選択して、TensorFlow のインストールを検証します。

#### オプション1：デバイスに SSH 接続してスクリプトを実行する
<a name="ml-qualification-validate-tensorflow-option-1"></a>

1. <a name="ssh-validate-framework-install-ssh"></a>デバイスに SSH 接続します。

1. 次のスクリプトを実行して、依存関係が正しくインストールされていることを確認します。

   ```
   sudo python3.7 -c "import tensorflow; print(tensorflow.__version__)"
   ```

   <a name="ssh-passed-mldependencies"></a>出力ではバージョン番号が表示されまます。スクリプトがエラーなく終了する必要があります。

#### オプション 2: IDT 依存関係テストを実行する
<a name="ml-qualification-validate-tensorflow-option-2"></a>

1. <a name="idt-validate-framework-install-check-config"></a>`device.json` が ML 認定用に設定されていることを確認します。詳細については、「[ML 認定のための device.json の設定](set-config.md#device-json-ml-qualification)」を参照してください。

1. <a name="idt-validate-framework-install-run-test"></a>フレームワークの依存関係テストを実行します。

   ```
   devicetester_[linux | mac | win_x86-64] run-suite --group-id mldependencies --test-id tensorflow_dependency_check
   ```

   <a name="idt-passed-mldependencies"></a>テストサマリーに、`mldependencies` の結果として `PASSED` が表示されます。

 

## Amazon SageMaker AI Neo Deep Learning Runtime (DLR) の依存関係をインストールする
<a name="ml-qualification-dlr-dependencies"></a>

<a name="test-framework-dependencies"></a>このフレームワークの IDT 認定テストには、次の依存関係があります。
+ <a name="ml-qualification-python-req"></a>Python 3.6 or Python 3.7。
**注記**  <a name="python-symlink-command"></a>
Python 3.6を使用している場合は、Python 3.7 からPython 3.6 バイナリへのシンボリックリンクを作成する必要があります。これにより、 AWS IoT Greengrassの Python 要件を満たすようにデバイスが設定されます。例えば、次のようになります。  

  ```
  sudo ln -s path-to-python-3.6/python3.6 path-to-python-3.7/python3.7
  ```
+ SageMaker AI Neo DLR。
+ numpy。

DLR テストの依存関係をインストールした後、[モデルをコンパイル](#ml-qualification-dlr-compile-model)する必要があります。

### DLR のインストール
<a name="ml-qualification-dlr-install"></a>

DLR のドキュメントの指示に従って、[Neo DLR をインストールします](https://neo-ai-dlr.readthedocs.io/en/latest/install.html#building-on-linux)。

**注記**  
<a name="run-python3-commands"></a>Python 2.x と Python 3.x の両方がデバイスにインストールされている場合は、実行するコマンドで Python 3.x を使用して依存関係をインストールします。

### DLR のインストールの検証
<a name="ml-qualification-dlr-validate"></a>

次のいずれかのオプションを選択して、DLR のインストールを検証します。

#### オプション 1: デバイスに SSH 接続してスクリプトを実行する
<a name="ml-qualification-validate-dlr-option-1"></a>

1. <a name="ssh-validate-framework-install-ssh"></a>デバイスに SSH 接続します。

1. <a name="ssh-validate-framework-install-run-scripts"></a>次のスクリプトを実行して、依存関係が正しくインストールされていることを確認します。

   ```
   sudo python3.7 -c "import dlr; print(dlr.__version__)"
   ```

   ```
   sudo python3.7 -c "import numpy; print(numpy.__version__)"
   ```

   <a name="ssh-passed-mldependencies"></a>出力ではバージョン番号が表示されまます。スクリプトがエラーなく終了する必要があります。

#### オプション 2: IDT 依存関係テストを実行する
<a name="ml-qualification-validate-dlr-option-2"></a>

1. <a name="idt-validate-framework-install-check-config"></a>`device.json` が ML 認定用に設定されていることを確認します。詳細については、「[ML 認定のための device.json の設定](set-config.md#device-json-ml-qualification)」を参照してください。

1. <a name="idt-validate-framework-install-run-test"></a>フレームワークの依存関係テストを実行します。

   ```
   devicetester_[linux | mac | win_x86-64] run-suite --group-id mldependencies --test-id dlr_dependency_check
   ```

   <a name="idt-passed-mldependencies"></a>テストサマリーに、`mldependencies` の結果として `PASSED` が表示されます。

## DLR モデルのコンパイル
<a name="ml-qualification-dlr-compile-model"></a>

DLR モデルは、ML 認定テストに使用する前にコンパイルする必要があります。手順については、次のいずれかのオプションを選択します。

### オプション 1: Amazon SageMaker AI を使用してモデルをコンパイルする
<a name="ml-qualification-compile-dlr-option-1"></a>

SageMaker AI を使用して IDT が提供する ML モデルをコンパイルするには、次の手順に従います。このモデルは Apache MXnet で事前にトレーニングされています。

1. デバイスタイプが SageMaker AI でサポートされていることを確認します。詳細については、*Amazon SageMaker AI API リファレンス*の[ターゲットデバイスオプション](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_OutputConfig.html#sagemaker-Type-OutputConfig-TargetDevice)を参照してください。デバイスタイプが現在 SageMaker AI でサポートされていない場合は、「」の手順に従います[オプション 2: TVM を使用して DLR をコンパイルする](#ml-qualification-compile-dlr-option-2)。
**注記**  
SageMaker AI でコンパイルされたモデルで DLR テストを実行するには、4～5 分かかる場合があります。この間、IDT を停止しないでください。

1. <a name="compile-dlr-download-uncompiled-model"></a>事前トレーニング済みでコンパイルされていない DLR 用 MxNet モデルを含む tarball ファイルをダウンロードします。
   + [dlr-noncompiled-model-1.0.tar.gz](https://docs.aws.amazon.com/greengrass/latest/developerguide/download-dlr-noncompiled-model-1.0.html)

1. <a name="compile-dlr-decompress-uncompiled-model"></a>tarball を解凍します。このコマンドを実行すると、以下のディレクトリ構造が生成されます。  
![\[resnet18 ディレクトリには 3 つのファイルが含まれています。\]](http://docs.aws.amazon.com/ja_jp/greengrass/v1/developerguide/images/idt/idt-ml-qualification-dlr-uncompiled.png)

1. `synset.txt` を `resnet18` ディレクトリ以外の場所に移動します。新しい場所を書き留めておきます。このファイルは、コンパイルされたモデルのディレクトリに、後でコピーします。

1. `resnet18` ディレクトリの内容を圧縮します。

   ```
   tar cvfz model.tar.gz resnet18v1-symbol.json resnet18v1-0000.params
   ```

1. 圧縮ファイルを の Amazon S3 バケットにアップロードし AWS アカウント、[「モデルをコンパイルする (コンソール)](https://docs.aws.amazon.com/sagemaker/latest/dg/neo-job-compilation-console.html)」の手順に従ってコンパイルジョブを作成します。

   1. [**入力設定**] では、次の値を使用します。
      + [**データ入力設定**] に `{"data": [1, 3, 224, 224]}` と入力します。
      + [**機械学習フレームワーク**] で、`MXNet` を選択します。

   1. [**出力設定**] では、次の値を使用します。
      + **[S3 Output location]** (S3 出力場所) には、コンパイル済みモデルを保存する Amazon S3 バケットまたはフォルダへのパスを入力します。
      + [**ターゲットデバイス**] で、デバイスタイプを選択します。

1. 指定した出力場所からコンパイル済みモデルをダウンロードし、ファイルを解凍します。

1. コンパイル済みモデルのディレクトリに `synset.txt` をコピーします。

1. コンパイル済みモデルのディレクトリの名前を `resnet18` に変更します。

   コンパイル済みモデルのディレクトリでは、次のディレクトリ構造が必要です。  
![\[コンパイル済みモデルのディレクトリ resnet18 には、4 つのファイルが含まれています。\]](http://docs.aws.amazon.com/ja_jp/greengrass/v1/developerguide/images/idt/idt-ml-qualification-dlr-compiled-sm.png)

### オプション 2: TVM を使用して DLR をコンパイルする
<a name="ml-qualification-compile-dlr-option-2"></a>

TVM を使用して、IDT によって提供される ML モデルをコンパイルするには、以下のステップに従います。このモデルは Apache MXNet で事前にトレーニングされているため、モデルをコンパイルするコンピューターまたはデバイスに MXNet をインストールする必要があります。MXNet をインストールするには、[MXNet のドキュメント](https://mxnet.apache.org/get_started/?platform=linux&language=python&processor=cpu&environ=pip&)の指示に従います。

**注記**  
ターゲットデバイス上でモデルをコンパイルすることをお勧めします。この方法はオプションですが、互換性を確保し、潜在的な問題を軽減するために役立ちます。

 

1. <a name="compile-dlr-download-uncompiled-model"></a>事前トレーニング済みでコンパイルされていない DLR 用 MxNet モデルを含む tarball ファイルをダウンロードします。
   + [dlr-noncompiled-model-1.0.tar.gz](https://docs.aws.amazon.com/greengrass/latest/developerguide/download-dlr-noncompiled-model-1.0.html)

1. <a name="compile-dlr-decompress-uncompiled-model"></a>tarball を解凍します。このコマンドを実行すると、以下のディレクトリ構造が生成されます。  
![\[resnet18 ディレクトリには 3 つのファイルが含まれています。\]](http://docs.aws.amazon.com/ja_jp/greengrass/v1/developerguide/images/idt/idt-ml-qualification-dlr-uncompiled.png)

1. TVM のドキュメントの指示に従って、[お使いのプラットフォームのソースから TVM のビルドとインストール](https://docs.tvm.ai/install/from_source.html)を行います。

1. TVM がビルドされたら、resnet18 モデルの TVM コンパイルを実行します。以下のステップは、TVM のドキュメントの「[Quick Start Tutorial for Compiling Deep Learning Models](https://tvm.apache.org/docs/tutorial/relay_quick_start.html#sphx-glr-tutorials-get-started-relay-quick-start-py)」に基づいています。

   1. クローン作成された TVM リポジトリから `relay_quick_start.py` ファイルを開きます。

   1. [リレーでニューラルネットワークを定義する](https://tvm.apache.org/docs/tutorial/relay_quick_start.html#define-neural-network-in-relay)コードを更新します。次のいずれかのオプションを使用できます。
      + オプション 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`

   1. [コンパイル済みモジュールを保存してロードする](https://tvm.apache.org/docs/tutorial/relay_quick_start.html#save-and-load-compiled-module)コードを更新し、次のコードを使用します。

      ```
      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))
      ```

   1. モデルをビルドします。

      ```
      python3 tutorials/relay_quick_start.py --build-dir ./model
      ```

      このコマンドを実行すると、以下のファイルが生成されます。
      + `deploy_graph.json`
      + `deploy_lib.so`
      + `deploy_param.params`

1. 生成されたモデルファイルを `resnet18` という名前のディレクトリにコピーします。これはコンパイル済みモデルのディレクトリです。

1. コンパイル済みモデルのディレクトリをホストコンピュータにコピーします。次に、ステップ 1 でダウンロードしたコンパイルされていないモデルから、コンパイル済みモデルのディレクトリに `synset.txt` をコピーします。

   コンパイル済みモデルのディレクトリでは、次のディレクトリ構造が必要です。  
![\[コンパイル済みモデルのディレクトリ resnet18 には、4 つのファイルが含まれています。\]](http://docs.aws.amazon.com/ja_jp/greengrass/v1/developerguide/images/idt/idt-ml-qualification-dlr-compiled-tvm.png)

次に、[AWS 認証情報と `device.json` ファイルを設定します](set-config.md)。