Coral M.2アクセラレータは、既存のシステムおよび製品にEdge TPUコプロセッサーを提供するM.2モジュールです。
特徴
Google Edge TPU MLアクセラレーター
2つのM.2フォームファクターで利用可能:
M.2-2230-A-E-S3(A + Eキー)
M.2-2280-B-M-S3(B + Mキー)
ホストCPUでDebian Linuxおよびその他のバリアントをサポート
M.2アクセラレータはデュアルキーM.2カード(A + EまたはB + Mキー)で、互換性のあるM.2スロットに適合するように設計されています。 このフォームファクタにより、ARMおよびx86プラットフォームに簡単に統合できるため、組み込みプラットフォーム、ミニPC、産業用ゲートウェイなどの製品にローカルMLアクセラレーションを追加できます。
購入情報: Google Coral 海外代理店 Gravitylink (https://store.gravitylink.com/global)
必要条件
Coral M.2アクセラレータは、次の仕様のホストコンピューターに接続する必要があります。
- 互換性のあるM.2モジュールスロットを備えたLinuxコンピューター
- Debian 6.0以降、またはその派生物(Ubuntu 10.0+など)
- ARMv8命令セットを備えたx86-64またはARM32 / 64のシステムアーキテクチャ
M.2アクセラレーターを始めましょう
Mini PCIeまたはM.2 Acceleratorを使用するには、カードをシステムに接続し、PCIeドライバー、Edge TPUランタイム、およびTensorFlow Liteランタイムをインストールするだけです。 このページでは、セットアップについて説明し、サンプルモデルの実行方法を示します。
セットアップと操作は両方のフォームファクターで同じです。
必要条件
開始するには、次の仕様のLinuxコンピューターが必要です。
- x86-64またはARM64システムアーキテクチャ
- 使用可能なミニPCIeまたはM.2キースロット
- Debian 6.0 Linuxディストリビューション以上、またはその派生物(Ubuntu 10.0+など)
- Python 3.5以降
1. PCIeドライバーをインストールします
ドライバーをインストールする前に、ビルド済みのApexドライバーがインストールされているかどうかを最初に確認する必要があります。 ドライバーの一部のバージョンには、更新を妨げるバグがあり、Edge TPUを呼び出すと失敗します。 まず、次の手順を実行します:
次のコマンドを使用して、Linuxカーネルのバージョンを確認します:
uname -r
4.18以下と印刷された場合は、大丈夫であり、スキップしてPCIeドライバーのインストールを開始できます。
カーネルバージョンが4.19以降の場合、ビルド前のApexドライバーがインストールされているかどうかを確認します:
lsmod | grep apex
何も輸出されない場合は、大丈夫であり、PCIeドライバーのインストールを続行します。
次のようにPCIeドライバーをインストールします。
モジュールを接続するホストシステムがシャットダウンされていることを確認してください。
ホストシステムの推奨事項に従って、Coral PCIe / M.2モジュールを接続します。
システムを起動し、インターネットに接続されていることを確認します。 次に、Debianパッケージリポジトリをシステムに追加し、これらのコマンドを使用してPCIeドライバーをインストールします:
echo "deb https://packages.cloud.google.com/apt coral-edgetpu-stable main" | sudo tee /etc/apt/sources.list.d/coral-edgetpu.list
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
sudo apt update
sudo apt install gasket-dkms```
使用するユーザーアカウントにルート権限がない場合は、次のudevルールを追加し、「apex」グループが存在し、ユーザーが追加されていることを確認する必要がある場合があります:
sudo sh -c "echo 'SUBSYSTEM==\"apex\", MODE=\"0660\", GROUP=\"apex\"' >> /etc/udev/rules.d/65-apex.rules"
sudo groupadd apex
sudo adduser $USER apex
```
システムを再起動します。
アクセラレータモジュールが検出されたことを確認します:
lspci -x | grep 089a
次のように表示されるはずです。
03:00.0 System peripheral: Device 1ac1:089a
03番号とシステム周辺機器名はホストシステム固有であるため異なる場合がありますが、089aでリストされたデバイスが表示されている限り、続行できます。
PCIeドライバーがロードされていることを確認します:
ls / dev / apex_0
名前が繰り返されるのが見えるはずです:
/ dev / apex_0
2. Edge TPUランタイムをインストールする
Edge TPUと通信するには、Edge TPUランタイムが必要です。 次のように、コマンドラインからホストコンピューターにインストールできます:
sudo apt-get install libedgetpu1-std
3. TensorFlow Liteライブラリをインストールします
TensorFlowのAPIをインストールする方法はいくつかありますが、Pythonを使い始めるには、tflite_runtime
パッケージをインストールするのが最も簡単なオプションです。 このパッケージは、Python(主にInterpreter API
)で推論を実行するために必要な最小限のコードを提供するため、ディスクスペースを大幅に節約できます。
4. TensorFlow Lite APIを使用してモデルを実行する
これで、Edge TPUで推論を実行する準備が整いました。 サンプルコードとモデルで画像分類を実行するには、次の手順に従います。
GitHubからサンプルコードをダウンロードします:
```
mkdir coral && cd coral
git clone https://github.com/google-coral/tflite.git
```
鳥の分類器モデル、ラベルファイル、および鳥の写真をダウンロードします:
cd tflite/python/examples/classification
bash install_requirements.sh
鳥の写真で画像分類器を実行します:
python3 classify_image.py \
--model models/mobilenet_v2_1.0_224_inat_bird_quant_edgetpu.tflite \
--labels models/inat_bird_labels.txt \
--input images/parrot.jpg
次のような結果が表示されます:
INFO: Initialized TensorFlow Lite runtime.
----INFERENCE TIME----
Note: The first inference on Edge TPU is slow because it includes loading the model into Edge TPU memory.
11.8ms
3.0ms
2.8ms
2.9ms
2.9ms
-------RESULTS--------
Ara macao (Scarlet Macaw): 0.76562
おめでとうございます! TensorFlow Lite
を使用して、Edge TPUで推論を実行しました。
さまざまな推論速度を示すために、この例では同じ推論を5回繰り返します。 各推論の実行時間と最上位の分類(ラベルID /名前と信頼スコア、0〜1.0)を出力します。 推論速度は、ホストシステムによって異なる場合があります。
上記のclassify_image.py
の例では、TensorFlow Lite Python API
を使用しています。 仕組みの詳細については、classify_image.py
ソースコードを見て、TensorFlow Liteで推論を実行する方法を読んでください。
TensorFlow Lite API
(上記で使用)を使用する代わりに、Edge TPU Python API
を使用して、わずか数行のコードで画像分類およびオブジェクト検出モデルによる推論を実行する高レベルAPIを提供できます。 例として、Edge TPU API
を使用してclassify_image.py
の他のバージョンを試してください。
C ++およびTensorFlow Liteを使用して推論を実行することもできます。
次のステップ
他の種類のニューラルネットワークを実行するには、リアルタイムオブジェクト検出、ポーズ推定、キーフレーズ検出、デバイス上の転送学習などを実行するサンプルを含むサンプルプロジェクトをご覧ください。