我在客户映像集上使用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。