在我目前的项目中,我正在使用Raspberry Pi上的机器学习进行传感器融合。由于我听说Tensorflow Lite的发布,我真的很有兴趣部署并使用它在平台上运行Lite模型。
在Tensorflow网站上有Android和iOS的提示,但我找不到任何其他平台的提示。是否有(WIP)安装/编译指南将TF Lite带到Raspi?
TIA
答案 0 :(得分:1)
@all,如果您仍在尝试使Raspberry Pi 3上运行tensorflow lite,则我的“拉取请求”可能会有用。请查看https://github.com/tensorflow/tensorflow/pull/24194。
按照这些步骤,可以在Raspberry Pi 3上运行2个应用程序(label_image和照相机)。
最好
-吉姆
答案 1 :(得分:0)
在https://www.tensorflow.org/mobile/tflite/devguide#raspberry_pi的TFLite文档中有一小部分关于Raspberry PI。该部分链接到此GitHub文档,其中包含在Raspberry PI-tensorflow/rpi.md上构建TFLite的说明。
尚无官方演示应用程序,但第一个位置显示已计划。准备就绪时,它可能会在同一位置共享(描述了Android和iOS演示应用程序)。
答案 2 :(得分:0)
您可以使用“ pip install tensorflow”在Raspberry pi上安装TensorFlow PIP,但是,如果只希望使用TFLite,则可以构建一个只有tflite解释器的较小pip(然后可以在另一台大型计算机上进行转换)。
有关如何执行的信息在这里: https://github.com/tensorflow/tensorflow/tree/master/tensorflow/lite/tools/pip_package
然后,您可以使用它。这是您可能如何使用它的示例!
import tflite_runtime as tflr
interpreter = tflr.lite.Interpreter(model_path="mobilenet_float.tflite")
interpreter.allocate()
input = interpreter.get_input_details()[0]
output = interpreter.get_input_details()[0]
cap = cv2.VideoCapture(0) # open 0th web camera
while 1:
ret, frame = cap.read()
frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
frame = cv2.resize(frame, input.shape[2],input.shape[1])
frame = np.reshape(im, input.shape).astype(np.float32)/128.0-1.0
interpreter.set_tensor(input["index"], frame)
interpreter.invoke()
labels = interpreter.get_tensor(output["index"])
top_label_index = np.argmax(labels, axis=-1)
希望这会有所帮助。
答案 3 :(得分:0)
我建议下一个链接:
您必须记住,如果仅使用解释器,则必须遵循一些不同的逻辑。
# Initiate the interpreter
interpreter = tf.lite.Interpreter(PATH_TO_SAVED_TFLITE_MODEL)
# Allocate memory for tensors
interpreter.allocate_tensors()
# Get input and output tensors
input_details = interpreter.get_input_details()
output_details = interpreter.get_output_details()
# Add a batch dimension if needed (data_tensor - your data input)
input_data = tf.extend.dims(data_tensor, axis=0)
# Predict
interpreter.set_tensor(input_details[0]['index'], data_tensor)
interpreter.invoke()
# Obtain results
predictions = interpreter.get_tensor(output_details[0]['index'])