如何在Tensorflow中将tflite模型转换为冻结图(.pb)?

时间:2020-07-20 13:24:51

标签: tensorflow quantization onnx tf-lite

我想在Tensorflow中将量化的整数 tflite 模型转换为冻结图(.pb)。我通读并尝试了StackOverflow上的许多解决方案,但没有一个起作用。具体来说,toco无效(output_format不能为TENSORFLOW_GRAPHDEF)。

我的最终目标是通过 tf2onnx 获得量化的ONNX模型,但是tf2onnx不支持将tflite作为输入(仅支持savedmodel,checkpoint和graph_def)。但是,在使用TFLiteConverter量化训练后的模型后,它仅返回tflite文件。这就是问题所在。

理想的流程本质上是这样的:float32中的tf模型-> int8中的tflite模型-> graph_def-> onnx模型。我陷入了第二个箭头。

1 个答案:

答案 0 :(得分:1)

在Tensorflow版本r1.9之后删除了将tflite模型转换为.pb的功能。尝试将您的TF版本降级到1.9,然后像这样

bazel run --config=opt \
  //tensorflow/contrib/lite/toco:toco -- \
  --input_file=/tmp/foo.tflite \
  --output_file=/tmp/foo.pb \
  --input_format=TFLITE \
  --output_format=TENSORFLOW_GRAPHDEF \
  --input_shape=1,128,128,3 \
  --input_array=input \
  --output_array=MobilenetV1/Predictions/Reshape_1

Here是来源。