如何在RaspberryPi上运行TFLite模型

时间:2019-01-18 06:24:29

标签: python tensorflow

我在客户映像集上使用GPU训练了我的PC上的SSD_InceptionV2_coco模型。它在我的PC上运行良好,因此将其移动到可以正常运行但超慢的0.7 FPS的pi上:(因此,我了解了TFLite并使用了Object_detection文件夹中称为“ export_tflite_ssd_graph.py”的脚本 它创建了一个新的.pb文件,但我在与常规冻结文件一起工作的脚本上运行了该文件,我得到了以下信息:

  

回溯(最近一次通话最后一次):文件“ light_A.I_CT.py”,第81行,在       od_graph_def.ParseFromString(serialized_graph)文件“ /home/pi/.local/lib/python3.5/site-packages/google/protobuf/message.py”,   ParseFromString中的第185行       self.MergeFromString(序列化)文件“ /home/pi/.local/lib/python3.5/site-packages/google/protobuf/internal/python_message.py”,   第1083行,在MergeFromString中       如果self._InternalParse(serialized,0,length)!=长度:文件“ /home/pi/.local/lib/python3.5/site-packages/google/protobuf/internal/python_message.py”,   InternalParse中的第1120行       pos = field_decoder(buffer,new_pos,end,self,field_dict)文件“ /home/pi/.local/lib/python3.5/site-packages/google/protobuf/internal/decoder.py”,   DecodeRepeatedField中的第610行       引发_DecodeError('截断的消息。')google.protobuf.message.DecodeError:截断的消息。

我正在使用的代码如下:

  

将Tensorflow模型加载到内存中。 detection_graph = tf.Graph()与detection_graph.as_default():

od_graph_def = tf.GraphDef()
with tf.gfile.GFile(PATH_TO_CKPT, 'rb') as fid:
    serialized_graph = fid.read()
    od_graph_def.ParseFromString(serialized_graph)
    tf.import_graph_def(od_graph_def, name='')

sess = tf.Session(graph=detection_graph)

它非常基础,并来自示例,但是我不知道我是否需要做其他事情,因为所有TFLite示例都适用于IOS或Android。

1 个答案:

答案 0 :(得分:1)

您不能使用带有常规Tensorflow代码的TFLite模型,而需要构建TFLite。您可能想以this为例。