1. 转换成pb
1 |
|
会在output_directory
目录下生成frozen_inference_graph.pb
2. 转换成tflite
2.1 错误的方式
WARNING: 不能使用上面生成的那个pb去转换lite
如果直接使用下面的转换方式
1 |
|
将会得到下面的信息
1 |
|
这是因为原始的pb里面包含大量的预处理和后处理,里面很多OP是不支持的
2.2 正确打开方式
使用export_tflite_ssd_graph.py
脚本生成tflite_graph.pb
和tflite_graph.pbtxt
1 |
|
再使用生成的tflite_graph.pb
转换成lite
tflite_graph.pb
里面最后一个OP是TFLite_Detection_PostProcess
,这个OP是不支持的,它的作用是使用前面计算的raw_outputs/box_encodings
, raw_outputs/class_predictions
和anchors
再做一些后处理
所以在转lite的时候,使用上面3个输出作为output,再使用这3个output做后处理,两者分开(前面在网络中跑,后面的另外再实现)。
1 |
|
2.3 量化
1 |
|
量化前 21.22M –> 量化后5.37M
上面的有问题