LoginSignup
2
2

More than 3 years have passed since last update.

PythonでTensorFlow Liteを使用して推論を実行する

Last updated at Posted at 2019-09-16

デフォルトでは、TensorFlowはコンパイルされたモデルでカスタムオペレーターを実行する方法を知らないため、TensorFlow Lite APIを使用すると、Edge TPU用にコンパイルされたモデルは失敗します。 動作させるには、推論を実行するコードにいくつかの変更を加える必要があります。 このページでは、Pythonを使用してそれを行う方法を示します。

C ++を使用する場合は、代わりに「C ++でTensorFlow Liteで推論を実行する」をお読みください。

注:このページは、TensorFlow Lite APIの使用経験がある開発者を対象としています。 TensorFlowの経験がなく、使用する準備ができていない場合は、代わりにEdge TPU Python APIを使用できます。これにより、画像分類およびオブジェクト検出モデルで推論を実行するために必要なコードが簡素化されます。

Python TensorFlow Lite APIを使用してEdge TPUでモデルを実行するために、TensorFlow Liteデリゲートを実装しました。 デリゲートは、モデルグラフの特定の操作を処理するTensorFlow Liteメカニズムです。 この場合、デリゲートはEdge TPUカスタムオペレーターを処理します。

Edge TPUデリゲートを使用するには、次の手順を実行します。

  1. 最新のEdge TPUランタイムに更新します。

USBアクセラレータまたはM.2 / PCIeアクセラレータを使用している場合、次のようにEdge TPUランタイムを更新します:

sudo apt-get update

wget https://dl.google.com/coral/edgetpu_api/edgetpu_api_latest.tar.gz -O edgetpu_api.tar.gz --trust-server-names

tar xzf edgetpu_api.tar.gz

sudo edgetpu_api/install.sh

Dev BoardまたはSystem-on-Module(Mendelを使用)を使用している場合は、次のように更新します:

echo "deb https://packages.cloud.google.com/apt coral-edgetpu-stable main" | sudo tee /etc/apt/sources.list.d/coral-edgetpu.list
sudo apt-get update
sudo apt-get dist-upgrade

2.TensorFlow Lite APIの最新バージョンを使用していることを確認してください。

TensorFlow Lite Interpreter APIで推論を実行するPythonファイルを開きます(label_image.py の例を参照)。

コードがtensorflowパッケージからInterpreterクラスをインポートする場合、TensorFlow nightly(1.15)または2.0-betaビルドを使用する必要があります(必要なデリゲートAPIはTensorFlow 1.14に含まれていません)。

ただし、代わりに tflite_runtime パッケージを使用することをお勧めします。 これは、インタープリタークラスと必要なデリゲートAPIを含むはるかに小さなパッケージです。 tflite_runtimeパッケージをインストールするには、TensorFlow Lite Python クイックスタートに従ってください。

3.Interpreter を構築するときに、Edge TPUのデリゲートをロードします。

たとえば、TensorFlow Liteコードには次のような行が必要です:

interpreter = Interpreter(model_path)

これを次のように変更します:

interpreter = Interpreter(model_path,
  experimental_delegates=[load_delegate('libedgetpu.so.1.0')])

上部に1つの追加インポートが必要です:

# If you're using the tflite_runtime package:
from tflite_runtime.interpreter import load_delegate

# Or if you're using the full TensorFlow package:
from tensorflow.lite.python.interpreter import load_delegate

注:libedgetpu.so.1.0 ファイルは、ステップ1でインストールされたEdge TPUランタイムに含まれています。

それでおしまい。 コードをすべて設定し、Edge TPU用にコンパイルされたモデルを使用して推論を実行すると、TensorFlow Liteはグラフのコンパイルされた部分をEdge TPUに委任します。

微信截图_20190904150555.png

ここでGoogle EDGE tpuを取得します

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2