

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

# 機械学習の推論に対するトラブルシューティング
<a name="ml-troubleshooting"></a>

このセクションのトラブルシューティング情報と解決策を使用して、機械学習コンポーネントの問題を解決してください。パブリック機械学習の推論コンポーネントについては、次のコンポーネントログのエラーメッセージを参照してください。

------
#### [ 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`

------

コンポーネントが正しくインストールされている場合、コンポーネントログに推論に使用するライブラリの場所が含まれます。

**Topics**
+ [ライブラリのフェッチに失敗しました](#rpi-update-error)
+ [Cannot open shared object file](#rpi-import-cv-error)
+ [Error: ModuleNotFoundError: No module named '<library>'](#troubleshooting-venv-errors-not-found)
+ [CUDA 対応デバイスが検出されません](#troubleshooting-cuda-error)
+ [そのようなファイルまたはディレクトリはありません](#troubleshooting-venv-errors-no-such-file)
+ [RuntimeError: module compiled against API version 0xf but this version of NumPy is <version>](#troubleshooting-rpi-numpy-version-error)
+ [picamera.exc.PiCameraError: Camera is not enabled](#troubleshooting-rpi-camera-stack-error)
+ [メモリエラー](#troubleshooting-memory-errors)
+ [ディスク容量エラー](#troubleshooting-disk-space-errors)
+ [タイムアウトエラー](#troubleshooting-timeout-errors)

## ライブラリのフェッチに失敗しました
<a name="rpi-update-error"></a>

次のエラーは、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]
```

`sudo apt-get update` を実行してコンポーネントを再度デプロイします。

## Cannot open shared object file
<a name="rpi-import-cv-error"></a>

インストーラスクリプトが、Raspberry Pi デバイスへのデプロイ時に `opencv-python` の必要な従属関係のダウンロードに失敗するとき、次のようなエラーが表示される場合があります。

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

以下のコマンドを実行して、`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>'
<a name="troubleshooting-venv-errors-not-found"></a>

ML ランタイムライブラリまたはその依存関係が正しくインストールされていないとき、ML ランタイム コンポーネント ログ (`variant.DLR.log` または `variant.TensorFlowLite.log`) にこのエラーが表示されることがあります。このエラーは、次の状況に発生する可能性があります:
+ デフォルトで有効になっている `UseInstaller` オプションを使用する場合、このエラーは、ML ランタイムコンポーネントがランタイムまたはその従属関係のインストールに失敗したことを示します。以下の操作を実行します。

  1. ML ランタイムコンポーネントを設定して `UseInstaller` オプションを無効にすします。

  1. ML ランタイムとその従属関係をインストールし、ML コンポーネントを実行するシステムユーザーがそれらを利用できるようにします。詳細については次を参照してください:
     + [DLR ランタイム Uselnstaller オプション](dlr-component.md#dlr-component-config-useinstaller-term)
     + [TensorFlow Lite ランタイム UseInstaller オプション](tensorflow-lite-component.md#tensorflow-lite-component-config-useinstaller-term)
+ `UseInstaller` オプションを使用しない場合、このエラーは、ML コンポーネントを実行するシステムユーザーに ML ランタイムまたはその従属関係がインストールされていないことを示します。以下の操作を実行します。

  1. ML コンポーネントを実行するシステムユーザー用にライブラリがインストールされていることを確認します。*ggc\$1user* をシステムユーザーの名前に置き換えて、*tflite\$1runtime* を確認するライブラリの名前に置き換えます。

------
#### [ 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\""
     ```

------

  1. ライブラリがインストールされていない場合は、そのユーザー用にインストールします。*ggc\$1user* をシステムユーザーの名前に置き換えて、*tflite\$1runtime* をライブラリの名前に置き換えます。

------
#### [ 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"
     ```

------

     各 ML ランタイムの従属関係の詳細については、次を参照してください。
     + [DLR ランタイム Uselnstaller オプション](dlr-component.md#dlr-component-config-useinstaller-term)
     + [TensorFlow Lite ランタイム UseInstaller オプション](tensorflow-lite-component.md#tensorflow-lite-component-config-useinstaller-term)

  1. 問題が解決しない場合、別のユーザー用にライブラリをインストールして、このデバイスでライブラリをインストールできるかどうかを確認します。例えば、ユーザーは、お客様のユーザー、ルートユーザー、管理者ユーザーの場合があります。どのユーザーに対してもライブラリを正常にインストールできない場合、デバイスがライブラリをサポートしていない可能性があります。ライブラリのマニュアルを参照して、要件を確認してインストールの問題のトラブルシューティングを行ってください。

## CUDA 対応デバイスが検出されません
<a name="troubleshooting-cuda-error"></a>

GPU アクセラレーションを使用すると、次のエラーが表示されることがあります。次のコマンドを実行して、Greengrass ユーザーの GPU アクセスを有効にします。

```
sudo usermod -a -G video ggc_user
```

## そのようなファイルまたはディレクトリはありません
<a name="troubleshooting-venv-errors-no-such-file"></a>

次のエラーは、ランタイムコンポーネントが仮想環境を正しく設定できなかったことを示します:
+ `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 `

ログをチェックして、すべてのランタイム従属関係が正しくインストールされていることを確認します。インストーラスクリプトによってインストールされたライブラリの詳細については、次のトピックを参照してください。
+ [DLR ランタイム](dlr-component.md)
+ [TensorFlow Lite ランタイム](tensorflow-lite-component.md)

デフォルトで、*MLRootPath* は `/greengrass/v2/work/component-name/greengrass_ml` に設定されます。この場所を変更するには、[DLR ランタイム](dlr-component.md) または [TensorFlow Lite ランタイム](tensorflow-lite-component.md) ランタイムコンポーネントをデプロイに直接含めて、`MLRootPath` パラメータの修正値を設定マージ更新に指定です。コンポーネントの設定の詳細については、「[コンポーネント設定の更新](update-component-configurations.md)」を参照してください。

**注記**  
DLR コンポーネント v1.3.x の場合、推論コンポーネントの設定で `MLRootPath` パラメータを設定し、デフォルト値は `$HOME/greengrass_ml` です。

## RuntimeError: module compiled against API version 0xf but this version of NumPy is <version>
<a name="troubleshooting-rpi-numpy-version-error"></a>

Raspberry Pi OS Bullseye を実行している Raspberry Pi で機械学習の推論を実行するとき、次のエラーが表示される場合があります。

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

このエラーは、Raspberry Pi OS Bullseye に OpenCV が必要とするバージョンよりも前のバージョンの NumPy が含まれている原因によって発生します。この問題を解決するには、次のコマンドを実行して NumPy を最新バージョンにアップグレードします。

```
pip3 install --upgrade numpy
```

## picamera.exc.PiCameraError: Camera is not enabled
<a name="troubleshooting-rpi-camera-stack-error"></a>

Raspberry Pi OS Bullseye を実行している Raspberry Pi で機械学習の推論を実行するとき、次のエラーが表示される場合があります。

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

このエラーは、Raspberry Pi OS Bullseye に ML コンポーネントと互換性のない新しいカメラスタックが含まれているために発生します。この問題を解決するには、レガシーカメラスタックを有効にします。<a name="raspberry-pi-bullseye-enable-legacy-camera-stack"></a>

**レガシーカメラスタックを有効にするには**

1. 次のコマンドを実行して、Raspberry Pi 設定ツールを開きます。

   ```
   sudo raspi-config
   ```

1. **[Interface Options]** (インターフェイスオプション) を選択します。

1. **[Legacy camera]** (レガシーカメラ) を選択して、レガシーカメラスタックを有効にします。

1. Raspberry Pi を再起動します。

## メモリエラー
<a name="troubleshooting-memory-errors"></a>

次のエラーは、通常、デバイスに十分なメモリがなく、コンポーネントプロセスが中断された場合に発生します。
+ `stderr. Killed.`
+ `exitCode=137`

パブリック機械学習の推論コンポーネントをデプロイするには、最低 500 MB のメモリを推奨します。

## ディスク容量エラー
<a name="troubleshooting-disk-space-errors"></a>

`no space left on device` エラーは、通常、デバイスに十分なストレージがない場合に発生します。コンポーネントを再度デプロイする前に、デバイスに十分なディスク容量があることを確認してください。パブリック機械学習の推論コンポーネントをデプロイするには、最低 500 MB の空きディスク容量をお勧めします。

## タイムアウトエラー
<a name="troubleshooting-timeout-errors"></a>

パブリック機械学習コンポーネントは、200 MB を超える大きな機械学習モデルファイルをダウンロードします。デプロイ中にダウンロードがタイムアウトした場合、インターネット接続速度を確認してデプロイを再試行してください。