Raspberry Pi上的Tensorflow Lite - 安装

时间:2018-04-04 08:19:16

标签: tensorflow raspberry-pi tensorflow-lite

在我目前的项目中,我正在使用Raspberry Pi上的机器学习进行传感器融合。由于我听说Tensorflow Lite的发布,我真的很有兴趣部署并使用它在平台上运行Lite模型。

在Tensorflow网站上有Android和iOS的提示,但我找不到任何其他平台的提示。是否有(WIP)安装/编译指南将TF Lite带到Raspi?

TIA

4 个答案:

答案 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)

我建议下一个链接:

  1. 最简单的方法是仅使用TensorFlowLite解释器。您可以通过以下链接找到更多信息:Install just the TensorFlow Lite interpreter

您必须记住,如果仅使用解释器,则必须遵循一些不同的逻辑。

# 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'])
  1. Build from source for the Raspberry Pi

  2. Install TensorFlow with pip