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のバインディングへのパスを見つけた人はいますか?
PythonのTensorFlow Lite Interpreterの使用に関して、以下の例は documentation からコピーされています。コードは、 TensorFlow GitHub のmaster
ブランチで利用できます。
次の例は、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)