首页 > 解决方案 > TOCO/Tensorflow .pb 到 .tflite output_arrays 不起作用

问题描述

我对 Tensorflow 比较陌生,我已经构建了一个自定义的训练图像模型,它是一个重新训练的 mobilenetv1 模型。我目前有一个 .pb 图表和一个 labels.txt 文件。

我正在尝试使用 TOCO 将我的 .pb 图转换为 .tflite 图,以便我可以将它与 Firebase 一起使用,并且在尝试运行 TOCO 时不断出现错误。我在终端中运行的代码是:

./toco \
--input_file=/***/frozen_graph.pb \
--input_format=TENSORFLOW_GRAPHDEF \
--output_format=TFLITE \
--output_file=/***/newGraph.tflite \
--inference_type=FLOAT \
--input_arrays=input \
--input_shapes=1,224,224,3 \

我已经尝试指定--output_arrays标志,但我不知道为它设置什么。我在终端中遇到的错误是:

F tensorflow/contrib/lite/toco/tooling_util.cc:1480] Check failed: model->flags.output_arrays_size() > 0 (0 vs. 0)This model does not define output arrays, so a --output_arrays flag must be given on the command-line.
Abort trap: 6

我花了很多时间试图弄清楚设置--output_arrays等于什么,我被困住了。我正在运行 MacOS 10.13.3。请帮助meeeeeeeee 谢谢

标签: macostensorflowtoco

解决方案


--output_arrays是 TOCO 中的必需标志。大多数 MobileNetV1 模型的输出数组为MobilenetV1/Predictions/Reshape_1,但它可能因您的模型而异。查看输出数组的最佳方法是使用 TensorBoard 来可视化您的图表。


推荐阅读