web-dev-qa-db-ja.com

Tensorflow LiteインタープリターをPythonにインポートする方法は?

Raspberry Stretchを実行するRaspberry Pi 3bでTF liteを使用して、Tensorflow組み込みアプリケーションを開発しています。グラフをフラットバッファ(ライト)形式に変換し、TFLite静的ライブラリをPiにネイティブに構築しました。ここまでは順調ですね。ただし、アプリケーションはPythonであり、Pythonバインディングは利用できないようです。TensorflowLite開発ガイド(- https://www.tensorflow .org/mobile/tflite/devguide )は、「Pythonバインディングとデモアプリの計画があります。」と述べていますが、/ tensorflow/contrib/lite/python /にはラッパーコードがあります。必要なすべてのインタープリターメソッドがありますが、これをPython=.

SWIGラッパーを生成しましたが、ビルドステップが多くのエラーで失敗します。 interacter_wrapperの状態を説明するreadme.mdはありません。だから、ラッパーが他の人のために働いていて、私は持続する必要があるのか​​、それとも根本的に壊れているのか、他の場所を見る必要があるのだろうか(PyTorch)? TFLite Python Pi3のバインディングへのパスを見つけた人はいますか?

7
bjuberchaub

python分類を行うスクリプト 1 、オブジェクト検出(SSD MobilenetV {1,2}でテスト済み) 2 、およびイメージセマンティックセグメンテーション Ubuntuを実行しているx86およびDebianを実行しているARM64ボード上。

  • ビルド方法Pythonバインディング:最近のTensorFlowマスターブランチでpipをビルドしてインストールします(はい、これらのバインディングはTF 1.8にありました。 TensorFlow pipパッケージをビルドおよびインストールする方法については、 4 を参照してください。
4
freedom

PythonのTensorFlow Lite Interpreterの使用に関して、以下の例は documentation からコピーされています。コードは、 TensorFlow GitHubmasterブランチで利用できます。

モデルファイルからインタープリターを使用する

次の例は、TensorFlow Lite FlatBufferファイルが提供されたときにTensorFlow Lite Pythonインタープリターを使用する方法を示しています。この例は、ランダムな入力データに対して推論を実行する方法も示しています。 Pythonターミナルでhelp(tf.contrib.lite.Interpreter)を実行して、インタープリターに関する詳細なドキュメントを取得します。

import numpy as np
import tensorflow as tf

# Load TFLite model and allocate tensors.
interpreter = tf.contrib.lite.Interpreter(model_path="converted_model.tflite")
interpreter.allocate_tensors()

# Get input and output tensors.
input_details = interpreter.get_input_details()
output_details = interpreter.get_output_details()

# Test model on random input data.
input_shape = input_details[0]['shape']
input_data = np.array(np.random.random_sample(input_shape), dtype=np.float32)
interpreter.set_tensor(input_details[0]['index'], input_data)

interpreter.invoke()
output_data = interpreter.get_tensor(output_details[0]['index'])
print(output_data)
7
Nupur Garg