1

我看到了转换tensorflow pb模型的指南,只给了mobilenet模型

https://github.com/tensorflow/tensorflow/tree/master/tensorflow/contrib/lite#step-2-model-format-conversion

所以我的问题是,我可以将 tensorflow inception pb 模型转换为 tflite 模型吗?

如果是,我在哪里可以获得检查点 (ckpt) 文件?我在https://github.com/tensorflow/models/tree/master/research/slim/nets中找不到它们的初始模型。

我错过了什么吗?

4

1 回答 1

1

是的,您还应该能够将初始模型转换为 TFLITE。如果图形尚未冻结,您只需要检查点。如果图表已经被冻结(我假设),您应该能够使用以下命令对其进行转换:

bazel run --config=opt //tensorflow/contrib/lite/toco:toco -- \
--input_file=**/path/to/your/graph.pb** \
--output_file=**/path/to/your/output.tflite** \
--input_format=TENSORFLOW_GRAPHDEF \
--output_format=TFLITE \
--inference_type=FLOAT \
--input_shape=1,299,299,3 \
--input_array=**your_input** \
--output_array=**your_final_tensor**

(您必须将星号之间的文本替换为适用于您的案例的参数;例如 --inputs=Mul)

关于 --inputs=Mul 的注意事项 Inception v3 中使用的一些 TF 命令不受 TFLITE 支持(decodejpeg、expand_dims),因为它们通常不必被手机上的模型采用(这些任务直接在应用程序代码)。因此,您必须使用 TF Lite 定义要挂接到图中的位置。

如果不使用 input_array,您可能会收到以下错误消息:

标准 TensorFlow Lite 运行时不支持模型中的某些运算符。如果您有他们的自定义实现,您可以使用 --allow_custom_ops 禁用此错误。以下是您需要自定义实现的运算符列表:DecodeJpeg、ExpandDims。

我希望我能帮助你。我只是在努力转换重新训练的图表。

于 2018-03-29T14:58:15.843 回答